Hola yo tengo una consulta, las librerias statsFor...
# general
g
Hola yo tengo una consulta, las librerias statsForecast y tsFeatures son compatibles con pyspark?
m
Hola! StatsForecast sí, tsFeatures no. Aqui hay una ejemplo de usar Spark con StatsForecas. https://www.databricks.com/blog/2022/12/06/intermittent-demand-forecasting-nixtla-databricks.html
🙏 1
g
Gracias Max
m
Con gusto! Curiosidad: en qué andas trabajando?
g
Andamos haciendo forecasting de balances de cuenta en el banco (el azul), para 700k series de tiempo
asi que un tema es la velocidad de preprocesamiento. Aunque el tsforecast lo queremos usar para segmentar las series de tiempo e identificar los modelos mas convenientes por cluster
m
Que bien! Mira, este tutorial que acabamos de hacer te puede ayudar.
🤘 1
g
Max otra consulta, al usar tsfeatures sobre series de tiempo me marca el siguiente error "Exception: Failed to infer frequency from the
ds
column, please provide the frequency using the
freq
argument." Mi dataframe tiene esta información . Para corregirlo tengo que especificarle la frecuencia, pero quisiera que automáticamente lo hiciera. Alguna sugerencia?
m
🤘 1
Sobre las frencuencias: @fede (nixtla) (they/them) te puede ayudar.
👀 1
f
hola @GUILLERMO SANTAMARIA BONFIL! Por dentro tsfeatures usa
pd.infer_freq
para inferir la frecuencia, en algunos casos puede fallar al inferirla si la columna
ds
no tiene las fechas completas (por ejemplo si falta un día en caso de que sea diaria). Lo más seguro en todos los casos es pasar el argumento
freq
, hay algún caso en específico para el que no te convenga usarlo? quizá podemos encontrar alguna manera que te sea útil e integrarlo en la librería
🤘 1
g
Muchas gracias por tu respuesta @fede (nixtla) (they/them). Justamente el problema es que tenemos fechas faltantes, lo que hicimos fue imputar usando LOCF.
@Max (Nixtla) una pregunta sobre StatsForecast. Quisiera usar variables exogenas para los modelos. Para ello uso StatsForecast.forecast() y paso en el parámetro df un dataframe de pyspark con las siguientes columnas (unique_id, ds, y y las columnas de variables exogenas). Pero si no paso el parámetro X_df al tratar de mostrar el resultado del forecast usando un "show()", el proceso en pyspark falla. Ahora, si paso el parámetro X_df que información debería contener? de acuerdo con la documentación (https://nixtla.github.io/statsforecast/core.html#statsforecast.forecast) esto debería ser información del FUTURO de las variables exogenas...¿Esto es para evaluar el pronóstico?Por ejemplo, si tengo información sobre 100 días de dos variables (y, var_exog1) y quiero predecir los siguientes 5 días (101-105), según yo, la info de las variables exógenas que debería usar en X_df es la que tengo disponible entre los dias 95-100, estoy en lo correcto? Ahora si incluyo las variables exógenas como acabo de mencionar, la columna ds de las predicciones es devuelta como un número y no como una columna de fecha/string. Como puedo convertir el numero de vuelto a una fecha? Me podrías orientar sobre estos temas por favor? Te anexo algunas imágenes sobre estas cuestiones
f
Hola, @GUILLERMO SANTAMARIA BONFIL! Sí, el argumento
X_df
toma las variables exógenas para el horizon para el que quieres generar forecasts. Por ejemplo, si quisieras predecir los siguientes 5 días tendrías qué usar/tener las variables exógenas para los días 101-105. En el caso de que estas variables exógenas no estén disponibles, una opción es hacer lo que mencionas. Utilizar las últimas 5 observaciones disponibles, sin embargo esto tiene la desventaja de que el performance del modelo puede resultar menor.
Respecto a las fechas, gracias por comentárnoslo! Vi que se debe a un bug de nuestro lado, trataré de resolverlo entre hoy y mañana, te aviso una vez que esté arreglado 🙂
🤘 1
hola, @GUILLERMO SANTAMARIA BONFIL! Ya tenemos una versión que resuelve el problema de las fechas: • Esta versión aún no se encuentra en pip por lo por el momento puedes probarla usando
%pip install “statsforecast @ git+<https://github.com/Nixtla/statsforecast.git@main>”
o bien añadiendo
git+<https://github.com/nixtla/statsforecast.git@main>
a tu cluster. • A partir de la versión
1.5.0
de statsforecast ya no es necesario usar un backend, puedes pasar directamente spark dataframes a
forecast
y se reconocerá en el engine (como en la imagen). • Adjunto un ejemplo del nuevo uso de stastforecast con variables exogenas en databricks. Avísame si te encuentras con algún error, o algo más requiere de clarificación. 🙂
🤯 1