Bitcoin ed Ethereum sono cointegrati?
La cointegrazione richiede due passaggi: eseguire una regressione di una serie temporale sull’altra per ottenere il vettore di cointegrazione, e poi eseguire un test ADF sui residui della regressione. Nell’ultimo esempio, non c’era bisogno del primo passaggio perché abbiamo implicitamente assunto che il vettore di cointegrazione fosse \(\small (1,-1)\). In altre parole, abbiamo fatto la differenza tra le due serie (dopo una conversione di unità). Qui farai entrambi i passaggi.
Regredirai il valore di una criptovaluta, bitcoin (BTC), su un’altra criptovaluta, ethereum (ETH). Se chiamiamo \(\small b\) il coefficiente di regressione, allora il vettore di cointegrazione è semplicemente \(\small (1,-b)\). Poi esegui il test ADF su BTC \(\small - b \) ETH. I prezzi di Bitcoin ed Ethereum sono già caricati nei DataFrame BTC ed ETH.
Questo esercizio fa parte del corso
Analisi delle serie temporali in Python
Istruzioni dell'esercizio
- Importa il modulo statsmodels per la regressione e la funzione
adfuller - Aggiungi una costante al DataFrame
ETHusandosm.add_constant() - Regressa
BTCsuETHusandosm.OLS(y,x).fit(), dove y è la variabile dipendente e x è la variabile indipendente, e salva i risultati inresult.- L’intercetta è in
result.params[0]e la pendenza inresult.params[1]
- L’intercetta è in
- Esegui il test ADF su BTC \(\small - b \) ETH
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# 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])