相關性的置換檢定
比特幣的波動性與 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設為一個 tuple,內含BTC與SP500的波動性。 - 使用此 data、statistic、1000 次重抽樣,並設定備擇假設為比特幣的相關性(方向)較大,來進行置換檢定。
- 列印當 p-value 在 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)