Corrélations
Il est utile d'examiner les corrélations avant de bâtir des modèles de Machine Learning, car cela permet de voir quelles caractéristiques 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 nos données suivent une distribution normale, ce qu'on peut « juger à l'œil » à partir d'histogrammes. Des variables fortement corrélées ont un coefficient de Pearson près de 1 (corrélation positive) ou de -1 (corrélation négative). Une valeur près 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 de prix passées et futures, nous pouvons voir si le cours de l'action est à retour à la moyenne (oscille autour d'une valeur) ou suit une tendance (monte s'il a récemment monté).
Cette activité fait partie du cours
Machine Learning pour la finance en Python
Instructions de l’exercice
En utilisant le DataFrame lng_df et sa colonne Adj_Close :
- Créez le prix futur à 5 jours (comme
5d_future_close) avec.shift(-5)de pandas. - Utilisez
pct_change(5)sur5d_future_closeetAdj_Closepour créer la variation en % du prix futur sur 5 jours (5d_close_future_pct) et la variation en % actuelle sur 5 jours (5d_close_pct). - Examinez les corrélations entre les deux colonnes de variation en pourcentage sur 5 jours avec
.corr()surlng_df. - À l'aide de
plt.scatter(), faites un nuage de points de5d_close_pctpar rapport à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()