Imagen destacada del blog Backtesting en Excel.

Prueba Retrospectiva o Back-Testing en Excel

La prueba retrospectiva en el modelado se refiere a un modelo de prueba que usa datos históricos. Este artículo se trata de cómo lograr hacer esto en Microsoft Excel y no del trasfondo teórico de lo que llamamos “Prueba Retrospectiva” o Backtesting.

¿Cómo llevamos a cabo el Backtesting? Rebobinamos el tiempo hasta el comienzo de nuestra serie de tiempo, calibramos los parámetros del modelo de sujeto usando los datos disponibles hasta esa instancia de tiempo, y hacemos una predicción (es decir un pronóstico) para el siguiente período. Luego, avanzamos el tiempo, recalibramos los valores de parámetros y llevamos a cabo otra proyección, y así sucesivamente. Al final de nuestro ejercicio, tendríamos un conjunto de predicciones.

Notemos que, en cada punto, la única conjetura que hacemos es la definición general del modelo (es decir ARMA(1,1)). Aun así, calibraríamos los valores de los parámetros usando solamente la información disponible hasta ese momento.

Esta aproximación es consistente con prácticas de la vida real: primero, empezamos con un modelo inicial y llevamos a cabo un pronóstico para el siguiente período. Pasa el tiempo y se produce un nuevo período, por lo que agregamos el nuevo punto de datos al actual conjunto de datos de entrada. Recalibramos los parámetros, llevamos a cabo un pronóstico para el período siguiente, y repetimos.

¿Por qué nos debe importar esto?

Este artículo nos llevará por los pasos necesarios en Microsoft Excel para llevar a cabo un backtesting. Usaremos principalmente dos funciones incorporadas de excel: INDEX(.) y SEQUENCE(.), y sacaremos ventaja del mecanismo de tabla de datos de Excel para ejecutar diferentes escenarios.

El backtesting genera los errores de pronóstico que podrían haber ocurrido; de manera que podemos examinar de cerca el error de predicción de las series de tiempo para la correlación serial, las distribuciones, los valores atípicos, entre otros, para entender mejor la exactitud del modelo y su comportamiento.

¡Profundicemos en esto!

Para este número, usaremos un conjunto de datos sintético estacionario de 200 observaciones. El conjunto de datos sigue un proceso ARMA(1,1) como se muestra a continuación.

El modelo propuesto es ARMA(1,1)

Procedimiento de Backtesting

For every iteration, we need to do the following: (1) define the input data set (as sub-set of the original time series), (2) using the data set in (1), calibrate the parameters’ values of the ARMA(1,1) model, (3) Using the model in (2) and the dataset in (1), calculate a forecast for one-period ahead.

1. Conjunto de datos de entrada

Para cada repetición necesitamos hacer lo siguiente: (1) definir el conjunto de datos de entrada (como un sub conjunto de las series de tiempo originales), (2) usar el conjunto de datos en (1) calibrar los valores de parámetro del modelo ARMA(1,1), (3) usando el modelo en (2) y el conjunto de datos en (1) calcule el pronóstico para un periodo por adelantado.

Ejemplo:

El conjunto de datos original es $A$3:$A$202. Para seleccionar las celdas entre los índices 1 y 50.

=INDEX($A$3:$A$202,SEQUENCE(50,1,1,1),1

Notemos que podemos definir un nombre para nuestros datos de entrada y hacer referencia a este nombre en el lugar del rango de celda de entrada.

2. Calibrar el Modelo

Usaremos la función ARMA_PARAM(.) de NumXL y especificaremos el tipo de retorno como=2 para parámetros calibrados.

Notemos que ARMA_PARAM(.) devuelve una forma compacta de los parámetros del modelo, de manera que, en la figura de arriba, el proceso ARMA es:

3. Pronóstico

Usando el conjunto de datos ARMA_FORE(.), en (1), y el modelo de los parámetros calculado en 2, podemos calcular los valores de pronóstico de 1 periodo por adelantado.

Notemos que hemos generado el pronóstico de media, el error de pronóstico, y el intervalo de confianza.

Tabla de Datos

Ahora hemos acabado de completar el cálculo de uno de los pasos. Usaremos la función de “Tabla de Datos” de Excel para hacer el mismo cálculo matemático para los periodos restantes hasta el paso 200.

Primero necesitamos preparar la tabla de resultados:

Ahora, seleccionemos toda la tabla de datos empezando con la tabla de resultados e incluyendo la columna final del índice, como pueden ver a continuación:

Ahora, pasémonos a la barra de herramientas de “Datos” y localicemos el ítem “Tabla de Datos” bajo “Análisis what if (y si)”.

El dialogo de “Tabla de Datos” aparece. Ubiquemos la celda de “columna de entrada”, ingresemos la referencia del conjunto de datos del índice “finalizado”, y luego hagamos clic en el botón OK.

La tabla de datos sustituirá el valor del índice finalizado con los valores en nuestra tabla de datos y guardará los resultados.

Notemos que se genera “Std. Error” por causa de la función ARMA_FORE(.) mientras que la columna ubicacada más a la derecha (“Error”) es el error entre el pronóstico y el valor actual realizado.

Prueba retrospectiva o Back-Testing

Primero examinaremos los resultados de pronóstico de backtesting visualmente para los valores realizados propiamente dichos, y luego profundizaremos en las propiedades estadísticas.

El área sombreada en el gráfico corresponde a un intervalo de confianza del pronóstico de un 95%.

La gráfica exhibe un buen ajuste de modelo y, por lo tanto, exactitud del pronóstico.

Luego examinemos las propiedades estadísticas del error de pronóstico (Pronostico – Actual) usando un resumen de estadísticas en la barra de herramientas de NumXL.

La tabla de resumen estadístico indica que el error de pronóstico es ruido Gaussiano con media cero y una desviación estándar de 1.0.

En conclusión, ARMA(1,1) es un modelo apropiado para el conjunto de datos dado.

¿Qué sigue?

¿Para este momento quizás se estén preguntando sobre los valores de los parámetros del modelo? ¿Son estables?

Primero, construimos una segunda “Tabla de Datos,” pero en la fila de resultados están los valores de parámetros del modelo, y ejecutaremos la tabla de datos tal como hicimos anteriormente.

Ahora analicemos los valores de cada parámetro como hicimos con el error de pronóstico.

Los valores de los parámetros (excepto Theta) exhiben estabilidad y una tendencia hacia un valor constante. Los valores theta (de coeficiente MA) son más volátiles pero están limitados entre 0.6 y 0.9.

Luego debemos examinar las estadísticas descriptivas y las distribuciones de valores de parámetros subyacentes, pero dejaremos este ejercicio para que lo hagan ustedes.

Por favor, refiéranse a la hoja de cálculo adjunta para el análisis del conjunto de datos.

Conclusión

Este artículo ha mostrado los pasos para llevar a cabo una prueba retrospectiva o backtesting para un modelo predictivo con un cálculo mínimo o intermedio. Hemos usado las funciones incorporadas de Excel como INDEX(.) y SEQUENCE(.) y hemos sacado ventaja de la función de “Tabla de Datos” para llevar a cabo un cálculo completo para todos los índices pre-definidos.

Una vez obtuvimos los resultados del backtesting, nos enfocamos en el análisis estadístico y evaluamos sus propiedades y distribución para descubrir cualquier sesgo en el resultado (por ejemplo, la correlación serial).

Ejemplos de Archivos

Este archivo contiene un ejemplo en excel. archivo ing para backtest
Icon

Backtesting en Excel ejemplo 0.00 KB

Este archivo contiene un ejemplo para backtesting ...

Leave a Reply

Your email address will not be published. Required fields are marked *

We are glad you have chosen to leave a comment. Please keep in mind that comments are moderated according to our comment policy.