Modelos de pronóstico con funciones de actualización automática

El tema que trata este newsletter es la configuración de un modelo de pronóstico (ej. ARMA, GARCH, de regresión), de tal manera que usted (o cualquier otra persona) pueda mantenerlo fácilmente a medida que nuevos puntos de datos estén disponibles y que los pronósticos se hayan auto actualizado.

Para demostrarlo, hemos definido un modelo GARCH para los retornos mensuales de S&P 500 ETF, calibramos los valores de parámetros y construimos una estructura temporal de pronóstico de volatilidad para los siguientes 36 meses. Luego conectamos un nuevo punto de datos y observamos que el modelo avanzaba la fecha de inicio del pronóstico y actualizaba los valores de pronóstico.

¿Por qué nos debe importar?

En la práctica hemos creado muchos modelos basados en Excel, algunos de ellos para un único uso, pero con frecuencia compartimos muchas hojas de cálculo con colegas, que son revisadas ocasionalmente y dejadas a un lado por mucho tiempo. Preparar nuestra hoja de cálculo para una auto actualización es relativamente simple. Una vez hecho esto, podemos añadir nuevos puntos de dato muy fácilmente, o revisar los ya existentes y ver nuestros cálculos actualizados gracias a mínimos esfuerzos.

¿Listos? ¡Ahondemos en el tema!

Preparación de datos

Para este tutorial estamos usando los retornos mensuales de S&P 500 ETF (SPY) entre enero de 2010 y noviembre de 2019:

Esta gráfica muestra los retornos mensuales de S&P 500 entre enero de 2010 y noviembre de 2019. El conjunto de datos tiene fecha y componentes de valor.

Primero debemos adjuntar el conjunto de datos actual con marcadores de posición. Lo hacemos adelantando fechas (ej. diciembre 2019, enero de 2019) e ingresando #N/A como sus valores.

En esta gráfica demostramos el proceso de adicionar marcadores de posición al final del conjunto de series de tiempo. Cada marcador tiene una fecha válida y un valor de #N/A.

Modelado

Escogimos un GARCH (2,2) con las innovaciones de estudiantes para capturar la dinámica de volatilidad de tiempo variable mensual para este conjunto de datos. Para definir el modelo debemos ubicar una celda vacía en su hoja de cálculo y luego hacer clic en el ícono de “GARCH” en la barra de herramientas de “NumXL”, y el asistente GARCH aparecerá.

En esta gráfica mostramos el asistente GARCH desplegado. El conjunto de datos de entrada hace referencia al rango de celdas de series de tiempo de ingreso incluyendo los puntos de dato de los marcadores de posición insertados al final del conjunto de datos.

En la sección de “Datos de entrada” seleccionamos el rango de celdas de retorno mensual, incluyendo los marcadores de posición que adicionamos antes. No hay que preocuparse, las funciones NumXL descartarán las observaciones con valores #N/A en cualquier extremo del rango de celdas de entrada.
Seleccionemos ARCH y GARCH en la sección de especificaciones del modelo, y luego establezcamos el orden como 2. Hagamos clic en “Distribución-t de estudiante” bajo la sección de innovaciones. Ahora, hagamos clic en el botón de OK para confirmar nuestra selección.

Esta gráfica muestra la tabla del modelo de GARCH (2,2) como lo ha generado el asistente de NumXL GARCH.

El asistente GARCH genera el modelo de tabla e inicia sus valores de parámetro para valores válidos pero subóptimos. Para encontrar un conjunto óptimo de valores para los parámetros de GARCH, seleccionamos la celda del encabezado en la tabla modelo y hacemos clic en el icono de “calibrar” en la barra de herramientas de NumXL. El solucionador de Microsoft aparecerá con todo su conjunto de datos. Hagamos clic en resolver.

Esta gráfica muestra el solucionador de Microsoft con los valores iniciales para optimizar la bondad del ajuste del modelo GARCH con el conjunto de datos.

El solucionador de Microsoft busca una solución óptima para el proceso GARCH.

Esta gráfica muestra las ventanas de resultado del solucionador de Microsoft luego de que han encontrado una solución.

Exploración de Datos

Antes habíamos mencionado que las funciones de NumXL descartan cualquier observación en el rango de celdas de entrada con un valor igual a “#N/A”. ¿Cómo saber dónde finaliza el conjunto de datos?

Para responder la pregunta anterior necesitamos primero calcular el tamaño del conjunto de datos con dos funciones: RMNA(.) y COUNT(.). El RMNA(.) descarta puntos de datos con “#N/A” y arroja un despliegue de todas las observaciones no faltantes, y COUNT(.) devuelve el tamaño de esta matriz.

Esta gráfica muestra que la fórmula para calcular el tamaño efectivo del conjunto de datos de entrada usando las funciones de COUNT y RMNA.

También podemos calcular la fecha final del conjunto de datos usando la función incorporada de Excel INDEX(.) y el tamaño del conjunto de datos anterior.

Esta gráfica muestra la fórmula para calcular la fecha de la última observación con valores no faltantes en nuestro conjunto de datos usando la función INDEX y el tamaño efectivo del conjunto de datos de entrada.

En suma, tenemos un conjunto de datos de 119 valores no faltantes y la última observación cayó en noviembre de 2019.

Pronóstico

Para este tutorial necesitaremos construir el pronóstico de volatilidad mensual para los siguientes 36 meses. Para hacerlo, seleccionemos la columna del encabezado de la tabla modelo y hagamos clic en el icono de “Pronóstico” en la barra de herramientas de NumXL.

Esta gráfica muestra el asistente de pronóstico para el modelo GARCH. Notemos que el último obs está referenciando el conjunto de datos de entrada incluyendo los puntos de datos como marcadores de posición.

En la sección de “últimos observaciones”, seleccionemos el rango de celdas en la columna “B”, incluyendo la observación con valores faltantes (ej. #N/A).

Para la volatilidad dejemos el espacio en blanco y NumXL usará la volatilidad en la muestra calculada por el modelo GARCH en sí mismo. Hagamos clic en el botón “OK”.

El asistente de pronóstico generará una tabla de pronóstico que expresa la unidad de tiempo en términos o pasos (ej. Mes) medida luego del final del conjunto de datos de entrada.

Esta gráfica muestra la tabla de pronóstico generada por el asistente de NumXL para los siguientes 36 meses. Notemos que usa el paso (ej. Mes) como unidad de tiempo.

Con el tiempo, agregar nuevos puntos de datos avanza la fecha de la última observación (con valores no faltantes), impactando nuestra interpretación de la unidad de paso en la tabla de pronóstico. Para contrarrestar este problema hemos adicionado una columna a la izquierda de la tabla de pronostico para designar la fecha del calendario correspondiente.
Para calcular la fecha correspondiente para cada paso, necesitaremos las funciones NxEDATE(.) y CONCAT(.) como se muestra a continuación:

Esta gráfica muestra la fórmula para calcular la fecha del calendario para cada periodo en la tabla de pronóstico usando la función NxEDATE.

Usando la fecha final del conjunto de datos, NxEDATE devuelve los datos que cae luego de los N meses, donde N es el número de pasos en la tabla de pronóstico.
¿Qué sucede si los nuevos datos caen en un fin de semana o en un feriado? Como nuestro conjunto de datos es una serie de tiempo financiera, la fecha debe caer en un día laboral, de lo contrario debemos mover la fecha al siguiente día hábil (NxAdjust(.)).

Esta gráfica muestra la fórmula para ajustar la fecha calculada al próximo día hábil usando la función NxAdjust.

¡Eso es todo! Examinemos pues la tabla de pronóstico y la curva de estructura temporal de volatilidad mensual.

Esta gráfica muestra la tabla de pronóstico con una columna de fechas del calendario y el pronóstico de estructura temporal de volatilidad para los siguientes 36 meses.

El modelo GARCH revela una atmosfera de volatilidad baja – relativa al nivel del histórico (ej. 3.8%) pero pronostica un alza constante en la volatilidad durante el siguiente año.

Agregar puntos de datos

Examinemos lo que ocurre cuando tenemos un retorno mensual para diciembre de 2019 de, digamos, un -0.6%.
Paso 1: Ingrese el nuevo valor en el conjunto de datos.

Esta gráfica muestra el proceso de conexión de nuevos puntos de datos y el reemplazo de un marcador de posición dado.

Paso 2: Observar

Esta gráfica muestra el calculo actualizado para el tamaño del conjunto de datos y la fecha final, y la tabla de pronostico y la curva de estructura temporal de volatilidad.

El tamaño del conjunto de datos de entrada aumentó a 120 y la fecha de finalización es diciembre 2019 ahora.
En la tabla de pronóstico la fecha correspondiente para el paso uno -ahora, es enero de 2020 (era diciembre de 2019) y la estructura temporal de volatilidad es diferente (menos suave).

Paso 3: Avanzado
La tabla de pronóstico que aparece arriba utiliza el mismo proceso GARCH que hemos calibrado antes, especialmente el valor de los parámetros.
En aras del argumento, asumamos que queremos re-calibrar el modelo para conservar el orden de ARCH/GARCH (ej. P y Q) y la misma innovación de distribución (ej. Estudiante t).
Tal como hicimos anteriormente, ubiquemos y seleccionemos la fila de encabezado de tabla del modelo GARCH y hagamos clic en el icono de “calibrar” en la barra de herramientas de NumXL.
El resolvedor o solver aparecerá, pero esta vez la optimización comenzará con los valores óptimos de los parámetros (ej. valor inicial) de la última ejecución. Por lo tanto, esperamos una rápida conversión.

Esta gráfica demuestra el proceso de recalibrar el modelo GARCH usando el conjunto de datos con nuevos puntos de datos.

Hagamos clic en el botón del resolvedor o “Solver” para empezar el proceso de optimización.
Una vez finalizado, Solver muestra el cuadro de diálogo “Buscar solución”. Hagamos clic en el botón OK y este copiará los valores de los nuevos parámetros dentro del modelo de la tabla.
Para examinar el impacto de re-calibración en nuestro pronóstico, veamos nuestros valores de pronóstico en la tabla de abajo (y en la gráfica).

Conclusión

En este tutorial examinamos los dos pasos para configurar nuestros modelos para la actualización automática.
• Agregando puntos de datos de marcador al final del conjunto de datos de entrada,
• Seleccionando el conjunto de datos con los puntos de datos de marcador entre el modelo y el pronóstico.
A medida que el tiempo progresa y nos damos cuenta de nuevas observaciones, ingresamos sus valores actuales en el conjunto de datos (en lugar de #N/A), y Excel actualiza el calculo de todas las celdas de referencia (ej. Tabla de pronóstico).

  Archivos adjuntos

Comentarios

Inicie sesión para dejar un comentario.

¿Fue útil este artículo?
Usuarios a los que les pareció útil: 1 de 1