CommencerCommencez gratuitement

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

<cours>Fondements de l’inférence en Python</cours>
Voir le cours

Instructions de l’exercice

  • Définissez une fonction statistic() qui renvoie uniquement la valeur de corrélation de Pearson R entre deux vecteurs.
  • Affectez à data un tuple contenant la volatilité de BTC et de SP500.
  • 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 ce code d’exemple.

# 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)
Modifier et exécuter le code