Vaya por delante una afirmación categórica; es imposible estimar con precisión la evolución de los precios de los activos financieros. Las series de cotizaciones se caracterizan por tener un comportamiento muy cercano al de los procesos estocásticos, lo que implica:

  • Tendencias de amplitud variable
  • Variaciones estacionales
  • Continuos cambios en los retornos y varianzas
  • Volatilidad asimétrica; diferente en rachas alcistas y bajistas

Todo esto hace que la ventana de oportunidades de cualquier modelo predictivo aplicado a los mercados sea muy estrecha. Así que pierdan toda esperanza de saber, empleando cualquier modelo imaginable (ARIMA, ARCH, GARCH, EGARCH, cadenas de Markov, autómatas finitos, RNNs, etc.), el valor exacto del O-H-L-C de mañana, la semana que viene o el próximo mes; las barras seguirán formándose en su pantalla de manera imprevisible. Sin embargo, lo que sí podemos predecir son escenarios plausibles o recorridos en los precios a los que asignamos determinada probabilidad.

En este ámbito, uno de los modelos predictivos como mejor fundamentación teórica y más usado en econometría es el ARIMA. Este modelo combina procesos autorregresivos de orden p (AR) con procesos basados en medias móviles (MA) para encontrar patrones en las series temporales que permitan realizar predicciones. Cuando las series no son estacionarias se deben hacer transformaciones logarítmicas y diferenciaciones que permitan integrar la serie para convertirla en estacionaria. De ahí el nombre “Modelo Autrorregresivo (AR) Integrado (I) de promedio móvil (MA)».

Descripción del modelo ARIMA

La metodología ARIMA fue desarrollada por Box y Jenkins en 1976 y desde entonces se ha empleado en infinidad de modelos financieros que requieren el análisis y estimación de series temporales. En su versión más simple este modelo tiene 3 parámetros (p, d, q) siendo todos ellos números enteros positivos. Su determinación afecta de manera crítica a la calidad y alcance de las proyecciones estadísticas del modelo. Por ejemplo un ARIMA (1,1,2) estará compuesto por los un proceso autorregresivo de orden 1 (AR1) más la transformación de la serie en las primeras diferencias I(1) más una media móvil de orden 2 (MA2).

Veamos esto con más detalle:

  • AR(1). Un proceso autorregresivo de primer orden es básicamente una regresión lineal simple que vendría determinada por la siguiente expresión:

 

Donde c y φ son constantes y ε es el término de error o ruido blanco con varianza σ2. Este término recibe también el nombre de innovación o perturbación estocástica.

  • AR(p) Una serie temporal dada sigue un proceso autorregresivo de orden p cundo Xt se puede expresar como una sucesión de todos sus retardos hasta el término p:

 

 

  • MA(1) Es un proceso de media móvil de orden 1 MA. El valor actual de la serie está correlacionado únicamente con cada elemento inmediatamente anterior:

 

 

Y un proceso MA(q) vendría dado por la expresión:

 

 

Un proceso MA(q) es siempre estacionario.

  • ARMA(p,q) Es un proceso autorregresivo de medias simples que está compuesto por los dos componentes descritos; una parte autorregresiva de orden p y otra parte de medias móviles de orden q. Un modelo ARMA se puede formalizar como:

 

 

Este modelo es estacionario si lo es su componente AR y es invertible si lo es su componente MA.

  • ARIMA(p, d, q) Los procesos ARIMA permiten modelar una serie de observaciones una vez que la serie temporal haya sido diferenciada d veces para eliminar los factores de no estacionalidad. Una vez diferenciado responde a la misma estructura formal que un ARMA.

El modelo ARIMA puede ser más complejo, tomando la forma: ARIMA(p, d, q)(P,D,Q)s incorporando las diferencias estacionales (D), un AR estacional de orden P y un MA estacional de orden Q.

En diversos modelos no se usan todas las variables por lo que estructuralmente el ARIMA puede reducirse a procesos más simples. Estos son algunos casos particulares:

  • ARIMA(0,0,0) = Ruido blanco.
  • ARIMA(0,1,0) = Proceso aleatorio.
  • ARIMA(0,0,q) = MA(q)
  • ARIMA(p,0,0) = AR(p)
  • ARIMA(0,d,0) =I(d)
  • ARIMA(p,0,q) = ARMA(p,q)

Una vez presentada la estructura básica del modelo, que hemos simplificado a tope omitiendo numerosas demostraciones matemáticas innecesarias en este artículo, nos centraremos en los pasos a seguir para implementar un modelo ARIMA.

Etapas del proceso ARIMA

La metodología Box-Jenkins consta de las siguientes etapas:

 

1) El primer paso en el análisis de las series es la representación gráfica. De aquí en adelante y para ilustrar el proceso tomaremos como referencia el histórico en base diaria del SP500 (SPX) entre 1980 y 2019.

Para determinar si la serie es estacionaria normalmente se utilizan correlogramas junto con el test de las raíces unitarias (Dickey-Fuller aumentado, ADF) que es uno de los más populares y versátiles estadísticos para el análisis de series temporales. Este es el correlograma del SPX:

Como vemos la autucorrelación disminuye muy lentamente en los 20 retardos analizados mientas que la correlación parcial muestra un pico en el primer lag y luego decae a valores mínimos. Este es el patrón característico de las series no estacionarias. En todo caso confirmamos este extremo con el test ADF:

Vemos que no se consigue rechazar la hipótesis nula de que la serie tenga una raíz unitaria y debemos asumir que la serie de cierres del SPX no es estacionaria.

2) Transformación de la serie.- Por lo general, Los gráficos de cotizaciones no son estacionarios en varianza ni en media. Por tanto se debe aplicar una transformación logarítmica a las primeras diferencias. Una vez diferenciada y convertida a logaritmos la serie de precios muestra este aspecto:

Si volvemos a realizar el test ADF:

Ahora observamos que se puede rechazar la hipótesis nula con una altísima probabilidad de no incurrir en error de tipo I. Por tanto asumimos que la serie transformada ya es estacionaria.

3) Nuestro siguiente paso será la identificación del modelo. Para ello realizamos nuevamente un correlograma:

En este caso nos interesan los valores que se salen de las bandas de confianza cuyo valor crítico será:

Para determinar los AR nos fijamos en los valores que se salen de las bandas en la función de correlación parcial (PAC): AR(1), AR(2), AR(4), AR(7), AR(12), AR(15), AR(16) y AR(18). Y para determinar los MA nos fijamos en la función de autocorrelación: MA(1), MA(4), MA(12), MA(15), MA(16) y MA(25). Una vez identificados los procesos AR y MA de los que depende la serie de cierres del SPX analizamos su significatividad, ya que no todos tienen el mismo peso y algunos pueden descartarse al establecer la ecuación del modelo ARIMA.

Para conocer el peso da cada componente AR y MA procedemos a realizar una regresión por mínimos cuadrados (MCO) incluyendo como variable dependiente serie LogR y como regresores los elementos AR y MA a considerar. Este es el resultado que obtenemos en nuestro caso:

Como vemos, algunos coeficientes no son demasiado significativos y podíamos excluirlos directamente de la ecuación. Sin embargo vamos a construir nuestro primer modelo ARIMA considerándolos todos:

4.- Una vez tenemos el modelo nuestro siguiente paso es verificar si los residuos se comportan como ruido blanco. Es decir: Su media es 0, la varianza es constante y no existe autucorrelación entre ellos. En este caso el modelo no es bueno y habría que refinarlo porque al analizar el histograma de los residuos tenemos:

La media es distinta de 0 aunque está próxima y el test de Jarque-Bera nos indica la ausencia de normalidad (JB>5,99 y p-value < 0,05). Si analizamos el correlograma de residuos:

Vemos que todas las probabilidades de Q son inferiores a 0,05 por tanto tampoco podemos afirmar que los residuos sean ruido blanco. Por tanto deberíamos construir otro modelo que además de los componentes AR y MA incorpore otros niveles de diferenciación y/o componentes estacionales. Buscamos otros modelos mejores y encontramos algunos candidatos con más componentes AR/MA y componentes estacionales: (10,1,10)(0,0), (11,1,11)(1,0) y (9,1,8)(0,1).

En todos ellos el correlograma de los residuos muestra ya la firma característica del ruido blanco: No hay picos y los retardos están dentro de las bandas.

5) Validación del modelo.- Cuando ya hemos elegido algunos modelos candidatos toca validarlos y seleccionar aquel que ofrece mayor potencial predictivo. En general se siguen tres criterios:

  • Error residual: Se prefiere aquel modelo con menor error en los residuos.

Donde T es el número de observaciones y K los parámetros del modelo.

Conviene tener en cuenta que el error disminuye con el número de parámetros por lo que nos podemos encontrar modelos aparentemente mejores por tener más parámetros pero con igual o menor capacidad predictiva que otros modelos más simples. Por eso el error no se emplea como único criterio.

  • Criterios de información de Akaike (AIC) y Schwartz (SC) tomando en consideración los parámetros del modelo.

Donde L es el valor de la función de verosimilitud, T el número de observaciones y K el número de parámetros.

Se considera mejor modelo aquel que tiene menores valores en los tres criterios. Si bien algunos autores recomiendan dar prioridad al AIC. En todo caso los valores de estos criterios suelen ser concordantes.

 

Automatización del proceso de búsqueda y validación de modelos ARIMA

Como vemos la construcción manual de modelos ARIMA es laboriosa y seguir los pasos descritos para el desarrollo y validación de muchos modelos puede consumir cantidades ingentes de tiempo. Por ello algunas aplicaciones econométricas MATLAB, EVIEWS, GRETL incluyen algoritmos que permiten automatizar parcial o totalmente el proceso de construcción y validación de modelos. También existen librerías específicas de modelado ARIMA para R y Python.

En las siguientes líneas mostraremos las funcionalidades de la herramienta Automatic ARIMA Forecasting de EVIEWS. El formulario de entrada permite introducir todas las especificaciones y opciones necesarias para construir un modelo. Siguiendo el ejemplo de este artículo vamos a construir paso a paso un modelo para el SPX:

Nuestro punto de partida será un histórico con la serie de cierres diarios entre 1980 y 2019. Lo primero a especificar es el tipo de transformación que se aplicará a la serie. Como hemos visto normalmente se aplica una transformación logarítmica a las primeras diferencias. En todo caso elegimos la opción auto y dejamos que el software elija la mejor transformación, si procede.

El tramo de la serie a emplear para la estimación es un factor clave. Si utilizamos todos los datos posiblemente estaremos incluyendo marcoépocas con volatilidades y tendencias que no tienen nada que ver con la dinámica actual del mercado. Por tanto vamos a realizar la estimación solo desde 2010. También elegimos un tamaño de 15 días para la ventana en la que se va a realizar la predicción. Quizá sea un tamaño excesivo ya que el ARIMA solo es viable para predicciones a corto plazo. En la parte derecha tenemos las especificaciones del modelo:

  • Máximo orden de diferenciación; dejamos el valor de 2 por defecto ya que en la práctica se suelen tomar solo las primeras diferencias.
  • Número de elementos AR y MA. Elegimos un máximo de 6 para ambos.
  • Para la estacionalidad SAR y SMA elegimos como máximo 1 componente estacional.
  • Periodicidad es la ventana especificada para buscar las pautas estacionales. Si utilizamos datos diarios la aplicación pondrá por defecto 260 y para mensuales 12. Sin embargo, si ya conocemos alguna pauta podemos poner otros valores. En este caso pondremos 20 sesiones (que equivalen aproximadamente a 1 mes) para forzar la captura del efecto TOM (turn of the month).
  • En cuanto al número de regresores se necesita al menos uno, así que aparece por defecto c, si quisiéramos podríamos poner otras series distintas o transformadas de la principal.

En cuanto a las opciones, las más significativas son:

  • Los datos de salida a mostrar son: La tabla de valores de la predicción (a la que podemos poner un nombre diferente al que se asigna por defecto), el gráfico comparativo de pronósticos, la tabla de criterios, el gráfico de criterios. El nombre para la ecuación ARIMA es opcional, pero es muy conveniente tenera y guradarla para hacer futuras predicciones. En este caso podremos el nombre “ARIMASP1”. Los modelos que no convergen a una solución óptima los descartamos para no saturar la tabla de resultados, así que dejamos esa casilla en blanco.

Una vez ejecutado el algoritmo, cuyo tiempo de ejecución se dispara con el tamaño de la fuente de datos y la complejidad del modelo, obtenemos estos resultados:

En primer lugar un sumario que nos informa del tipo de diferenciación aplicado a la serie. En este caso DLOG(SP500). Es decir primeras diferencias (D) y transformación logarítmica (LOG). También nos informa del número de modelos ARIMA evaluados y el que obtuvo mejor rendimiento según el criterio de selección elegido, en este caso el AIC.

El segundo elemento importante del informe es un gráfico con el rendimiento fuera de muestra del mejor modelo en la ventana de 15 días seleccionada.

En este segundo gráfico se pueden ver los recorridos del primer modelo y de los otros modelos alternativos que se han evaluado. La línea roja es el modelo seleccionado, que resultó ser un ARIMA (6, 1, 6)(0 , 0)

También podemos visualizar un gráfico con el ranking de los 20 principales modelos alternativos según el criterio de selección:

Otro elemento fundamental es la ecuación del modelo. En la tabla inferior la podemos ver desglosada por componentes AR y MA con sus correspondientes coeficientes, errores estándar, estadístico t y p-valores. También tenemos las principales estadísticas y los valores de las raíces inversas.

Por último, si hemos guardado la ecuación podremos acceder a ella y estimarla mediante una regresión por MCO:

Con la ecuación podremos realizar estimaciones por el método MCO en todo el histórico o en cualquier región que nos interese:

Una vez procesada la ecuación, accedemos al menú “Forecast” y establecemos los parámetros del pronóstico. Básicamente se trata de elegir entre una estimación estática o dinámica para el rango de fechas seleccionado. En la imagen inferior podemos ver la estimación dinámica con sus bandas de desviación correspondientes para el período 2018-2019:

También podemos ver una estimación estática o de tipo backtest para el SP500 en el período indicado:

Consideraciones finales

El modelado ARIMA relativamente sencillo y ampliamente empleado en econometría para realizar pronósticos en series temporales tiene algunas limitaciones que conviene señalar:

  1. Es bueno en series con marcada estacionalidad o con una tendencia bien definida. Sin embargo las series bursátiles no son estacionarias en media ni en varianza, por lo que la precisión del modelado ARIMA no suele ser muy buena.
  2. Así mismo el modelo es incapaz de detectar cambios en la volatilidad o giros bruscos en las tendencias. Esto hace que su potencial predictivo esté muy por debajo del requerido para generar estrategias viables de trading.
  3. El ARIMA es un modelo de memoria corta. Es bueno para predicciones en el corto plazo pero incapaz de ofrecer pronósticos realistas en plazos más largos. En el caso de modelos aplicables a los activos cotizados la ventana óptima, considerando series largas de datos diarios, está según nuestra experiencia entre 2-7 sesiones. Tratar de predecir en ventanas de más de 15 sesiones carece de sentido.
  4. Dos posibles usos para el trading:
  • Estimar el recorrido teórico de un activo en el corto plazo como caso límite de movimientos al alza o a la baja. En otras palabras, puede servir para detectar las sobrerreacciones del mercado.
  • Analizar la predictibilidad de diferentes instrumentos financieros. Si aplicamos un algoritmo de búsqueda a diversos mercados veremos que la calidad de los modelos, medida por diferentes criterios de selección, varía mucho de unos mercados a otros. El análisis de esta información nos dará una idea sobre la naturaleza más predecible o aleatoria de cada mercado.

 

Andrés A. García.

@TradingSys.org, 2019.