24 votos

¿Es posible automatizar la previsión de series temporales?

Me gustaría construir un algoritmo que fuera capaz de analizar cualquier serie temporal y elegir "automáticamente" el mejor método de previsión tradicional/estadístico (y sus parámetros) para los datos de la serie temporal analizada.

¿Sería posible hacer algo así? En caso afirmativo, ¿podría darme algunos consejos sobre cómo enfocarlo?

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í.

23voto

netbook shopper Puntos 11

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.

0 votos

Gracias por una respuesta tan perspicaz. Sinceramente mi idea inicial al hacer esta pregunta era poder elegir entre diferentes familias de modelos.

0 votos

¿Y si el algoritmo se aplicara a un ámbito más específico, como la previsión empresarial (para la planificación de la producción y la gestión de inventarios, por ejemplo)? ¿Cree que podría obtener mejores resultados?

2 votos

@JoanaClaudino Sí, eso sería más fácil - es la esencia de lo que hacen los paquetes comerciales de previsión de la demanda. Pero es más fácil porque normalmente cuando te limitas a un dominio de negocio específico puedes limitarte a una familia específica de modelos (las series temporales que provienen del mismo dominio de negocio tendrán características similares en términos de estacionalidades, densidades de datos, etc. .... por lo que es seguro asumir que una familia será adecuada para todos ellos)

16voto

Owen Fraser-Green Puntos 642

El enfoque que sugiero abarca modelos que son mucho más generales que ARIMA, ya que incluyen la posibilidad de variables ficticias estacionales que pueden cambiar con el tiempo, múltiples niveles, múltiples tendencias, parámetros que pueden cambiar con el tiempo e incluso varianzas de error que pueden cambiar con el tiempo. Esta familia se denomina más precisamente modelos ARMAX, pero para una total transparencia excluye una variante (poco frecuente) que tiene una estructura multiplicativa.

Has pedido consejos y creo que este puede ser uno bueno para empezar.

Le sugiero que escriba un código para seguir/emular este diagrama de flujo/flujo de trabajo. El "mejor modelo" podría encontrarse evaluando el criterio que usted especifique... podría ser el MSE/AIC de los datos ajustados o podría ser el MAPE/SMAPE de los datos retenidos o cualquier criterio de su elección.

Tenga en cuenta que el detalle de cada uno de estos pasos puede ser bastante sencillo si no conoce algunos de los requisitos/objetivos/restricciones específicos del análisis de series temporales PERO puede ser (¡debería serlo!) más complejo si tiene una comprensión/aprendizaje/apreciación más profunda de las complejidades/oportunidades presentes en el análisis exhaustivo de series temporales.

enter image description here

enter image description here

Me han pedido que proporcione más información sobre cómo se debe automatizar la modelización de series temporales (o la modelización en general) https://stats.stackexchange.com/search?q=peeling+an+onion contiene algunas de mis orientaciones para "pelar cebollas" y otras tareas relacionadas.

En realidad, AUTOBOX detalla y muestra los pasos intermedios, ya que constituye un modelo útil y podría ser un profesor útil en este sentido. La idea científica consiste en "añadir lo que parece necesario" y "eliminar lo que parece menos útil" . Este es el proceso iterativo sugerido por Box y Bacon en épocas anteriores.

Los modelos tienen que ser lo suficientemente complejos (lo suficientemente elegantes) pero no demasiado complejos (elegantes). Asumir que los métodos simples funcionan con problemas complejos no es coherente con el método científico siguiendo a Roger Bacon y a toneladas de seguidores de Bacon. Como dijo Roger Bacon en una ocasión y he parafraseado a menudo: Hacer ciencia es buscar patrones repetidos. Detectar anomalías es identificar valores que no siguen patrones repetidos. Porque quien conoce los caminos de la Naturaleza notará más fácilmente sus desviaciones y, por otra parte, quien conoce sus desviaciones describirá con más precisión sus caminos. En el espíritu de Bacon, al identificar cuándo el "mejor modelo/teoría" actualmente identificado es inadecuado, se puede iterar hacia "una representación mejor".

En mis palabras, "Tukey propuso el Análisis Exploratorio de Datos (AED), que sugería esquemas de refinamiento del modelo basados en las evidentes deficiencias del modelo sugeridas por los datos". Este es el corazón de AUTOBOX y de la ciencia. El AED sirve para ver lo que los datos pueden decirnos más allá de la tarea formal de modelización o comprobación de hipótesis.

La prueba de fuego de un programa de modelización automática es bastante sencilla. ¿Separa la señal y el ruido sin sobreajustar? La evidencia empírica sugiere que esto puede hacerse y se ha hecho. La precisión de las previsiones suele ser engañosa porque el futuro no responde del pasado y, dependiendo del origen que se elija, los resultados pueden variar y de hecho lo hacen.

0 votos

Muchas gracias. Su respuesta es extremadamente útil.

0 votos

Gracias, IrishStat. Esto es perspicaz. ¿Se justifica alguna vez mantener un parámetro en lugar de "eliminar el parámetro", a pesar de que el parámetro no sea estadísticamente significativo?

1 votos

Sí, si le da una "respuesta más agradable". Un coeficiente de pendiente que no sea diferente de 0,0 puede proporcionar una previsión más realista (si no es estadísticamente significativa), de lo contrario, llevar coeficientes en exceso es ilógico y provoca una mayor incertidumbre en la previsión de la varianza. Algunos autores, incapaces de enfrentarse a las pruebas de necesidad y suficiencia, asumen ciegamente que la identificación del modelo es un proceso de un solo paso, mientras que Box y Jenkins (¡y todos los demás!) se preocupan por hacer el modelo tan complejo como sea necesario, pero no excesivamente complejo.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X