Tests de permutation pour les corrélations
Comment la volatilité du Bitcoin se compare-t-elle à celle du S&P 500 ?
Vous avez précédemment calculé la volatilité comme le pourcentage de variation quotidienne, qui a été stocké pour vous dans les colonnes Pct_Daily_Change_BTC et Pct_Daily_Change_SP500 de vos données. La question à laquelle vous souhaitez répondre est dans quelle mesure ces deux valeurs sont corrélées. Une façon d’y répondre est d’utiliser un test de permutation. En mélangeant aléatoirement les valeurs entre le S&P 500 et le BTC, vous pouvez observer ce à quoi ressemblerait un résultat aléatoire, puis le comparer aux valeurs observées.
Un DataFrame contenant les prix du S&P 500 et du Bitcoin (btc_sp_df) a été chargé pour vous, ainsi que les packages pandas sous pd, NumPy sous np, et stats de SciPy.
Cet exercice fait partie du cours
Fondements de l’inférence en Python
Instructions
- Définissez une fonction
statistic()qui renvoie uniquement la valeur de corrélation de Pearson R entre deux vecteurs. - Affectez à
dataun tuple contenant la volatilité deBTCet deSP500. - Effectuez un test de permutation avec ces données, cette statistique, 1000 rééchantillonnages, et avec l’hypothèse alternative d’une plus grande volatilité pour le Bitcoin.
- Affichez si la p-valeur est significative au seuil de 5 %.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# 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)