En primer lugar, hay que tener en cuenta que el enfoque descrito por IrishStat es específico para los modelos ARIMA, no para ningún conjunto genérico de modelos.
Para responder a su pregunta principal "¿Es posible automatizar la previsión de series temporales?":
Sí, lo es. En mi campo de previsión de la demanda, la mayoría de los paquetes comerciales de previsión lo hacen. Varios paquetes de código abierto también lo hacen, sobre todo las funciones auto.arima() de Rob Hyndman (previsión ARIMA automatizada) y ETS() (previsión de suavizado exponencial automatizada) del paquete Forecast de código abierto en R para conocer los detalles de estas dos funciones, consulte aquí . También hay una implementación en Python de auto.arima llamada Pirámide aunque, según mi experiencia, no está tan maduro como los paquetes de R.
Tanto los productos comerciales que he mencionado como los paquetes de código abierto que he mencionado funcionan basándose en la idea de utilizar criterios de información para elegir la mejor previsión: Se ajustan varios modelos y luego se selecciona el modelo con el menor AIC, BIC, AICc, etc.... (normalmente esto se hace en lugar de la validación fuera de la muestra).
Sin embargo, hay una advertencia importante: todos estos métodos funcionan en una única familia de modelos. Eligen el mejor modelo posible entre un conjunto de modelos ARIMA, o el mejor modelo posible entre un conjunto de modelos de suavización exponencial.
Es mucho más difícil hacerlo si se quiere elegir entre diferentes familias de modelos, por ejemplo, si se quiere elegir el mejor modelo entre ARIMA, suavizado exponencial y el método Theta. En teoría, puede hacerlo de la misma manera que dentro de una única familia de modelos, es decir, utilizando criterios de información. Sin embargo, en la práctica, hay que calcular el AIC o el BIC exactamente de la misma manera para todos los modelos considerados, y eso es un reto importante. Puede ser mejor utilizar validación cruzada de series temporales o la validación fuera de la muestra en lugar de los criterios de información, pero eso será mucho más intensivo desde el punto de vista computacional (y tedioso de codificar).
El paquete Prophet de Facebook también automatiza la generación de previsiones basadas en modelos aditivos generales Vea aquí los detalles . Sin embargo, Prophet sólo ajusta un único modelo, aunque sea un modelo muy flexible con muchos parámetros. La suposición implícita de Prophet es que un GAM es "el único modelo que los gobierna a todos", lo que podría no estar teóricamente justificado pero es muy pragmático y útil para los escenarios del mundo real.
Otra advertencia que se aplica a todos los métodos mencionados anteriormente: Es de suponer que usted quiere hacer una previsión automatizada de series temporales porque quiere prever múltiples series temporales, demasiadas para analizarlas manualmente. De lo contrario, podría hacer sus propios experimentos y encontrar el mejor modelo por su cuenta. Hay que tener en cuenta que un método de previsión automatizado nunca va a encontrar el mejor modelo para todas y cada una de las series temporales - va a dar un modelo razonablemente bueno en promedio sobre todas las series temporales, pero todavía es posible que algunas de esas series temporales tengan mejores modelos que los seleccionados por el método automatizado. Véase este puesto para ver un ejemplo de ello. En pocas palabras, si va a optar por la previsión automatizada, tendrá que tolerar previsiones "suficientemente buenas" en lugar de las mejores previsiones posibles para cada serie temporal.
3 votos
No, esto no puede lograrse razonablemente. A menudo, no hay datos suficientes para distinguir entre dos modelos razonables, por no hablar de todos los modelos posibles. Para conseguir el mejor modelo sería necesario conocer la física en términos absolutos, y con mucha frecuencia ni siquiera se conocen los supuestos de los modelos, y/o no se pueden probar.
3 votos
No hay manera de determinar qué modelo es el mejor. Python no es relevante en esta discusión. Sin embargo, hay intentos con buenos resultados. Por ejemplo github.com/facebook/prophet proyecto. También cuenta con la vinculación de Python.
3 votos
Voto por dejarlo abierto porque creo que es una pregunta razonable - incluso si la respuesta es "no". Sugeriría quitar python del título, porque no es relevante ni especialmente en el tema aquí.
1 votos
He eliminado python del título como se ha sugerido. Gracias por sus respuestas.
4 votos
Véase el teorema de "no hay almuerzo gratis".
1 votos
Puede elegir el hiperparámetro utilizando GridSearch para SARIMAX. O elegir la biblioteca pmdarima para auto_arima