Bitcoin și Ethereum sunt cointegrate?
Cointegrarea presupune doi pași: regresia unei serii de timp față de cealaltă pentru a obține vectorul de cointegrare, urmată de un test ADF pe reziduurile regresiei. În exemplul anterior, primul pas nu a fost necesar, deoarece am presupus implicit că vectorul de cointegrare este \(\small (1,-1)\). Cu alte cuvinte, am calculat diferența dintre cele două serii (după o conversie de unități). Aici vei parcurge ambii pași.
Vei regresa valoarea unei criptomonede, bitcoin (BTC), față de altă criptomonedă, ethereum (ETH). Dacă notăm coeficientul de regresie cu \(\small b\), atunci vectorul de cointegrare este pur și simplu \(\small (1,-b)\). Apoi aplică testul ADF pe BTC \(\small - b \) ETH. Prețurile Bitcoin și Ethereum sunt preîncărcate în DataFrame-urile BTC și ETH.
Acest exercițiu face parte din cursul
Analiza seriilor de timp în Python
Instrucțiuni pentru exercițiu
- Importă modulul statsmodels pentru regresie și funcția
adfuller - Adaugă o constantă la DataFrame-ul
ETHfolosindsm.add_constant() - Regresează
BTCfață deETHfolosindsm.OLS(y,x).fit(), unde y este variabila dependentă și x este variabila independentă, și salvează rezultatele înresult.- Interceptul se află în
result.params[0], iar panta înresult.params[1]
- Interceptul se află în
- Rulează testul ADF pe BTC \(\small - b \) ETH
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# 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])