Modelos de cointegración

Análisis de series temporales en Python

Rob Reider

Adjunct Professor, NYU-Courant Consultant, Quantopian

¿Qué es la cointegración?

  • Dos series, $\large P_t$ y $\large Q_t$, pueden ser paseos aleatorios
  • Pero la combinación lineal $\large P_t - c \ Q_t$ puede no ser un paseo aleatorio
  • Si eso ocurre
    • $\large P_t - c \ Q_t$ es predecible
    • Se dice que $\large P_t$ y $\large Q_t$ están cointegradas
Análisis de series temporales en Python

Analogía: perro con correa

  • $\large P_t = $ Persona con la correa
  • $\large Q_t = $ Perro
  • Ambas series parecen un paseo aleatorio
  • La diferencia, o distancia entre ellas, parece revertir a la media
    • Si el perro se queda muy atrás, la correa lo tira hacia delante
    • Si el perro se adelanta mucho, la correa lo frena
Análisis de series temporales en Python

Ejemplo: Heating Oil y Natural Gas

  • Heating Oil y Natural Gas parecen paseos aleatorios...

Análisis de series temporales en Python

Ejemplo: Heating Oil y Natural Gas

  • Pero el spread (diferencia) revierte a la media

Análisis de series temporales en Python

¿Qué tipos de series están cointegradas?

  • Sustitutos económicos
    • Heating Oil y Natural Gas
    • Platino y paladio
    • Maíz y trigo
    • Maíz y azúcar
    • ...
    • ¿Bitcoin y Ethereum?
  • ¿Y competidores?
    • ¿Coca-Cola y Pepsi?
    • ¿Apple y Blackberry? ¡No! Se rompió la correa y el perro se escapó
Análisis de series temporales en Python

Dos pasos para probar la cointegración

  • Regresa $\large P_t$ sobre $\large Q_t$ y obtiene la pendiente $\large c$
  • Ejecuta la prueba de Dickey-Fuller aumentada sobre $\large P_t - c \ Q_t$ para comprobar si es un paseo aleatorio
  • O usa la función coint de statsmodels, que combina ambos pasos
from statsmodels.tsa.stattools import coint
coint(P,Q)
Análisis de series temporales en Python

¡Vamos a practicar!

Análisis de series temporales en Python

Preparing Video For Download...