Пермутаційні тести для кореляцій
Як порівняти волатильність Bitcoin із волатильністю S&P 500?
Раніше ви обчислювали волатильність як відсоткову денну зміну. Її вже збережено для вас у стовпцях Pct_Daily_Change_BTC і Pct_Daily_Change_SP500 у ваших даних. Питання, на яке ви хочете відповісти, — наскільки ці дві величини корелюють. Один зі способів відповісти — пермутаційний тест. Випадково перемішуючи значення між S&P 500 і BTC, ви можете побачити, яким був би випадковий результат, а потім порівняти його з фактичним спостереженим значенням.
Датафрейм із цінами S&P 500 та Bitcoin (btc_sp_df) уже завантажено, так само як і пакети pandas як pd, NumPy як np та stats зі SciPy.
Ця вправа є частиною курсу
Основи інференції в Python
Інструкції до вправи
- Визначте функцію
statistic(), яка повертає лише значення коефіцієнта Пірсона R між двома векторами. - Присвойте
dataкортеж, що містить волатильністьBTCіSP500. - Виконайте пермутаційний тест з цими даними, вказаною статистикою, 1000 перевибірок і з альтернативною гіпотезою про більшу волатильність Bitcoin.
- Виведіть, чи p-значення є значущим на рівні 5%.
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
# 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)