Czy Bitcoin i Ethereum są skointegrowane?
Kointegracja składa się z dwóch kroków: regresji jednego szeregu czasowego na drugim w celu wyznaczenia wektora kointegracji, a następnie wykonania testu ADF na resztach regresji. W poprzednim przykładzie nie było potrzeby wykonywania pierwszego kroku, ponieważ niejawnie założono, że wektor kointegracji wynosi \(\small (1,-1)\). Innymi słowy, obliczono różnicę między dwoma szeregami (po przeliczeniu jednostek). Tutaj wykonasz oba kroki.
Przeprowadzisz regresję wartości jednej kryptowaluty – bitcoina (BTC) – na drugiej – ethereum (ETH). Jeśli współczynnik regresji oznaczymy jako \(\small b\), to wektor kointegracji wynosi \(\small (1,-b)\). Następnie wykonaj test ADF na BTC \(\small - b \) ETH. Ceny bitcoina i ethereum są wstępnie załadowane do DataFrames BTC i ETH.
To ćwiczenie jest częścią kursu
Analiza szeregów czasowych w Pythonie
Instrukcje do ćwiczenia
- Zaimportuj moduł statsmodels do regresji oraz funkcję
adfuller - Dodaj stałą do DataFrame
ETHza pomocąsm.add_constant() - Przeprowadź regresję
BTCnaETHza pomocąsm.OLS(y,x).fit(), gdzie y to zmienna zależna, a x to zmienna niezależna, i zapisz wyniki wresult.- Wyraz wolny znajdziesz w
result.params[0], a współczynnik kierunkowy wresult.params[1]
- Wyraz wolny znajdziesz w
- Wykonaj test ADF na BTC \(\small - b \) ETH
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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])