Modelos de Cointegração

Análise de séries temporais em Python

Rob Reider

Adjunct Professor, NYU-Courant Consultant, Quantopian

O que é Cointegração?

  • Duas séries, $\large P_t$ e $\large Q_t$, podem ser random walks
  • Mas a combinação linear $\large P_t - c \ Q_t$ pode não ser um random walk!
  • Se isso for verdade
    • $\large P_t - c \ Q_t$ é previsível
    • Diz-se que $\large P_t$ e $\large Q_t$ são co-integradas
Análise de séries temporais em Python

Analogia: Cachorro na Coleira

  • $\large P_t = $ Dono
  • $\large Q_t = $ Cachorro
  • As duas séries parecem um random walk
  • A diferença, ou distância entre elas, parece reverter à média
    • Se o cachorro fica muito para trás, é puxado para frente
    • Se o cachorro vai muito à frente, é puxado de volta
Análise de séries temporais em Python

Exemplo: Heating Oil e Natural Gas

  • Heating Oil e Natural Gas ambos parecem random walks...

Análise de séries temporais em Python

Exemplo: Heating Oil e Natural Gas

  • Mas o spread (diferença) reverte à média

Análise de séries temporais em Python

Que tipos de séries são co-integradas?

  • Substitutos econômicos
    • Heating Oil e Natural Gas
    • Platinum e Palladium
    • Corn e Wheat
    • Corn e Sugar
    • ...
    • Bitcoin e Ethereum?
  • E concorrentes?
    • Coke e Pepsi?
    • Apple e Blackberry? Não! A coleira arrebentou e o cachorro fugiu
Análise de séries temporais em Python

Dois passos para testar cointegração

  • Regresse $\large P_t$ em $\large Q_t$ e obtenha a inclinação $\large c$
  • Rode o teste de Augmented Dickey-Fuller em $\large P_t - c \ Q_t$ para testar random walk
  • Alternativamente, use a função coint do statsmodels, que combina as duas etapas
from statsmodels.tsa.stattools import coint
coint(P,Q)
Análise de séries temporais em Python

Vamos praticar!

Análise de séries temporais em Python

Preparing Video For Download...