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
Oefeninstructies
- Definieer een functie
statistic()die alleen de Pearson R-waarde tussen twee vectoren teruggeeft. - Stel je
datagelijk aan een tuple met de volatiliteit vanBTCenSP500. - 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)