Le bitcoin et l'ether sont-ils cointégrés?
La cointégration comporte deux étapes : effectuer une régression d'une série temporelle sur l'autre pour obtenir le vecteur de cointégration, puis réaliser un test ADF sur les résidus de la régression. Dans le dernier exemple, il n'était pas nécessaire d'effectuer la première étape, puisque 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 ferez les deux étapes.
Vous allez régresser la valeur d'une cryptomonnaie, le bitcoin (BTC), sur une autre cryptomonnaie, l'ether (ETH). Si l'on appelle le coefficient de régression \(\small b\), alors le vecteur de cointégration est simplement \(\small (1,-b)\). Ensuite, exécutez le test ADF sur BTC \(\small - b \) ETH. Les prix du bitcoin et de l'ether sont préchargés dans les DataFrames BTC et ETH.
Cette activité fait partie du cours
Analyse des séries chronologiques en Python
Instructions de l’exercice
- Importez le module statsmodels pour la régression et la fonction
adfuller. - Ajoutez une constante au DataFrame
ETHà l'aide desm.add_constant(). - Réalisez la régression de
BTCsurETHavecsm.OLS(y,x).fit(), où y est la variable dépendante et x la variable indépendante, puis enregistrez les résultats dansresult.- L'ordonnée à l'origine est dans
result.params[0]et la pente dansresult.params[1].
- L'ordonnée à l'origine est dans
- Lancez le test ADF sur BTC \(\small - b \) ETH
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# 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])