Permutační testy pro korelace
Jak se liší volatilita Bitcoinu od volatility indexu S&P 500?
Volatilitu jsi dříve vypočítal/a jako procentuální denní změnu, která je uložena ve sloupcích Pct_Daily_Change_BTC a Pct_Daily_Change_SP500 v tvých datech. Cílem je zjistit, do jaké míry spolu tyto dvě hodnoty korelují. Jedním ze způsobů, jak to ověřit, je permutační test. Náhodným přeskupením hodnot mezi S&P 500 a BTC zjistíš, jak by vypadal náhodný výsledek, a porovnáš ho s pozorovanými hodnotami.
DataFrame s cenami S&P 500 a Bitcoinu (btc_sp_df) je již načtený, stejně jako balíčky pandas jako pd, NumPy jako np a stats ze SciPy.
Toto cvičení je součástí kurzu
Základy statistické inference v Pythonu
Pokyny k cvičení
- Definuj funkci
statistic(), která vrací pouze hodnotu Pearsonova R mezi dvěma vektory. - Nastav
datajako n-tici obsahující volatilituBTCaSP500. - Proveď permutační test s těmito daty, statistikou, 1 000 přesamplováními a alternativní hypotézou o vyšší volatilitě Bitcoinu.
- Vypiš, zda je p-hodnota významná na hladině 5 %.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# 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)