IniziaInizia gratis

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

Visualizza il corso

Istruzioni dell'esercizio

  • Importa il modulo statsmodels per la regressione e la funzione adfuller
  • Aggiungi una costante al DataFrame ETH usando sm.add_constant()
  • Regressa BTC su ETH usando sm.OLS(y,x).fit(), dove y è la variabile dipendente e x è la variabile indipendente, e salva i risultati in result.
    • L’intercetta è in result.params[0] e la pendenza in result.params[1]
  • 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])
Modifica ed esegui il codice