¿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

Ver curso

Instrucciones de ejercicio

  • Importa el módulo statsmodels para la regresión y la función adfuller
  • Añade una constante al DataFrame ETH utilizando sm.add_constant()
  • Realiza una regresión de BTC sobre ETH utilizando sm.OLS(y,x).fit(), donde y es la variable dependiente y x es la variable independiente, y guarda los resultados en result.
    • La intercepción está en result.params[0] y la pendiente en result.params[1]
  • 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])