CommencerCommencer gratuitement

Le Bitcoin et l’Ethereum sont-ils cointégrés ?

La cointégration se fait en deux étapes : faire la régression d’une série temporelle sur l’autre pour obtenir le vecteur de cointégration, puis effectuer un test ADF sur les résidus de la régression. Dans l’exemple précédent, il n’était pas nécessaire d’effectuer la première étape, car nous avons implicitement supposé que le vecteur de cointégration était \(\small (1,-1)\). Autrement dit, nous avons pris la différence entre les deux séries (après conversion d’unités). Ici, vous allez réaliser les deux étapes.

Vous allez régresser la valeur d’une cryptomonnaie, le bitcoin (BTC), sur une autre, l’ethereum (ETH). Si l’on note le coefficient de régression \(\small b\), alors le vecteur de cointégration est simplement \(\small (1,-b)\). Ensuite, effectuez le test ADF sur BTC \(\small - b \) ETH. Les prix du Bitcoin et de l’Ethereum sont préchargés dans les DataFrames BTC et ETH.

Cet exercice fait partie du cours

Analyse des séries temporelles en Python

Afficher le cours

Instructions

  • Importez le module statsmodels pour la régression et la fonction adfuller
  • Ajoutez une constante au DataFrame ETH avec sm.add_constant()
  • Réalisez la régression de BTC sur ETH avec sm.OLS(y,x).fit(), où y est la variable dépendante et x la variable indépendante, et enregistrez le résultat dans result.
    • L’ordonnée à l’origine se trouve dans result.params[0] et la pente dans result.params[1]
  • Exécutez le test ADF sur BTC \(\small - b \) ETH

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

# 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])
Modifier et exécuter le code