| Vocero |
Transcripción |
| |
Hola, gracias por tomarse el tiempo para ver esto. Me llamo Jacob Rhyne. Soy tester de software para JMP. Hoy les compartiré un complemento que diseñé para ayudarles a elegir entre un modelo ARIMA o un modelo de suavizado de espacio de estados en la plataforma de series temporales de JMP. |
| |
Comienzo con una breve descripción general sobre cómo ajustar los modelos ARIMA y State Space Smoothing en la plataforma de series temporales. |
| |
Presentaré la necesidad de un complemento que ayude a elegir entre estas dos clases de modelo. Además, ofreceré una descripción general de la validación cruzada de series temporales, su herramienta principal. Finalmente, presentaré una demostración del complemento con JMP 16.1. |
| |
La plataforma de series temporales de JMP permite a los usuarios ajustar diversos modelos de series temporales. Esta presentación se centrará en los modelos ARIMA y de suavizado de espacio de estados, y mostraré cómo ajustarlos utilizando estos datos de ejemplo de Envíos de Acero. |
| |
Los datos de muestra de Envíos de acero contienen totales mensuales de envíos de acero de EE. UU. desde 1984 hasta 1991. Y los exploraré con la plataforma de Series de tiempo en el menú de Modelado especializado. |
| |
La columna "Envíos de Acero" es mi serie temporal. La columna "Fecha" es mi ID de tiempo. Supongamos que me interesa pronosticar los envíos de acero de los próximos dos años. Como se trata de datos mensuales, necesito 24 períodos de pronóstico. Haré clic en "Aceptar" para abrir mi informe de series temporales. |
| |
Puedes ver que tengo un gráfico 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 ajustar un modelo ARIMA a esta serie, y al hacerlo, debo decidir si necesito realizar algún tipo de transformación o diferenciación. Así que usaré la opción Diferencia del menú Series Temporales para explorar esto. |
| |
Comenzaré con una diferenciación no estacional de orden uno y haré clic en estimar. |
| |
Ahora tengo un gráfico de la serie de diferencias. Se ve mejor en cuanto a su mayor estacionariedad, pero aún presenta cierta estacionalidad. Y puedo comprobarlo al observar los diagnósticos. Bajo hasta el 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. Por lo tanto, esto sugiere que debería ajustar un modelo ARIMA estacional con diferencias estacionales y no estacionales. |
| |
Voy a cerrar este informe de diferencias para mantenerlo limpio. Además, exploraré la adaptación de diferentes modelos ARIMA con la opción de grupo de modelos ARIMA. |
| |
Así que he decidido ajustar un modelo ARIMA estacional con un orden de diferenciación no estacional de uno y un orden de diferenciación estacional de uno. Sin embargo, para los órdenes autorregresivos y de media móvil, los dejaré en cero o en uno. |
| |
Entonces, al hacer clic en "Estimar", JMP ajustará estos 16 modelos ARIMA estacionales diferentes. Puedo desplazarme hacia abajo hasta la ventana de comparación de modelos y verlos. Los modelos están ordenados descendentemente por AIC, así que seleccionaré el modelo que minimice el AIC. |
| |
Puedo desplazarme hacia abajo para revisar el modelo y el informe. Veo que es estable e invertible. Podría revisar la tabla de estimaciones de parámetros. Revisar el pronóstico y sus intervalos. |
| |
Supongamos que he revisado todos estos diagnósticos y estoy satisfecho con este modelo ARIMA estacional como candidato a considerar para la previsión. |
| |
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 estados para crear un pronóstico. Puedo hacerlo utilizando la opción Suavizado de espacio de estados del menú de series de tiempo. |
| |
Necesito decir que el período es 12 porque estos son datos mensuales y simplemente ajustaré todos los modelos de suavizado de espacio de estados recomendados para esta serie de tiempo. |
| |
Haré clic en Aceptar para ejecutarlo. Si me desplazo hacia abajo hasta el informe de comparación de modelos, puedo ver que JMP ha ajustado todos los modelos de suavizado de espacio de estados recomendados. Están ordenados nuevamente en orden descendente por AIC. |
| |
Entonces, el modelo que minimizó el AIC fue un modelo de error multiplicativo sin tendencia y con estacionalidad multiplicativa. Por lo tanto, 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 sus intervalos. Supongamos que he revisado todos estos diagnósticos y estoy satisfecho con este modelo de suavizado de espacio de estados como candidato para el pronóstico. |
| |
Entonces, eliminaré el otro modelo de suavizado de espacio de estados 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 de suavizado de espacio de estados que estoy considerando para el pronóstico. |
| |
Puedes ver que tengo esta advertencia de texto leído 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 voy a utilizar para pronosticar. |
| |
Esa no es una decisión válida. Entonces, ¿qué hago? Bueno, ya hay una opción disponible en JMP. Si tus datos son lo suficientemente largos, |
| |
Para tener una retención establecida, puede utilizar la opción de pronóstico en retención al iniciar la plataforma Time Series. |
| |
Esto ajustaría todos los modelos de series temporales que usaste al conjunto de entrenamiento. En la ventana de comparación de modelos, en lugar de ordenar los modelos por AIC, |
| |
Ordenará los modelos según 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 utilizar un conjunto de retención, entonces no podemos utilizar 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 estados. |
| |
Y para hacer esto. |
| |
Por eso creé el complemento. Este te ayuda a elegir mediante la validación cruzada de series temporales. |
| |
La validación cruzada de series de tiempo básicamente 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. |
| |
Daré un ejemplo detallado de validación cruzada de series temporales en breve, pero quiero aclarar 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: principios y prácticas de previsión 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 cinéfilo. |
| |
Me gustaría pronosticar las próximas seis semanas en taquilla usando un modelo ARIMA o un modelo de suavizado de espacio de estados. Para decidir qué pronóstico usar, me gustaría usar la validación cruzada de series temporales. |
| |
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 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 proporcionará una cantidad sugerida de filas predeterminadas para usar en su conjunto de entrenamiento inicial, pero puede modificarla si lo desea. |
| |
Mantendré el valor predeterminado de 17 filas iniciales en el conjunto de entrenamiento para este ejemplo. |
| |
Al iniciar el complemento de validación cruzada de series temporales, se generará un informe de series temporales estándar. Además, se añadirá un cuadro de esquema para los controles de validación cruzada de series temporales en la parte inferior del informe. |
| |
Entonces, aquí debes especificar la cantidad de filas iniciales, que es la cantidad de filas en tu primer conjunto de entrenamiento, la longitud del pronóstico que te interesa y el período si vas a ajustar modelos estacionales. |
| |
Entonces, mantendré el valor predeterminado de 17 filas en el conjunto de entrenamiento, lo 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 taquilla. Y aquí mantendré el período igual al valor faltante porque no voy a ajustar modelos estacionales para estos datos en particular. |
| |
Entonces, exploremos el primer grupo de validación cruzada de series de tiempo. |
| |
Puedes ver que tengo 17 filas en mi primer conjunto de entrenamiento y las siguientes seis filas son mi conjunto de prueba. |
| |
Mi complemento integrará los modelos ARIMA que le solicite en el conjunto de entrenamiento. Además, integrará los modelos de suavizado de espacio de estados recomendados en dicho conjunto. |
| |
Seleccionará el mejor modelo de cada clase por AIC y llevará el 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 de tiempo va a expandir el conjunto de entrenamiento en una fila, por lo que ahora mi conjunto de entrenamiento es |
| |
Compuesto por las filas 1 a 18, y las siguientes seis filas constituyen mi conjunto de prueba. Luego, repito el proceso que realicé en el primer grupo de validación cruzada de series temporales. |
| |
Ajusto los modelos ARIMA solicitados por el usuario y los modelos de suavizado de espacio de estados recomendados. Selecciono el mejor modelo según el pronóstico AIC en el conjunto de prueba y almaceno el error de pronóstico. |
| |
Y sigo haciendo esto hasta que haya usado todos mis datos. Por lo tanto, el grupo final de validación cruzada de series temporales para este ejemplo usaría las filas 1 a 22 como conjunto de entrenamiento y luego usaría el resto de los datos, las últimas seis filas, como conjunto de prueba. |
| |
Entonces 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 informar el 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 de tiempo. |
| |
Y puede utilizar esta tabla y este gráfico para ayudarle a decidir si debe ajustar cada modelo para la previsión o el modelo de suavizado del espacio de estados. |
| |
Echemos un vistazo al complemento en acción con estos datos. |
| |
Entonces abriré los datos de taquilla que obtuve de Box Office Mojo y ejecutaré este script que simplemente inicia la plataforma de series de tiempo para estos datos, porque solo quiero echar un vistazo a las series de tiempo. |
| |
Estoy pronosticando el ingreso bruto promedio en taquilla por semana y puedo ver que a medida que pasan las semanas, la variación y el ingreso bruto promedio se hacen más grandes, por lo que me gustaría realizar una transformación logarítmica. |
| |
al ingreso bruto promedio. Puedo hacerlo creando una columna de fórmula logarítmica para el ingreso bruto promedio, pero |
| |
No es necesario, el complemento permite realizar una transformación de Box Cox, igual que la plataforma estándar de series temporales. Así que, abriré el complemento y haré clic en el aviso legal. Quiero pronosticar el cierre promedio de taquilla semanal para las próximas seis semanas. |
| |
y quiero realizar una transformación logarítmica al promedio bruto, entonces usaré una transformación Box Cox con Lambda igual a cero. |
| |
Y haré clic en Aceptar. |
| |
Esto inicia el informe de series temporales estándar para la respuesta transformada de Box Cox. Podía incorporar cualquier modelo de series temporales que quisiera, disponible en JMP con este menú triangular rojo. |
| |
Pero en lugar de eso, iré al final del informe y utilizaré la validación cruzada de series de tiempo para obtener una recomendación sobre si debo ajustar un modelo ARIMA o un modelo de suavizado de espacio de estados. |
| |
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 taquilla y mantendré el período igual al que falta para este ejemplo. |
| |
Haré clic en "Ejecutar" y ahora debo definir qué modelos ARIMA quiero incluir en cada grupo de validación cruzada de series temporales. Decidí usar la diferenciación no estacional de uno, pero dejaré que los órdenes autorregresivos y de media 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 de tiempo se ajustará a estos cuatro modelos ARIMA y a los modelos de suavizado de espacio de estados recomendados. |
| |
Entonces hago clic en estimar y 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 para ver los resultados. En la tabla se puede ver que, en general, los modelos ARIMA produjeron valores RMSE, MAE y MAPE más bajos que los modelos de suavizado de espacio de estados. Y, si observo el gráfico... |
| |
Puedo ver que los modelos ARIMA produjeron un RMSE más bajo para cada grupo de validación cruzada de series de tiempo. |
| |
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 estados. Puedo ir al menú del triángulo rojo y ajustar un modelo ARIMA con la opción "Grupo de modelos ARIMA". |
| |
Veamos otro ejemplo del complemento y, para realizar este próximo ejemplo, voy a utilizar un subconjunto de los datos de muestra trimestrales de MC3. |
| |
Los datos de muestra trimestrales de MC3 contienen información de poco más de 100 series temporales diferentes del concurso de modelado MC3. Todas las series son trimestrales. |
| |
Creo que este conjunto de datos es interesante simplemente porque contiene tantas series temporales diferentes. Sin embargo, por razones de tiempo, en esta charla simplemente tomé un subconjunto aleatorio de tres series de la tabla. |
| |
Entonces lanzaré mi complemento. |
| |
Al configurar el lanzador, mi columna Y representa mi serie temporal y "tiempo" el ID de tiempo. Como tengo datos para varias series, necesito usar la opción "por" para la columna "serie". Supongamos que quiero pronosticar los próximos dos años; para ello, introduciré ocho períodos de pronóstico y haré clic en Aceptar. |
| |
Como era de esperar, esto generó el informe de series temporales para cada serie de mi tabla. También tengo controles de validación cruzada de series temporales para cada una de ellas. |
| |
De este modo, podría utilizar la validación cruzada de series de tiempo para cada una de estas series y obtener una recomendación sobre el uso de un modelo ARIMA o un modelo de suavizado de espacio de estados para el pronóstico. |
| |
Por cuestiones de tiempo, solo lo haré para la primera serie. Usaré un período de cuatro años porque quiero adaptar los modelos estacionales a esta serie. Haré clic en "Ejecutar". |
| |
Entonces, utilizaré un orden de diferenciación no estacional de uno, pero todos los demás órdenes de promedio móvil autorregresivo y el orden de diferenciación estacional los dejaré en un rango de cero o uno. |
| |
Establezca el período de observación en cuatro porque, repito, se trata de datos trimestrales. Por lo tanto, al hacer clic en "Estimar", se ajustará a estos 32 modelos ARIMA. |
| |
En cada uno de los grupos de validación cruzada de series temporales. Por lo tanto, el complemento se dirige a la serie N 691. |
| |
Se está expandiendo a seis grupos de validación cruzada de series temporales diferentes. Se están ajustando los modelos ARIMA solicitados al conjunto de entrenamiento. Se están incorporando los modelos de suavizado de espacio de estados recomendados al conjunto de entrenamiento. |
| |
Selección del mejor modelo mediante AIC. Pronóstico en el conjunto de prueba y almacenamiento del error de pronóstico. |
| |
Le daré un segundo para terminarlo. |
| |
Aquí vamos. |
| |
Puedo desplazarme y ver los resultados. Como pueden ver en la tabla, los modelos ARIMA generaron valores RMSE, MAE y MAPE más bajos que los modelos de suavizado de espacio de estados. |
| |
Y a partir del gráfico, puedo ver que en todos los grupos de validación cruzada de series de tiempo, excepto el último, los modelos ARIMA tuvieron un RMSE más bajo. |
| |
que un modelo de suavizado del espacio de estados, y fue prácticamente lo mismo en el último grupo. |
| |
Entonces, una vez más, se trata de una validación cruzada de series de tiempo y recomendaría usar 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 aquellas podría recomendar un modelo de suavizado de 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 de tiempo. |
| |
También les he dado la posibilidad de usar un conjunto de prueba para evaluar el pronóstico con el complemento, y lo mostraré nuevamente usando los datos de ejemplo de Envíos de Acero. Así que iniciaré 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. Por lo tanto, dado que hago eso, no necesito usar la validación cruzada de series temporales. Así, puedo usar la opción del conjunto de prueba de entrenamiento. |
| |
Para tener un conjunto de pruebas independiente para evaluar el modelo que elijo, decido que mi conjunto de pruebas tendrá una longitud de 12. |
| |
Esto significa que tomará las últimas 12 filas de mis datos y las excluirá por completo del análisis para poder usarlas para evaluar el rendimiento de mi pronóstico. Así que haré clic en "Aceptar". |
| |
Como pueden ver, lo que sucedió es que agregué otra columna a la tabla. Es simplemente una columna indicadora para el conjunto de prueba, donde su valor es uno si la fila está incluida en el conjunto de prueba y cero si no. |
| |
Y solo ajustará estos modelos de series temporales a las filas donde el conjunto de prueba sea igual a cero. Esto me permite preservar la independencia del conjunto de prueba. |
| |
Así que, ajustemos algunos modelos ARIMA a estos datos. Utilizo los mismos controles que al principio de esta charla, con un orden de diferenciación estacional y no estacional de uno, pero dejando que todos los demás órdenes oscilen entre cero y uno. |
| |
Entonces, hago clic en estimar 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 de espacio de estados con error aditivo, sin tendencia y estacionalidad aditiva. |
| |
Digamos que también me interesa saber cómo se comportaría el modelo ARIMA con mejor rendimiento en el conjunto de pruebas. Puedo seleccionarlo también. |
| |
Y eliminaré los otros modelos que ya no estoy considerando para el pronóstico. |
| |
Entonces, nuevamente he utilizado la opción de pronóstico en retención, por lo que elegiría este modelo de suavizado de espacio de estados para usar en el pronóstico, pero tengo curiosidad de saber cómo funcionaría el modelo ARIMA en el conjunto de prueba. |
| |
Así que puedo desplazarme hacia abajo hasta el cuadro de análisis del conjunto de prueba. Y, dado que usé la opción de pronóstico en espera, esto reajustará ambos modelos seleccionados a los datos combinados de entrenamiento y espera para obtener los parámetros actualizados. |
| |
Y luego pronosticará en el conjunto de prueba y evaluará cómo funcionó el pronóstico en comparación con los datos reales del conjunto de prueba. |
| |
Haré clic en "Ejecutar" para realizar el análisis. Puedo ver que tengo una tabla con el RMSE, el MAE y el MAPE del conjunto de prueba, y un gráfico del conjunto de prueba comparado con el pronóstico. |
| |
Puedo ver que el Modelo de Suavizado de Espacio de Estados no solo tuvo un mejor rendimiento en el conjunto de retención, sino también en el conjunto de prueba. Por lo tanto, esta opción de análisis del conjunto de prueba le brinda una herramienta para evaluar el ajuste de su modelo. |
| |
En resumen, el complemento permite realizar validaciones cruzadas de series temporales. |
| |
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 así desea considerar usar diferentes clases de modelos. |
| |
El complemento también permite usar un conjunto de prueba para evaluar el pronóstico. Cabe aclarar que, al igual que 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 su tiempo. Espero que pruebe el complemento y que disfrute del resto de Discovery. Muchas gracias. |