CommencezCommencez gratuitement

Tests de permutation pour les corrélations

Comment la volatilité du Bitcoin se compare-t-elle à celle du S&P 500?

Vous avez déjà calculé la volatilité comme le pourcentage de variation quotidienne, 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 la mesure dans laquelle ces deux valeurs sont corrélées. Une façon d'y répondre est d'utiliser un test de permutation. En réaffectant aléatoirement des valeurs entre le S&P 500 et le BTC, vous pouvez observer à quoi ressemble un résultat aléatoire, puis le comparer aux valeurs observées.

Un DataFrame des prix du S&P 500 et du Bitcoin (btc_sp_df) a été chargé pour vous, tout comme les modules pandas sous pd, NumPy sous np, et stats de SciPy.

Cette activité fait partie du cours

Fondements de l'inférence en Python

Voir le cours

Instructions de l’exercice

  • Définissez une fonction statistic() qui retourne uniquement la valeur de R de Pearson entre deux vecteurs.
  • Affectez à data un tuple contenant la volatilité de BTC et de SP500.
  • Réalisez un test de permutation avec ces données, cette statistique, 1000 rééchantillonnages et une hypothèse alternative de volatilité plus élevée pour le Bitcoin.
  • Affichez si la valeur p est significative à 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