Vocero
|
Transcripción
|
| |
Hola, gracias por tomarse el tiempo de ver esto. Mi nombre es Jacob Rhyne. Soy un probador de software para JMP. Hoy voy a compartir con ustedes un complemento que escribí para ayudarlos a elegir entre un modelo ARIMA o un modelo State Space Smoothing en la plataforma Time Series en JMP. |
| |
Así que empiezo con una breve descripción general de cómo ajustar los modelos ARIMA y State Space Smoothing en la plataforma Time Series. |
| |
Presentaré la necesidad de un complemento para ayudar a elegir entre estas dos clases de modelos. Y brinde una descripción general de la validación cruzada de series de tiempo, que es la herramienta principal del complemento. Luego terminaré con la demostración del complemento usando JMP 16.1. |
| |
La plataforma Time Series en JMP permite a los usuarios adaptarse a muchos modelos de series temporales diferentes. El enfoque de esta presentación serán los modelos ARIMA y State Space Smoothing y mostraré cómo ajustar ambos utilizando estos datos de muestra de Steel Shipments. |
| |
Los datos de muestra de Envíos de acero contienen los totales mensuales de los envíos de acero de EE. UU. Desde 1984 hasta 1991. Y exploraré esto con la plataforma Time Series en el menú Specialized Modeling. |
| |
La columna Envíos de acero es mi Serie temporal. La columna de la fecha es mi ID de tiempo. Supongamos que estoy interesado en pronosticar los próximos dos años de envíos de acero. Entonces, dado que se trata de datos mensuales, necesito 24 períodos de pronóstico. Y haré clic en Aceptar para iniciar mi informe de serie temporal. |
| |
Puede ver que tengo una trama en la serie de tiempo, algunas estadísticas básicas de la serie, así como algunos diagnósticos básicos de la serie de tiempo. |
| |
Me gustaría adaptar un modelo ARIMA a esta serie y, cuando encajo un modelo ARIMA, debo decidir si debo realizar algún tipo de transformación o diferenciación. Así que usaré la opción Diferencia en el menú Serie temporal para explorar esto. |
| |
Comenzaré con una diferenciación no estacional del primer orden y haré clic en estimar. |
| |
Ahora tengo un gráfico de la serie de diferencias. Se ve mejor en términos de ser más estacionario, pero todavía tengo algo de estacionalidad aquí. Y puedo decir esto mirando los diagnósticos. Bajo al rezago número 12. |
| |
Puedo ver que el valor de autocorrelación es alto y la autocorrelación parcial también es un poco alta para el retraso 12. Entonces, esto sugiere que debería ajustar un modelo ARIMA estacional con diferenciación estacional y no estacional. |
| |
Voy a cerrar este informe de diferencias solo para mantener limpio mi informe. Y voy a explorar la posibilidad de adaptar algunos modelos ARIMA diferentes, con la opción de grupo de modelos ARIMA. |
| |
Así que decidí que me gustaría ajustar un modelo ARIMA estacional con un orden de diferenciación no estacional de uno y un orden de diferenciación estacional de uno. Pero, para las órdenes autorregresivas y de media móvil, las dejaré ser cero o uno. |
| |
Entonces, cuando hago clic en estimar, JMP se ajustará a estos 16 modelos ARIMA estacionales diferentes. Puedo desplazarme hacia abajo hasta la ventana de comparación de modelos y ver estos modelos. Los modelos están clasificados en orden descendente por AIC, así que seleccionaré el modelo que minimice el AIC. |
| |
Puedo desplazarme hacia abajo para ver el modelo y el informe. Puedo ver que es estable e invertible. Podría mirar a través de la tabla de estimaciones de parámetros. Eche un vistazo a la previsión y los intervalos de previsión. |
| |
Supongamos que he revisado todos estos diagnósticos y estoy satisfecho con este modelo ARIMA estacional como candidato a considerar para el pronóstico. |
| |
Así que eliminaré estos otros modelos ARIMA estacionales del informe. |
| |
Y digamos, también quiero considerar el uso de un modelo de suavizado de espacio de estado para crear un pronóstico. Puedo hacer esto usando la opción de suavizado de espacio de estado del menú de series de tiempo. |
| |
Debo decir que el período es 12 porque se trata de datos mensuales, y solo ajustaré todos los modelos de suavizado de espacio de estado recomendados para esta serie de tiempo. |
| |
Así que haré clic en Aceptar para ejecutarlo. Si me desplazo hacia abajo hasta el informe de comparación del modelo, puedo ver que JMP se ajusta a todos los modelos de suavizado de espacio de estado recomendados. Una vez más, se clasifican en orden descendente por AIC. |
| |
Entonces, el modelo que minimizó el AIC fue un modelo de error multiplicativo sin tendencia y con estacionalidad multiplicativa. Entonces, seleccionaré este modelo |
| |
en el esquema de comparación del modelo y desplácese hacia abajo para ver el ajuste del modelo. |
| |
Para que pueda ver el resumen del modelo, puedo ver la tabla de estimaciones de parámetros. |
| |
Puede ver el pronóstico y los intervalos de pronóstico. Digamos que he revisado todos estos diagnósticos y estoy contento con este Modelo de suavizado de espacio de estado como candidato a considerar para el pronóstico. |
| |
Por lo tanto, eliminaré el otro modelo State Space Smothing de mis modelos y de mi ventana de comparación de modelos. |
| |
Entonces, ahora, la pregunta es cómo elijo entre este modelo ARIMA que estoy considerando y el modelo State Space Smoothing que estoy considerando para pronosticar. |
| |
Puede ver que tengo esta advertencia de texto leído que me dice que los criterios basados en la probabilidad no son comparables entre las diferentes clases de modelos. |
| |
Y lo que esto significa es que no puedo simplemente desplazarme y ver el AIC y decir, dado que el AIC es más bajo, para el modelo ARIMA lo usaré para pronosticar. |
| |
Esa no es una decisión válida. ¿Entonces qué hago? Bueno, ya hay una opción disponible en JMP. Si sus datos son lo suficientemente largos. |
| |
Para establecer una retención, puede utilizar la opción de previsión en retención al iniciar la plataforma Time Series. |
| |
Y lo que esto haría es que se ajustara a todos los modelos de series de tiempo que usó para el conjunto de entrenamiento. Y, en la ventana de comparación de modelos, en lugar de ordenar los modelos por AIC, |
| |
clasificará los modelos por la raíz del error cuadrático medio o RMSE del conjunto de retención y usted elegiría el modelo que minimice el RMSE del conjunto de retención. |
| |
Sin embargo, si sus datos no son lo suficientemente largos para usar un conjunto de retención, entonces no podemos usar la opción de pronóstico en retención y necesitamos otro método que nos ayude a elegir entre un modelo ARIMA o un modelo de suavizado de espacio de estado. |
| |
Y para hacer esto. |
| |
Por eso hice el complemento. Por lo tanto, el complemento lo ayuda a elegir mediante algo llamado validación cruzada de series de tiempo. |
| |
La validación cruzada de series de tiempo esencialmente divide su serie de tiempo en múltiples conjuntos de entrenamiento y prueba donde cualquier grupo sucesivo expande el conjunto de entrenamiento en una fila. |
| |
Voy a dar un ejemplo detallado de validación cruzada de series de tiempo momentáneamente, pero me gustaría señalar que no inventé este método. Si desea obtener más información al respecto, |
| |
Después de ver esta charla, este es un recurso que recomendaría sobre los principios y la práctica de los pronósticos del Dr. Rob Hyndman. |
| |
Pero veamos un ejemplo de validación cruzada de series de tiempo. |
| |
Digamos que tengo datos de los resultados de taquilla de América del Norte de enero a julio de 2021 porque soy un fanático del cine. |
| |
Y me gustaría pronosticar las próximas seis semanas en la taquilla utilizando un modelo ARIMA o un modelo State Space Smoothing. Y, para decidir qué pronóstico usar, me gustaría usar la validación cruzada de series de tiempo. |
| |
Como mencioné, la validación cruzada de series de tiempo dividirá sus datos en grupos de conjuntos de entrenamiento y prueba donde expandirá el conjunto de entrenamiento en una fila y en cada grupo sucesivo. |
| |
Entonces necesito decidir cuántas filas quiero en mi conjunto de entrenamiento inicial. |
| |
De forma predeterminada, mi complemento hará que tenga seis grupos de validación cruzada de series de tiempo. Eso le dará un número sugerido de filas predeterminadas para usar en su conjunto de entrenamiento inicial, pero puede cambiarlo si lo desea. |
| |
Mantendré el valor predeterminado de 17 filas iniciales en el conjunto de entrenamiento para este ejemplo. |
| |
Cuando inicie el complemento de validación cruzada de series de tiempo, obtendrá un informe de serie de tiempo estándar. Pero también va a agregar un cuadro de esquema para sus controles de validación cruzada de series de tiempo en la parte inferior del informe. |
| |
Entonces, aquí, debe especificar la cantidad de filas iniciales, que es la cantidad de filas en su primer conjunto de entrenamiento, la duración del pronóstico que le interesa y el período si se va a ajustar a los modelos estacionales. |
| |
Así que voy a mantener el valor predeterminado de 17 filas en el conjunto de entrenamiento que me permitirá tener seis grupos de validación cruzada de series de tiempo diferentes. |
| |
Tendré una duración de pronóstico de seis porque quiero pronosticar las próximas seis semanas en la taquilla. Y aquí voy a mantener el período igual a faltante porque no voy a ajustar los modelos estacionales para estos datos en particular. |
| |
Entonces, exploremos el primer grupo de validación cruzada de series de tiempo. |
| |
Puede ver que tengo 17 filas en mi primer conjunto de entrenamiento y las siguientes seis filas son mi conjunto de prueba. |
| |
Lo que va a hacer mi complemento es que se ajustará a los modelos ARIMA que le pedí al conjunto de entrenamiento. Y se ajustará a los modelos de suavizado de espacio de estado recomendados para el conjunto de entrenamiento. |
| |
Va a seleccionar el mejor modelo de cada clase por AIC y llevará mi pronóstico de modelos seleccionados al conjunto de prueba y evaluará el error de pronóstico. |
| |
El grupo de validación cruzada de la segunda serie temporal ampliará el conjunto de entrenamiento en una fila, por lo que ahora mi conjunto de entrenamiento es |
| |
compuesto por las filas uno a la 18 y las siguientes seis filas son mi conjunto de prueba. Y luego repito el proceso que hice en el primer grupo de validación cruzada de series de tiempo. |
| |
Encajo con cualquier modelo ARIMA solicitado por el usuario y encajo con los modelos recomendados de State Space Smoothing. Seleccione el mejor modelo según el pronóstico AIC en el conjunto de prueba y almacene el error de pronóstico. |
| |
Y continúo haciendo esto hasta que haya usado todos mis datos. Por lo tanto, el grupo de validación cruzada de series de tiempo final para este ejemplo usaría las filas 1 a 22 para el conjunto de entrenamiento y luego usaría el resto de los datos, las seis filas finales como el conjunto de prueba. |
| |
Así que mencioné que estoy almacenando el error de pronóstico para cada grupo de validación cruzada de series de tiempo. |
| |
Lo que hace el complemento es reportar RMSE, MAE y MAPE generales para las dos clases de modelo y le brinda un gráfico de RMSE para cada grupo de validación cruzada de series de tiempo. |
| |
Y puede usar esta tabla y este gráfico para ayudarlo a decidir, en caso de que se ajuste a cada modelo para la previsión o la previsión del modelo de suavizado del espacio de estados. |
| |
Echemos un vistazo al complemento en acción con estos datos. |
| |
Así que abriré mis datos de taquilla que obtuve del mojo de taquilla y simplemente ejecutaré este script que acaba de lanzar la plataforma Time Series para estos datos, porque solo quiero echar un vistazo a la serie temporal. |
| |
Estoy pronosticando, el bruto promedio en la taquilla por semana y puedo ver que a medida que pasan las semanas la variación y el bruto promedio aumenta, por lo que me gustaría tomar una transformación de registro |
| |
al promedio bruto. Puedo hacer eso creando una columna de fórmula de registro para el promedio bruto pero |
| |
no es necesario, el complemento le brinda la capacidad de realizar una transformación de Box Cox, al igual que la plataforma Time Series estándar. Entonces, lanzaré mi complemento, haga clic en más allá del descargo de responsabilidad. Quiero pronosticar el cierre de taquilla promedio por semana durante las próximas seis semanas. |
| |
y quiero llevar una transformación logarítmica al promedio bruto, por lo que usaré una transformación de Box Cox con Lambda igual a cero. |
| |
Y haré clic en Aceptar. |
| |
Así que esto lanza el informe estándar de series de tiempo para la respuesta transformada de Box Cox. Podría encajar en cualquier tipo de modelos de series temporales, quería que estuvieran disponibles en JMP con este menú de triángulo rojo. |
| |
Pero, en cambio, voy a ir al final del informe y usar la validación cruzada de series de tiempo para obtener una recomendación sobre si debo encajar y un modelo ARIMA o un modelo de suavizado de espacio de estado. |
| |
Mantendré las filas iniciales en 17, porque eso me dará seis grupos de validación cruzada de series de tiempo que acabo de mostrar en el ejemplo anterior. |
| |
Mantendré una duración de pronóstico de seis porque quiero pronosticar las próximas seis semanas en la taquilla y voy a mantener el período igual al que falta para este ejemplo. |
| |
Así que haré clic en ejecutar y ahora tengo que decir qué modelos de ARIMA me gustaría incluir en cada grupo de validación cruzada de series de tiempo. Entonces, decido que me gustaría usar la diferenciación no estacional de uno, pero dejaré que las órdenes de promedio móvil y autorregresivo sean cero o uno. |
| |
Entonces, cuando hago clic en estimar, lo que sucederá es que cada grupo de validación cruzada de series de tiempo se ajustará a estos cuatro modelos ARIMA y los modelos de suavizado de espacio de estado recomendados. |
| |
Así que hago clic en estimar, lo que hace el complemento es expandir este conjunto de datos en mis seis grupos de validación cruzada de series de tiempo, ajustando los modelos solicitados al conjunto de entrenamiento, pronosticando en el conjunto de prueba y almacenando el error de pronóstico. |
| |
Así que me desplazaré hacia abajo y veré los resultados. Puede ver en la tabla que, en general, los modelos ARIMA produjeron un RMSE, MAE y MAPE más bajos que los modelos State Space Smoothing. Y si miro la trama |
| |
Puedo ver que los modelos ARIMA produjeron un RMSE más bajo para cada grupo de validación cruzada de series de tiempo. |
| |
Por lo tanto, este complemento recomendaría usar un modelo ARIMA para crear pronósticos para estos datos, en lugar de un modelo de suavizado de espacio de estado. Entonces puedo ir al menú del triángulo rojo y seguir adelante y ajustar un modelo ARIMA con la opción de grupo de modelos ARIMA. |
| |
Veamos otro ejemplo del complemento y, para hacer el siguiente ejemplo, usaré un subconjunto de los datos de muestra del MC3 Quarterly. |
| |
Los datos de muestra del MC3 Quarterly contienen datos de un poco más de 100 series de tiempo diferentes de la competencia de modelado del MC3. Las series son todas trimestrales. |
| |
Creo que este es un conjunto de datos interesante solo porque contiene tantas series de tiempo diferentes. Sin embargo, solo por razones de tiempo en esta charla, tomé un subconjunto aleatorio de tres de las series de la tabla. |
| |
Entonces lanzaré mi complemento. |
| |
Y configure el lanzador, mi columna Y es mi serie de tiempo, el tiempo es el ID de tiempo. Y, dado que tengo datos para varias series, necesito usar la opción by para la columna de la serie. Digamos de nuevo que quiero pronosticar los próximos dos años, por lo que ingresaré ocho períodos de pronóstico y haré clic en Aceptar. |
| |
Esto hizo que apareciera el informe de series de tiempo para cada serie diferente en mi tabla, como era de esperar. Y también tengo controles de validación cruzada de series de tiempo para cada serie en la tabla. |
| |
Entonces, podría usar la validación cruzada de series de tiempo para cada una de estas series para obtener una recomendación sobre el uso de un modelo ARIMA o un modelo de suavizado de espacio de estados para el pronóstico. |
| |
En aras del tiempo, solo lo haré para la primera serie. Usaré un período de cuatro porque me gustaría ajustar los modelos estacionales para esta serie. Haré clic en ejecutar. |
| |
Así que usaré un orden de diferenciación no estacional de uno, pero todos los demás órdenes de promedio móvil autorregresivos y el orden de diferenciación estacional que dejaré oscilar entre cero o uno. |
| |
Establezca el período de observación en cuatro porque, nuevamente, se trata de datos trimestrales. Entonces, lo que sucederá cuando haga clic en estimar se ajustará a estos 32 modelos ARIMA |
| |
en cada uno de los grupos de validación cruzada de series de tiempo. Entonces, el complemento va a donde la serie es N 691. |
| |
Lo está expandiendo en seis grupos de validación cruzada de series de tiempo diferentes. Está adaptando mis modelos ARIMA solicitados al conjunto de entrenamiento. Los modelos de suavizado de espacio de estado recomendados para el conjunto de entrenamiento. |
| |
Selección del mejor modelo por AIC. Pronóstico en el conjunto de prueba y almacenamiento del error de pronóstico. |
| |
Le daré un segundo para terminar. |
| |
Aquí vamos. |
| |
Y puedo desplazarme y ver los resultados. Entonces, como puede ver en la tabla, los modelos ARIMA produjeron un RMSE, MAE y MAPE más bajos que los modelos de suavizado de espacio de estado. |
| |
Y a partir de la trama, puedo ver que en todos menos en el último grupo de validación cruzada de series de tiempo, los modelos ARIMA tenían un RMSE más bajo. |
| |
que un modelo de suavizado de espacio de estado, y fue más o menos lo mismo en el último grupo. |
| |
Una vez más, se trata de una validación cruzada de series de tiempo y recomendaría utilizar un modelo ARIMA para crear un pronóstico para la serie N 691. Y puede ir a las otras series diferentes y repetir el proceso y, para aquellos, podría recomendar un modelo de suavizado de espacio de estado. |
| |
Así que terminaré la demostración mostrando otra característica del complemento que en realidad no está relacionada con la validación cruzada de series de tiempo. |
| |
También le he dado la capacidad de usar un conjunto de prueba para evaluar el pronóstico con el complemento, y lo mostraré usando los datos de muestra de Steel Shipments nuevamente. Entonces lanzaré mi complemento. Bien, quiero pronosticar los envíos de acero por fecha. |
| |
Digamos que quiero pronosticar los próximos dos años, así que tome 24 períodos de pronóstico y, como mencioné antes, si su serie es lo suficientemente larga, para un conjunto de retención, puede usar la opción de pronóstico en retención. |
| |
para seleccionar modelos. Entonces, dado que estoy haciendo eso, realmente no necesito usar la validación cruzada de series de tiempo. Entonces, puedo usar la opción de conjunto de pruebas de entrenamiento |
| |
tener un conjunto de pruebas independiente para evaluar el modelo que elijo. Decidiré que quiero que la longitud de mi conjunto de prueba sea 12. |
| |
Y lo que esto significa es que tomará las últimas 12 filas de mis datos y los mantendrá completamente fuera de mi análisis, de modo que pueda usarlos para evaluar cómo se desempeñó mi pronóstico. Entonces haré clic en Aceptar. |
| |
Y puede ver que lo que sucedió es que agregué otra columna a la tabla. Es solo una columna de indicador para el conjunto de prueba donde es igual a uno si la fila está incluida en el conjunto de prueba y cero si no lo está. |
| |
Y solo va a ajustar estos modelos de series de tiempo a filas donde el conjunto de prueba es igual a cero. Esto me permite preservar la independencia del conjunto de prueba. |
| |
Entonces, ajustemos algunos modelos ARIMA a estos datos. Utilizo los mismos controles que usé al comienzo de esta charla con un orden de diferenciación estacional y no estacional de uno, pero dejo que todos los demás órdenes varíen de cero a uno. |
| |
Entonces, hago clic en estimar para ejecutar estos 16 modelos ARIMA de temporada diferentes y también ajustaré los modelos de suavizado de espacio de estados recomendados. |
| |
Entonces, me desplazaré hacia abajo hasta la ventana de comparación del modelo, y puedo ver que el modelo que minimiza el error cuadrático medio en el conjunto de retención fue el modelo State Space Smoothing con error aditivo sin tendencia y estacionalidad aditiva. |
| |
Digamos que también estoy interesado en cómo funcionaría el modelo ARIMA de mejor rendimiento en el conjunto de prueba. También puedo seleccionarlo. |
| |
Y eliminaré los otros modelos que ya no estoy considerando para la previsión. |
| |
Entonces, nuevamente he usado la opción de pronóstico en retención, por lo que elegiría este modelo de suavizado de espacio de estado para usarlo en el pronóstico, pero tengo curiosidad por saber cómo funcionaría el modelo ARIMA en el conjunto de prueba. |
| |
Entonces puedo desplazarme hacia abajo hasta el cuadro de análisis de mi conjunto de prueba. Y lo que va a hacer esto, dado que utilicé la opción de pronóstico en retención, es que va a reajustar estos dos modelos seleccionados a los datos combinados de entrenamiento y retención para obtener los parámetros actualizados. |
| |
Y luego hará un pronóstico en el conjunto de prueba y evaluará cómo se realizó el pronóstico en comparación con los datos reales del conjunto de prueba. |
| |
Entonces, haré clic en Ejecutar para realizar ese análisis. Y puedo ver que tengo una tabla del conjunto de prueba RMSE, MAE y MAPE, y un gráfico del conjunto de prueba comparado con el pronóstico. |
| |
Puedo ver que el modelo de suavizado de espacio de estado no solo se desempeñó mejor en el conjunto de retención, sino que también se desempeñó mejor en el conjunto de prueba. Por lo tanto, esta opción de análisis de conjuntos de prueba solo le brinda una herramienta para evaluar cómo se desempeñó el ajuste de su modelo. |
| |
Entonces, solo para resumir. El complemento le permite realizar una validación cruzada de series de tiempo. |
| |
Creo que este complemento podría serle útil si tiene datos de series de tiempo que no son lo suficientemente largos para usar la opción de pronóstico en retención que está en JMP, pero aún desea considerar el uso de diferentes clases de modelo. |
| |
El complemento también le brinda la capacidad de usar un conjunto de prueba para evaluar el pronóstico. Y, solo como una exención de responsabilidad, como con todas las medidas de selección de modelos para datos de series de tiempo, el complemento no garantiza pronósticos más precisos. |
| |
Muchas gracias por tu tiempo. Espero que pruebes el complemento y que disfrutes del resto de Discovery. Muchísimas gracias. |