Перестановочные тесты для корреляций
Как соотносится волатильность Bitcoin с волатильностью индекса S&P 500?
Ранее вы вычислили волатильность как процентное дневное изменение — эти значения сохранены в столбцах Pct_Daily_Change_BTC и Pct_Daily_Change_SP500 вашего набора данных. Задача состоит в том, чтобы оценить степень корреляции между этими двумя величинами. Один из способов сделать это — перестановочный тест. Случайно перемешивая значения между S&P 500 и BTC, можно смоделировать случайный исход и сравнить его с наблюдаемыми данными.
Для вас уже загружен DataFrame с ценами 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)