¿Están cointegrados Bitcoin y Ethereum?
La cointegración implica dos pasos: hacer una regresión de una serie temporal sobre la otra para obtener el vector de cointegración, y luego realizar una prueba ADF sobre los residuos de la regresión. En el último ejemplo, no era necesario realizar el primer paso, ya que suponíamos implícitamente que el vector de cointegración era (\ pequeño (1,-1)). En otras palabras, tomamos la diferencia entre las dos series (después de hacer una conversión de unidades). Aquí realizarás ambos pasos.
Retrocederás el valor de una criptodivisa, bitcoin (BTC), sobre otra criptodivisa, ethereum (ETH). Si llamamos al coeficiente de regresión (\ pequeño b), entonces el vector de cointegración es simplemente (\ pequeño (1,-b)). A continuación, realiza la prueba ADF sobre BTC (\small - b \) ETH. Los precios de Bitcoin y Ethereum están precargados en los DataFrames BTC
y ETH
.
Este ejercicio forma parte del curso
Análisis de Series Temporales en Python
Instrucciones de ejercicio
- Importa el módulo statsmodels para la regresión y la función
adfuller
- Añade una constante al DataFrame
ETH
utilizandosm.add_constant()
- Realiza una regresión de
BTC
sobreETH
utilizandosm.OLS(y,x).fit()
, donde y es la variable dependiente y x es la variable independiente, y guarda los resultados enresult
.- La intercepción está en
result.params[0]
y la pendiente enresult.params[1]
- La intercepción está en
- Ejecuta la prueba ADF sobre BTC (\small - b \) ETH
Ejercicio interactivo práctico
Pruebe este ejercicio completando este código de muestra.
# 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])