相关性的置换检验
比特币的波动性与 S&P 500 的波动性相比如何?
您之前将波动性计算为每日百分比变动,这些结果已存储在数据中的 Pct_Daily_Change_BTC 和 Pct_Daily_Change_SP500 列。您现在要回答的问题是这两个值之间的相关程度。可以通过置换检验来回答。通过在 S&P 500 与 BTC 之间随机打乱数值,您可以观察到随机结果会是什么样子,然后将其与观测到的数值进行比较。
已为您加载包含 S&P 500 与比特币价格的 DataFrame(btc_sp_df),以及将 pandas 导入为 pd、NumPy 导入为 np,并从 SciPy 导入 stats。
本练习是课程的一部分
Python 推断基础
练习说明
- 定义一个
statistic()函数,仅返回两个向量之间的 Pearson 相关系数 R。 - 将
data设为一个元组,内含BTC与SP500的波动性。 - 使用该数据与统计量进行置换检验,重抽样次数为 1000,备择假设为比特币具有更高的波动性。
- 当 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)