Quant500 Academy

1. De la tendencia lineal a los modelos autorregresivos AR(p)

Nivel 9: Series Temporales - ARIMA y GARCH

En el nivel anterior aprendiste a comprobar si una serie es estacionaria (gráfico, estadísticos móviles, test ADF) y a leer la ACF y la PACF. Damos por sabido todo eso: aquí empezamos a modelar y predecir.

El modelo más ingenuo es el modelo lineal, también llamado modelo de tendencia. Describe una serie que se puede dibujar con una línea recta: el valor en el instante t es un nivel inicial más una pendiente multiplicada por el tiempo, más ruido. Sin fórmulas matematicas, en Python plano:

import numpy as np

# x[t] = a0 + a1 * t + w[t]
# a0 -> nivel inicial, a1 -> incremento constante por paso, w[t] -> ruido blanco

np.random.seed(7)
w = np.random.randn(250)
x = np.empty_like(w)

a0 = 100.0   # la accion empieza en 100 dolares
a1 = 0.5     # y sube 50 centimos en cada paso temporal

for t in range(len(w)):
    x[t] = a0 + a1 * t + w[t]

Es el equivalente estadístico de una empresa cuyas ventas crecen exactamente la misma cantidad cada trimestre. Si diferenciamos la serie una vez, la tendencia desaparece:

dx = np.diff(x)   # elimina la tendencia deterministica

Al inspeccionar los residuos de este modelo aparece el hallazgo importante del profesor: la distribución es aproximadamente normal, pero los residuos están correlacionados. En la PACF hay un valor significativo en el retardo 1. Antes de usar el modelo para predecir habría que absorber esa autocorrelación. Y el significado de una PACF significativa en el retardo 1 es concreto: un modelo autorregresivo puede ser apropiado.

Ahí está el salto conceptual del nivel. En finanzas, un modelo de tendencia determinística es casi siempre una mala idea: supone que el precio futuro está determinado por el calendario, no por lo que ha pasado. Extrapolar una recta ajustada sobre precios históricos produce predicciones que crecen sin límite y que no incorporan ninguna información nueva. Lo que sí tiene sentido es dejar que el propio pasado de la serie explique el futuro.

Eso es un modelo autorregresivo de orden p, o AR(p). Es una regresión lineal en la que las variables explicativas son los propios valores retardados de la serie:

# AR(p), escrito como codigo y no como formula:
# x[t] = alpha_1*x[t-1] + alpha_2*x[t-2] + ... + alpha_p*x[t-p] + w[t]
#
# p         -> numero de terminos retardados que entran en el modelo
# alpha_i   -> coeficiente del retardo i
# w[t]      -> ruido blanco (media cero, varianza constante)

El AR(p) es una extensión directa del paseo aleatorio. De hecho, un AR(1) con alpha_1 igual a 1 es exactamente un paseo aleatorio, y por tanto no es estacionario. Esta es una de las propiedades más importantes del modelo: el AR(p) no siempre es estacionario; su estacionariedad depende de los valores de los parámetros, no de la forma del modelo. Para un AR(1) la condición es que el valor absoluto de alpha_1 sea menor que 1. Si alpha_1 vale 0.98, la serie es técnicamente estacionaria pero revierte a la media tan despacio que en una muestra corta parecerá un paseo aleatorio.

En la práctica, esto significa que ajustar un AR sobre precios casi nunca funciona: obtendrás un alpha cercano a 1 que no aporta nada. Se ajusta sobre retornos logarítmicos, que ya son prácticamente estacionarios.

Para ampliar esta lección

El resto de Quant500

Lo que estás aprendiendo, aplicado al índice todos los días:

La cartera del modelo, cada semana en tu correo

Cada sábado, su semana en un minuto: cómo fue, lo mejor y lo peor, y qué directivos compraron con su dinero. Y el día que el modelo se rehace, qué entra y qué sale. Es una simulación, no un consejo. Como mucho un correo a la semana, sin publicidad y sin cuenta; te das de baja con un clic. Lo hace una persona: Pol Gracia.

Cartera modelo con resultados simulados, no una recomendación personalizada. Tu correo se usa solo para esto: privacidad.

Detrás de la Academia y del resto de Quant500 hay una sola persona: Pol Gracia Serrahima.