Aan de slagGa gratis aan de slag

Permutatietests voor correlaties

Hoe verhoudt de volatiliteit van Bitcoin zich tot die van de S&P 500?

Je hebt volatiliteit eerder berekend als de procentuele dagelijkse verandering. Die staat voor je klaar in de kolommen Pct_Daily_Change_BTC en Pct_Daily_Change_SP500 in je data. De vraag die je wilt beantwoorden is in welke mate deze twee waarden correleren. Eén manier om dit te onderzoeken is met een permutatietest. Door waarden willekeurig te husselen tussen de S&P 500 en BTC kun je zien hoe een willekeurige uitkomst eruitziet, en die vervolgens vergelijken met de geobserveerde waarden.

Een DataFrame met S&P 500- en Bitcoin-prijzen (btc_sp_df) is voor je geladen, net als de pakketten pandas als pd, NumPy als np, en stats uit SciPy.

Deze oefening maakt deel uit van de cursus

Basis van inferentie in Python

Cursus bekijken

Oefeninstructies

  • Definieer een functie statistic() die alleen de Pearson R-waarde tussen twee vectoren teruggeeft.
  • Stel je data gelijk aan een tuple met de volatiliteit van BTC en SP500.
  • Voer een permutatietest uit met deze data, de statistic, 1000 resamples, en met een alternatieve hypothese van grotere volatiliteit bij Bitcoin.
  • Print of de p-waarde significant is op 5%.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

# 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 bewerken en uitvoeren