Uji permutasi untuk korelasi
Bagaimana perbandingan volatilitas Bitcoin dengan volatilitas S&P 500?
Sebelumnya Anda menghitung volatilitas sebagai persentase perubahan harian, yang telah disimpan untuk Anda di kolom Pct_Daily_Change_BTC dan Pct_Daily_Change_SP500 pada data Anda. Pertanyaan yang ingin Anda jawab adalah sejauh mana kedua nilai ini berkorelasi. Salah satu cara menjawabnya adalah melalui uji permutasi. Dengan mengacak nilai secara acak antara S&P 500 dan BTC, Anda dapat melihat seperti apa hasil acak, lalu membandingkannya dengan nilai teramati.
Sebuah DataFrame berisi harga S&P 500 dan Bitcoin (btc_sp_df) telah dimuat untuk Anda, begitu juga paket pandas sebagai pd, NumPy sebagai np, dan stats dari SciPy.
Latihan ini adalah bagian dari kursus
Dasar-dasar Inferensi di Python
Petunjuk latihan
- Definisikan fungsi
statistic()yang hanya mengembalikan nilai Pearson R antara dua vektor. - Setel
datasama dengan tuple yang berisi volatilitasBTCdanSP500. - Lakukan uji permutasi dengan data ini, statistik tersebut, 1000 pengambilan ulang (resamples), dan dengan hipotesis alternatif bahwa volatilitas Bitcoin lebih besar.
- Cetak jika p-value signifikan pada 5%.
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
# 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)