Korelasyonlar için permütasyon testleri
Bitcoin'in oynaklığı S&P 500'ün oynaklığıyla nasıl karşılaştırılır?
Daha önce oynaklığı yüzde günlük değişim olarak hesaplamıştın; bu değerler verinde Pct_Daily_Change_BTC ve Pct_Daily_Change_SP500 sütunlarında saklandı. Yanıtlamak istediğin soru, bu iki değerin ne ölçüde korele olduğudur. Bunu yanıtlamanın bir yolu permütasyon testidir. S&P 500 ile BTC arasındaki değerleri rastgele karıştırarak rastgele bir sonucun nasıl görüneceğini görebilir ve bunu gözlenen değerlerle karşılaştırabilirsin.
S&P 500 ve Bitcoin fiyatlarının bulunduğu bir DataFrame (btc_sp_df) senin için yüklendi; ayrıca paketler olarak pandas pd, NumPy np ve SciPy'den stats hazır.
Bu egzersiz
Python'da Çıkarımın Temelleri
kursunun bir parçasıdırEgzersiz talimatları
- İki vektör arasındaki Pearson R değerini tek başına döndüren bir
statistic()fonksiyonu tanımla. datadeğişkeniniBTCveSP500oynaklıklarını içeren bir demete (tuple) eşitle.- Bu veri, istatistik, 1000 yeniden örnekleme ile ve Bitcoin için daha büyük oynaklık alternatif hipoteziyle bir permütasyon testi yap.
- p-değeri %5 düzeyinde anlamlıysa yazdır.
Uygulamalı interaktif egzersiz
Bu örnek kodu tamamlayarak bu egzersizi bitirin.
# 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)