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 de Suavizado de espacio de estado en la plataforma Time Series en JMP. |
| |
Así que comienzo con una breve descripción general del ajuste de 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 temporales, que es la herramienta principal del complemento. Luego terminaré con la demostración del complemento usando JMP 16.1. |
| |
La plataforma Time Series de 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 usando estos datos de muestra de Steel Shipments. |
| |
Los datos de muestra de Envíos de Acero contienen totales mensuales de envíos de acero estadounidenses desde 1984 hasta 1991. Y exploraré esto con la plataforma Time Series en el menú Modelado especializado. |
| |
La columna Envíos de acero es mi Serie temporal. La columna de fecha es mi ID de hora. Supongamos que estoy interesado en pronosticar los envíos de acero de los próximos dos años. 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 series de tiempo. |
| |
Me gustaría adaptar un modelo ARIMA a esta serie, y cuando ajuste un modelo ARIMA necesito 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 orden uno y haré clic en estimación. |
| |
Ahora tengo una trama 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 correlación automática es alto y que la correlación automática 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 mi informe limpio. Y voy a explorar la posibilidad de adaptar algunos modelos ARIMA diferentes, con la opción de grupo de modelos ARIMA. |
| |
Así que he decidido 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, dejaré que sean 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 ordenados en orden descendente por AIC, por lo 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 consultar la tabla de estimaciones de parámetros. Eche un vistazo a la previsión y a 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 del espacio de estados para crear un pronóstico. Puedo hacerlo usando la opción Suavizado del espacio de estados del menú de series de tiempo. |
| |
Necesito decir que el período es 12 porque se trata de datos mensuales y simplemente ajustaré todos los modelos de suavizado del espacio de estados 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 de modelos, puedo ver que JMP se ajusta a todos los modelos de suavizado de espacio de estados recomendados. Una vez más, AIC los ordena en orden descendente. |
| |
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 de modelos y desplácese hacia abajo para ver el ajuste del modelo. |
| |
Para poder revisar el resumen del modelo, puedo consultar la tabla de estimaciones de parámetros. |
| |
Puede ver el pronóstico y los intervalos de pronóstico. Digamos que revisé todos estos diagnósticos y estoy contento con este modelo de suavizado del espacio de estados como candidato a considerar para el pronóstico. |
| |
Entonces, eliminaré el otro modelo de Smothing del espacio de estados de mis modelos y de mi ventana de comparación de modelos. |
| |
Ahora la pregunta es cómo elijo entre este modelo ARIMA que estoy considerando y el modelo de Suavizado del espacio de estados que estoy considerando para realizar pronósticos. |
| |
Puede ver que tengo esta advertencia de lectura de texto que me dice que los criterios basados en 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 realizar pronósticos. |
| |
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 tener una retención establecida, puede usar la opción de pronóstico sobre retención al iniciar la plataforma Serie temporal. |
| |
Y lo que esto haría es que se ajustaría a todos los modelos de series temporales que utilizó en el conjunto de entrenamiento. Y, en la ventana de comparación de modelos, en lugar de ordenar los modelos por AIC, |
| |
ordenará los modelos por el error cuadrático medio o RMSE del conjunto de retención y usted elegirá 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 le ayuda a elegir mediante algo llamado validación cruzada de series temporales. |
| |
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 temporales por un momento, pero me gustaría señalar que yo 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 para pronosticar los principios y la práctica del Dr. Rob Hyndman. |
| |
Pero veamos un ejemplo de validación cruzada de series temporales. |
| |
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 taquilla utilizando un modelo ARIMA o un modelo de suavizado del espacio estatal. Y para decidir qué pronóstico usar, me gustaría utilizar la validación cruzada de series de tiempo. |
| |
Como mencioné, la validación cruzada de series de tiempo subdividirá 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 le permitirá tener seis grupos de validación cruzada de series temporales. Esto le dará una cantidad sugerida de filas predeterminadas para usar en su conjunto de entrenamiento inicial, pero puede cambiarla 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 temporales, obtendrá un informe de series temporales estándar. Pero también agregará un cuadro de esquema para los controles de validación cruzada de series temporales 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 va a ajustar los modelos estacionales. |
| |
Así que mantendré el valor predeterminado de 17 filas en el conjunto de entrenamiento que me permitirá tener seis grupos de validación cruzada de series temporales diferentes. |
| |
Tendré una duración prevista de seis porque quiero pronosticar las próximas seis semanas en taquilla. Y aquí voy a mantener el período igual a faltante porque no voy a ajustar modelos estacionales para estos datos en particular. |
| |
Entonces, exploremos el primer grupo de validación cruzada de series temporales. |
| |
Puedes ver que tengo 17 filas en mi primera serie de entrenamiento y las siguientes seis filas son mi serie de prueba. |
| |
Lo que hará mi complemento es adaptar cualquier modelo ARIMA que le haya pedido al conjunto de entrenamiento. Y ajustará los modelos de suavizado del espacio de estados recomendados al conjunto de entrenamiento. |
| |
Seleccionará el mejor modelo de cada clase mediante AIC y llevará mi pronóstico de los modelos seleccionados al conjunto de prueba y evaluará el error de pronóstico. |
| |
El segundo grupo de validación cruzada de series temporales ampliará el conjunto de entrenamiento en una fila, por lo que ahora mi conjunto de entrenamiento es |
| |
compuesto por las filas del uno al 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 temporales. |
| |
Me ajusto a los modelos ARIMA solicitados por el usuario y me ajusto a los modelos recomendados de Suavizado de espacio de estado. 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 del uno al 22 para el conjunto de entrenamiento y luego usaría el resto de los datos, las últimas seis filas, como el conjunto de prueba. |
| |
Entonces mencioné que estoy almacenando el error de pronóstico para cada grupo de validación cruzada de series temporales. |
| |
Lo que hace el complemento es informar RMSE, MAE y MAPE generales para las dos clases de modelo y le brinda un gráfico del RMSE para cada grupo de validación cruzada de series temporales. |
| |
Y puede usar esta tabla y este gráfico para ayudarlo a decidir si debe ajustarse a cada modelo para el pronóstico o el pronóstico 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 de taquilla mojo y simplemente ejecutaré este script que simplemente inicia la plataforma Time Series para estos datos, porque solo quiero echar un vistazo a la serie temporal. |
| |
Estoy pronosticando el promedio bruto de taquilla por semana y puedo ver que a medida que pasan las semanas la variación y el promedio bruto aumentan, por lo que me gustaría realizar una transformación logarítmica. |
| |
al promedio bruto. Puedo hacerlo creando una columna de fórmula logarítmica para el promedio bruto, pero |
| |
No es necesario, el complemento le brinda la posibilidad de realizar una transformación de Box Cox, al igual que la plataforma Time Series estándar. Entonces, iniciaré mi complemento y haré clic en más allá del descargo de responsabilidad. Quiero pronosticar el cierre promedio de taquilla por semana durante las próximas seis semanas. |
| |
y quiero realizar una transformación logarítmica al promedio bruto, así que usaré una transformación de Box Cox con Lambda igual a cero. |
| |
Y haré clic en Aceptar. |
| |
Esto inicia el informe de serie temporal estándar para la respuesta transformada de Box Cox. Podría adaptar cualquier tipo de modelo de serie temporal, quería que estuvieran disponibles en JMP con este menú de triángulo rojo. |
| |
Pero en lugar de eso, iré al final del informe y usaré la validación cruzada de series de tiempo para obtener una recomendación sobre si debo ajustarme a un modelo ARIMA o un modelo de suavizado del espacio de estados. |
| |
Mantendré las filas iniciales en 17, porque eso me dará seis grupos de validación cruzada de series temporales 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 taquilla y voy a mantener el período igual a faltante para este ejemplo. |
| |
Así que haré clic en Ejecutar y ahora tengo que decir qué modelos ARIMA me gustaría incluir en cada grupo de validación cruzada de series temporales. Entonces, decido que me gustaría usar una diferenciación no estacional de uno, pero dejaré que las órdenes autorregresivas y de promedio móvil sean cero o uno. |
| |
Entonces, cuando hago clic en estimar, lo que sucederá es que cada grupo de validación cruzada de series temporales se ajustará a estos cuatro modelos ARIMA y los modelos recomendados de suavizado del espacio de estados. |
| |
Entonces hago clic en estimación, lo que hace el complemento es expandir este conjunto de datos en mis seis grupos de validación cruzada de series temporales, 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 RMSE, MAE y MAPE más bajos que los modelos de suavizado del espacio de estados. 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 temporales. |
| |
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 del espacio de estados. Entonces puedo subir 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 datos de muestra trimestrales de MC3. |
| |
Los datos de muestra de MC3 Quarterly contienen datos de un poco más de 100 series temporales diferentes de la competencia de modelado MC3. Todas las series son trimestrales. |
| |
Creo que este es un conjunto de datos interesante simplemente porque contiene muchas 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 iniciador, mi columna Y es mi serie temporal, el tiempo es el ID de tiempo. Y, como tengo datos para varias series, necesito usar la opción por para la columna de la serie. Digamos nuevamente que quiero pronosticar los próximos dos años, así que ingresaré ocho períodos de pronóstico y haré clic en Aceptar. |
| |
Esto hizo que apareciera el informe de series temporales para cada serie diferente en mi tabla, como era de esperar. Y también tengo controles de validación cruzada de series temporales para cada serie en la tabla. |
| |
Por lo tanto, 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 del espacio de estados para el pronóstico. |
| |
Por cuestiones de tiempo, solo lo haré para la primera serie. Voy a utilizar un período de cuatro porque me gustaría adaptar modelos estacionales para esta serie. Haré clic en ejecutar. |
| |
Así que usaré un orden de diferenciación no estacional de uno, pero dejaré que todos los demás órdenes de media móvil autorregresiva y el orden de diferenciación estacional oscilen entre cero y 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 es que se ajustará a estos 32 modelos ARIMA. |
| |
en cada uno de los grupos de validación cruzada de series temporales. Entonces el complemento va a donde está la serie N 691. |
| |
Lo está ampliando a seis grupos de validación cruzada de series temporales diferentes. Está adaptando mis modelos ARIMA solicitados al conjunto de entrenamiento. Los modelos de suavizado del espacio de estados recomendados para el conjunto de entrenamiento. |
| |
Seleccionando el mejor modelo por AIC. Pronosticar en el conjunto de prueba y almacenar el 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 RMSE, MAE y MAPE más bajos que los modelos de suavizado del espacio de estados. |
| |
Y en la gráfica, puedo ver que en todos, excepto en el último grupo de validación cruzada de series temporales, los modelos ARIMA tenían un RMSE más bajo. |
| |
que un modelo de suavizado del espacio de estados, y fue más o menos lo mismo en el último grupo. |
| |
Una vez más, se trata de validación cruzada de series de tiempo y recomendaría usar un modelo ARIMA para crear pronósticos para la serie N 691. Y puede ir a otras series diferentes y repetir el proceso y, para ellas, podría recomendar un modelo de suavizado del espacio de estados. |
| |
Así que finalizaré la demostración mostrando otra característica del complemento que en realidad no está relacionada con la validación cruzada de series temporales. |
| |
También le brindé la posibilidad 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 temporales. Entonces, puedo usar la opción del conjunto de pruebas de entrenamiento. |
| |
tener un conjunto de pruebas independiente para evaluar el modelo que elijo. Decidiré que quiero que la duración de mi conjunto de prueba sea 12. |
| |
Y lo que esto significa es que tomará las últimas 12 filas de mis datos y las mantendrá completamente fuera de mi análisis, para que pueda usarlas para evaluar cómo se desempeñó mi pronóstico. Entonces haré clic en Aceptar. |
| |
Y puedes ver que lo que sucedió es que agregué otra columna a la tabla. Es solo una columna indicadora 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 ajustará estos modelos de series de tiempo a las filas donde el conjunto de prueba sea igual a cero. Esto me permite preservar la independencia del conjunto de pruebas. |
| |
Entonces, ajustemos algunos modelos ARIMA a estos datos. Utilizo los mismos controles que hice al comienzo de esta charla con un orden de diferenciación estacional y no estacional de uno, pero dejo que todos los demás ordenes oscilen entre cero y uno. |
| |
Entonces, hago clic en estimación para ejecutar estos 16 modelos ARIMA estacionales diferentes y también ajustaré los modelos de suavizado espacial de estados recomendados. |
| |
Entonces, me desplazaré hacia abajo hasta la ventana de comparación de modelos y puedo ver que el modelo que minimiza el error cuadrático medio en el conjunto de retención fue el modelo de suavizado del espacio de estados con error aditivo, sin tendencia y estacionalidad aditiva. |
| |
Digamos que también estoy interesado en cómo se comportaría el modelo ARIMA de mejor rendimiento en el conjunto de prueba. Puedo seleccionarlo también. |
| |
Y eliminaré los otros modelos que ya no considero para realizar pronósticos. |
| |
Entonces, nuevamente usé la opción de pronóstico en retención, por lo que elegiría este modelo de suavizado del 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 esto hará, dado que utilicé la opción de pronóstico en retención, reajustará ambos modelos seleccionados a los datos combinados de entrenamiento y retención para obtener los parámetros actualizados. |
| |
Y luego pronosticará en el conjunto de prueba y evaluará cómo se desempeñó 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 en comparación con el pronóstico. |
| |
Puedo ver que el modelo de suavizado del espacio de estados no solo funcionó mejor en el conjunto de retención, sino que también funcionó mejor en el conjunto de prueba. Entonces, esta opción de análisis del conjunto de pruebas 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 temporales. |
| |
Creo que este complemento podría serle útil si tiene datos de series de tiempo que no son lo suficientemente largos como 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 posibilidad de utilizar un conjunto de pruebas para evaluar el pronóstico. Y, solo como descargo de responsabilidad, como ocurre con todas las medidas de selección de modelos para datos de series temporales, el complemento no garantiza pronósticos más precisos. |
| |
Muchas gracias por tu tiempo. Espero que pruebes el complemento y que disfrutes el resto de Discovery. Muchas gracias. |