ПочатиПочніть безкоштовно

Чи є біткоїн і ефір коінтегрованими?

Коїнтеграція складається з двох кроків: регресувати один часовий ряд на інший, щоб отримати вектор коінтеграції, а потім виконати ADF-тест на залишках цієї регресії. У попередньому прикладі перший крок не був потрібен, адже ми неявно припустили, що вектор коінтеграції — \(\small (1,-1)\). Тобто ми брали різницю між двома рядами (після узгодження одиниць виміру). Тут ви виконаєте обидва кроки.

Ви зрегресуєте вартість однієї криптовалюти — біткоїна (BTC) — на іншу криптовалюту — ефір (ETH). Якщо позначити коефіцієнт регресії як \(\small b\), то вектор коінтеграції дорівнює просто \(\small (1,-b)\). Далі виконайте ADF-тест для BTC \(\small - b \) ETH. Дані про ціни біткоїна та ефіру вже завантажені в датафрейми BTC і ETH.

Ця вправа є частиною курсу

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

Переглянути курс

Інструкції до вправи

  • Імпортуйте модуль statsmodels для регресії та функцію adfuller.
  • Додайте константу до датафрейму ETH за допомогою sm.add_constant().
  • Зрегресуйте BTC на ETH, використовуючи sm.OLS(y,x).fit(), де y — залежна змінна, а x — незалежна змінна, і збережіть результати в result.
    • Вільний член міститься в result.params[0], а кутовий коефіцієнт — у result.params[1].
  • Запустіть ADF-тест для BTC \(\small - b \) ETH.

Інтерактивна практична вправа

Спробуйте виконати цю вправу, доповнивши цей зразок коду.

# Import the statsmodels module for regression and the adfuller function
import statsmodels.api as sm
from statsmodels.tsa.stattools import adfuller

# Regress BTC on ETH
ETH = sm.___(ETH)
result = sm.OLS(___,___).fit()

# Compute ADF
b = result.params[1]
adf_stats = adfuller(___['Price'] - b*___['Price'])
print("The p-value for the ADF test is ", adf_stats[1])
Редагувати та запускати код