CommencerCommencer 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

Fondements de l’inférence en Python

Afficher le cours

Instructions

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