Teste de permutare pentru corelații
Cum se compară volatilitatea Bitcoin cu cea a indicelui S&P 500?
Ai calculat anterior volatilitatea ca variație procentuală zilnică, iar valorile au fost stocate în coloanele Pct_Daily_Change_BTC și Pct_Daily_Change_SP500 din setul tău de date. Întrebarea la care vrei să răspunzi este în ce măsură aceste două valori corelează. O modalitate de a răspunde este prin intermediul unui test de permutare. Amestecând aleatoriu valorile între S&P 500 și BTC, poți observa cum ar arăta un rezultat întâmplător și îl poți compara cu valorile observate.
Un DataFrame cu prețurile S&P 500 și Bitcoin (btc_sp_df) a fost deja încărcat pentru tine, împreună cu pachetele pandas ca pd, NumPy ca np și stats din SciPy.
Acest exercițiu face parte din cursul
Bazele inferenței în Python
Instrucțiuni pentru exercițiu
- Definește o funcție
statistic()care returnează doar valoarea Pearson R dintre doi vectori. - Setează
dataca un tuplu care conține volatilitateaBTCși aSP500. - Realizează un test de permutare folosind aceste date, statistica definită, 1.000 de reanticipări și cu o ipoteză alternativă de volatilitate mai mare pentru Bitcoin.
- Afișează dacă valoarea p este semnificativă la pragul de 5%.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# 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)