Jsou Bitcoin a Ethereum kointegrované?
Kointegrace se skládá ze dvou kroků: nejprve provedeme regresi jedné časové řady na druhé, abychom získali kointegrační vektor, a poté spustíme ADF test na reziduích regrese. V předchozím příkladu jsme první krok přeskočili, protože jsme implicitně předpokládali, že kointegrační vektor je \(\small (1,-1)\). Jinými slovy, vzali jsme rozdíl mezi oběma řadami (po převodu jednotek). Tentokrát provedeš oba kroky.
Provedeme regresi hodnoty jedné kryptoměny, bitcoinu (BTC), na druhé kryptoměně, ethereu (ETH). Označme regresní koeficient \(\small b\) – kointegrační vektor je pak jednoduše \(\small (1,-b)\). Poté spusť ADF test na BTC \(\small - b \) ETH. Ceny bitcoinu a ethereu jsou předem načteny v DataFramech BTC a ETH.
Toto cvičení je součástí kurzu
Analýza časových řad v Pythonu
Pokyny k cvičení
- Importuj modul statsmodels pro regresi a funkci
adfuller - Přidej konstantu do DataFramu
ETHpomocísm.add_constant() - Proveď regresi
BTCnaETHpomocísm.OLS(y,x).fit(), kde y je závislá proměnná a x je nezávislá proměnná, a výsledek ulož doresult.- Intercept najdeš v
result.params[0]a směrnici vresult.params[1]
- Intercept najdeš v
- Spusť ADF test na BTC \(\small - b \) ETH
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# 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])