Test di permutazione per le correlazioni
Come si confronta la volatilità di Bitcoin con quella dell’S&P 500?
In precedenza hai calcolato la volatilità come variazione percentuale giornaliera, che è stata memorizzata per te nelle colonne Pct_Daily_Change_BTC e Pct_Daily_Change_SP500 nei tuoi dati. La domanda a cui vuoi rispondere è in che misura questi due valori sono correlati. Un modo per rispondere è tramite un test di permutazione. Mescolando casualmente i valori tra S&P 500 e BTC puoi vedere quale sarebbe un esito casuale e poi confrontarlo con i valori osservati.
Per te è stato caricato un DataFrame con i prezzi di S&P 500 e Bitcoin (btc_sp_df), così come i pacchetti pandas come pd, NumPy come np e stats da SciPy.
Questo esercizio fa parte del corso
Fondamenti dell'inferenza in Python
Istruzioni dell'esercizio
- Definisci una funzione
statistic()che restituisca solo il valore di Pearson R tra due vettori. - Imposta
datauguale a una tupla che contenga la volatilità diBTCeSP500. - Esegui un test di permutazione con questi dati, la statistica, 1000 ri-campionamenti e un’ipotesi alternativa di maggiore volatilità per Bitcoin.
- Stampa se il p-value è significativo al 5%.
esercizio interattivo pratico
Prova questo esercizio completando questo codice di esempio.
# Define a function which returns the Pearson R value
def statistic(x, y):
____
# Define the data as the percent daily change from each asset
data = ____
# Compute a permutation test for the percent daily change of each asset
res = ____(____, ____,
n_resamples=____,
vectorized=____,
alternative='____')
# Print if the p-value is significant at 5%
print(res.pvalue < 0.05)