LoslegenKostenlos loslegen

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

Grundlagen der Inferenz in Python

Kurs anzeigen

Anleitung zur Übung

  • 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 Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

# 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