Kom igångKom igång gratis

Permutationstest för korrelationer

Hur förhåller sig Bitcoins volatilitet till S&P 500:s volatilitet?

Du beräknade tidigare volatilitet som den procentuella dagliga förändringen, vilket har lagrats i kolumnerna Pct_Daily_Change_BTC och Pct_Daily_Change_SP500 i dina data. Frågan du vill besvara är i vilken utsträckning dessa två värden korrelerar. Ett sätt att göra det är genom ett permutationstest. Genom att slumpmässigt blanda värden mellan S&P 500 och BTC kan du se hur ett slumpmässigt utfall skulle se ut och sedan jämföra det med de observerade värdena.

En DataFrame med S&P 500- och Bitcoin-priser (btc_sp_df) har laddats in åt dig, liksom paketen pandas som pd, NumPy som np och stats från SciPy.

Den här övningen är en del av kursen

Grunderna i inferens med Python

Visa kurs

Övningsinstruktioner

  • Definiera en funktion statistic() som enbart returnerar Pearsons R-värde mellan två vektorer.
  • Sätt data till en tupel som innehåller volatiliteten för BTC och SP500.
  • Genomför ett permutationstest med dessa data, statistiken, 1 000 omsamplingar och med alternativhypotesen att Bitcoin har högre volatilitet.
  • Skriv ut om p-värdet är signifikant på 5 %.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

# 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)
Redigera och kör kod