Modele kointegracji

Analiza szeregów czasowych w Pythonie

Rob Reider

Adjunct Professor, NYU-Courant Consultant, Quantopian

Czym jest kointegracja?

  • Dwa szeregi, $\large P_t$ i $\large Q_t$, mogą być błądzeniami losowymi
  • Jednak kombinacja liniowa $\large P_t - c \ Q_t$ niekoniecznie jest błądzeniem losowym!
  • Jeśli tak jest
    • $\large P_t - c \ Q_t$ jest prognozowalny
    • $\large P_t$ i $\large Q_t$ są skointegrowane
Analiza szeregów czasowych w Pythonie

Analogia: pies na smyczy

  • $\large P_t = $ Właściciel
  • $\large Q_t = $ Pies
  • Oba szeregi wyglądają jak błądzenie losowe
  • Różnica (odległość) wykazuje powrót do średniej
    • Gdy pies zbytnio zostaje w tyle, jest przyciągany do przodu
    • Gdy pies za bardzo wybiega, jest przyciągany z powrotem
Analiza szeregów czasowych w Pythonie

Przykład: olej opałowy i gaz ziemny

  • Olej opałowy i gaz ziemny wyglądają jak błądzenia losowe...

Analiza szeregów czasowych w Pythonie

Przykład: olej opałowy i gaz ziemny

  • Jednak spread (różnica) wykazuje powrót do średniej

Analiza szeregów czasowych w Pythonie

Jakie szeregi są skointegrowane?

  • Substytuty ekonomiczne
    • Olej opałowy i gaz ziemny
    • Platyna i pallad
    • Kukurydza i pszenica
    • Kukurydza i cukier
    • ...
    • Bitcoin i Ethereum?
  • A co z konkurentami?
    • Coca-Cola i Pepsi?
    • Apple i Blackberry? Nie! Smycz się zerwała i pies uciekł
Analiza szeregów czasowych w Pythonie

Dwa kroki testu kointegracji

  • Regresja $\large P_t$ na $\large Q_t$ i wyznaczenie współczynnika $\large c$
  • Test Augmented Dickey-Fuller na $\large P_t - c \ Q_t$ w celu weryfikacji błądzenia losowego
  • Alternatywnie: funkcja coint w statsmodels łączy oba kroki
from statsmodels.tsa.stattools import coint
coint(P,Q)
Analiza szeregów czasowych w Pythonie

Czas na ćwiczenia!

Analiza szeregów czasowych w Pythonie

Preparing Video For Download...