Kointegrationsmodeller

Tidsserieanalys i Python

Rob Reider

Adjunct Professor, NYU-Courant Consultant, Quantopian

Vad är kointegration?

  • Två serier, $\large P_t$ och $\large Q_t$, kan vara slumpvandringar
  • Men linjärkombinationen $\large P_t - c \ Q_t$ behöver inte vara en slumpvandring!
  • Om det stämmer
    • är $\large P_t - c \ Q_t$ prognostiserbar
    • sägs $\large P_t$ och $\large Q_t$ vara kointegrerade
Tidsserieanalys i Python

Analogi: Hund i koppel

  • $\large P_t = $ Ägaren
  • $\large Q_t = $ Hunden
  • Båda serierna liknar slumpvandringar
  • Skillnaden, eller avståndet mellan dem, verkar återvända mot medelvärdet
    • Om hunden hamnar för långt efter dras den framåt
    • Om hunden springer för långt före dras den tillbaka
Tidsserieanalys i Python

Exempel: Eldningsolja och naturgas

  • Eldningsolja och naturgas liknar båda slumpvandringar...

Tidsserieanalys i Python

Exempel: Eldningsolja och naturgas

  • Men spreaden (skillnaden) återvänder mot medelvärdet

Tidsserieanalys i Python

Vilka typer av serier är kointegrerade?

  • Ekonomiska substitut
    • Eldningsolja och naturgas
    • Platina och palladium
    • Majs och vete
    • Majs och socker
    • ...
    • Bitcoin och Ethereum?
  • Vad gäller konkurrenter?
    • Coke och Pepsi?
    • Apple och Blackberry? Nej! Kopplet brast och hunden sprang iväg
Tidsserieanalys i Python

Två steg för att testa kointegration

  • Regressor $\large P_t$ på $\large Q_t$ och få lutningen $\large c$
  • Kör Augmented Dickey-Fuller-testet på $\large P_t - c \ Q_t$ för att testa om det är en slumpvandring
  • Alternativt kan du använda funktionen coint i statsmodels, som kombinerar båda stegen
from statsmodels.tsa.stattools import coint
coint(P,Q)
Tidsserieanalys i Python

Nu kör vi en övning!

Tidsserieanalys i Python

Preparing Video For Download...