CommencerCommencez gratuitement

Corrélations

Il est utile d'examiner les corrélations avant de construire des modèles de Machine Learning, car cela permet d'identifier quelles variables explicatives sont le plus fortement corrélées à la cible. On utilise souvent le coefficient de corrélation de Pearson, qui ne détecte que les relations linéaires. On suppose couramment que les données suivent une loi normale, ce que l'on peut évaluer « à l'œil » avec des histogrammes. Des variables fortement corrélées ont un coefficient de Pearson proche de 1 (corrélation positive) ou de -1 (corrélation négative). Une valeur proche de 0 signifie que les deux variables ne sont pas corrélées linéairement.

Si nous utilisons les mêmes périodes pour les variations passées et futures des prix, nous pouvons déterminer si le cours d'une action est mean-reverting (revient vers sa moyenne) ou trend-following (poursuit la tendance s'il a récemment augmenté).

Cet exercice fait partie du cours

<cours>Machine Learning pour la finance en Python</cours>
Voir le cours

Instructions de l’exercice

En utilisant le DataFrame lng_df et sa colonne Adj_Close :

  • Créez le prix futur à 5 jours (sous le nom 5d_future_close) avec .shift(-5) de pandas.
  • Utilisez pct_change(5) sur 5d_future_close et Adj_Close pour créer la variation en pourcentage du prix à 5 jours dans le futur (5d_close_future_pct), ainsi que la variation en pourcentage actuelle à 5 jours (5d_close_pct).
  • Examinez les corrélations entre les deux colonnes de variation en pourcentage sur 5 jours avec .corr() sur lng_df.
  • Avec plt.scatter(), réalisez un nuage de points de 5d_close_pct en fonction de 5d_close_future_pct.

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

# Create 5-day % changes of Adj_Close for the current day, and 5 days in the future
lng_df['5d_future_close'] = lng_df['Adj_Close'].shift(____)
lng_df['5d_close_future_pct'] = lng_df['5d_future_close'].pct_change(5)
lng_df['5d_close_pct'] = lng_df['Adj_Close'].pct_change(____)

# Calculate the correlation matrix between the 5d close pecentage changes (current and future)
corr = lng_df[['5d_close_pct', '5d_close_future_pct']].____
print(corr)

# Scatter the current 5-day percent change vs the future 5-day percent change
plt.scatter(lng_df['5d_close_pct'], lng_df[____])
plt.show()
Modifier et exécuter le code