¿Están Bitcoin y Ethereum cointegrados?
La cointegración implica dos pasos: ajustar una serie temporal sobre la otra para obtener el vector de cointegración y, después, realizar una prueba ADF sobre los residuos de la regresión. En el ejemplo anterior, no fue necesario hacer el primer paso porque asumimos implícitamente que el vector de cointegración era \(\small (1,-1)\). Es decir, tomamos la diferencia entre las dos series (tras convertir las unidades). Aquí, harás ambos pasos.
Vas a regredir el valor de una criptomoneda, bitcoin (BTC), sobre otra, ethereum (ETH). Si llamamos \(\small b\) al coeficiente de la regresión, entonces el vector de cointegración es simplemente \(\small (1,-b)\). Luego 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 del ejercicio
- Importa el módulo statsmodels para la regresión y la función
adfuller. - Añade una constante al DataFrame
ETHusandosm.add_constant(). - Regresa
BTCsobreETHconsm.OLS(y,x).fit(), donde y es la variable dependiente y x la variable independiente, y guarda los resultados enresult.- La ordenada al origen está en
result.params[0]y la pendiente enresult.params[1].
- La ordenada al origen está en
- Ejecuta la prueba ADF sobre BTC \(\small - b \) ETH.
ejercicio interactivo práctico
Prueba este ejercicio completando este código de ejemplo.
# 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])