Моделі коінтеграції

Аналіз часових рядів у Python

Rob Reider

Adjunct Professor, NYU-Courant Consultant, Quantopian

Що таке коінтеграція?

  • Дві серії $\large P_t$ і $\large Q_t$ можуть бути випадковими блуканнями
  • Але лінійна комбінація $\large P_t - c \ Q_t$ може не бути випадковим блуканням!
  • Якщо це так,
    • $\large P_t - c \ Q_t$ можна прогнозувати
    • Кажуть, що $\large P_t$ і $\large Q_t$ є коінтегрованими
Аналіз часових рядів у Python

Аналогія: пес на повідку

  • $\large P_t = $ Власник
  • $\large Q_t = $ Пес
  • Обидві серії виглядають як випадкові блукання
  • Різниця, або відстань між ними, має зворот до середнього
    • Якщо пес надто відстає, його тягне вперед
    • Якщо надто виривається вперед, його тягне назад
Аналіз часових рядів у Python

Приклад: Heating Oil і Natural Gas

  • Heating Oil і Natural Gas обидва виглядають як випадкові блукання...

Аналіз часових рядів у Python

Приклад: Heating Oil і Natural Gas

  • Але спред (різниця) має зворот до середнього

Аналіз часових рядів у Python

Які типи серій коінтегровані?

  • Економічні замінники
    • Heating Oil і Natural Gas
    • Платина і паладій
    • Кукурудза і пшениця
    • Кукурудза і цукор
    • ...
    • Bitcoin і Ethereum?
  • А конкуренти?
    • Coke і Pepsi?
    • Apple і Blackberry? Ні! Повідок урвався, і пес утік
Аналіз часових рядів у Python

Два кроки для перевірки коінтеграції

  • Прорегресуйте $\large P_t$ на $\large Q_t$ і отримайте кут $\large c$
  • Запустіть розширений тест Дікі — Фуллера на $\large P_t - c \ Q_t$, щоб перевірити випадкове блукання
  • Або скористайтесь функцією coint у statsmodels, що поєднує обидва кроки
from statsmodels.tsa.stattools import coint
coint(P,Q)
Аналіз часових рядів у Python

Давайте потренуємось!

Аналіз часових рядів у Python

Preparing Video For Download...