LoslegenKostenlos starten

Permutationstests für Korrelationen

Wie verhält sich die Volatilität von Bitcoin im Vergleich zur Volatilität des S&P 500?

Zuvor hast du die Volatilität als prozentuale tägliche Veränderung berechnet; diese ist in den Spalten Pct_Daily_Change_BTC und Pct_Daily_Change_SP500 deiner Daten gespeichert. Die Frage ist, in welchem Ausmaß diese beiden Werte korrelieren. Eine Möglichkeit, das zu beantworten, ist ein Permutationstest. Durch zufälliges Vertauschen von Werten zwischen dem S&P 500 und BTC kannst du sehen, wie ein zufälliges Ergebnis aussehen würde, und dieses dann mit den beobachteten Werten vergleichen.

Ein DataFrame mit S&P-500- und Bitcoin-Preisen (btc_sp_df) ist bereits geladen, ebenso die Pakete pandas als pd, NumPy als np und stats aus SciPy.

Diese Übung ist Teil des Kurses

<Kurs>Grundlagen der Inferenz in Python</Kurs>
Kurs ansehen

Übungsanweisungen

  • Definiere eine Funktion statistic(), die nur den Pearson-R-Wert zwischen zwei Vektoren zurückgibt.
  • Setze data auf ein Tupel, das die Volatilität von BTC und SP500 enthält.
  • Führe einen Permutationstest mit diesen Daten, der Kennzahl, 1000 Resamples und der alternativen Hypothese „größere Volatilität bei Bitcoin“ durch.
  • Gib aus, ob der p-Wert auf dem 5-%-Niveau signifikant ist.

Interaktive praktische Übung

Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.

# 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)
Code bearbeiten und ausführen