Aller au contenu
11 octobre 2026

Comment obtenir la matrice de corrélation d’actifs avec Excel ou Python

Maîtrisez les corrélations d’actifs pour optimiser votre portefeuille en quelques minutes.

Comment obtenir la matrice de corrélation d’actifs avec Excel ou Python

La corrélation entre actifs est le pivot d’une gestion de risque efficace. En la quantifiant, un investisseur peut identifier les redondances, diversifier réellement son portefeuille et anticiper les impacts de chocs de marché. Ce tutoriel montre comment passer de la collecte de cours à l’interprétation d’une matrice, que l’on utilise dans un simple tableur ou via un script Python entièrement reproductible.

Préparer les données brutes

Commencez par télécharger les prix de clôture quotidiens de chaque actif sur les 250 derniers jours. Un jeu de données typique, CSV peut contenir les colonnes Date, AAPL, MSFT, EURUSD, XAUUSD. Nettoyez les lignes où un prix manque: la fonction =IFERROR dans Excel ou dropna dans pandas élimine ces valeurs pour éviter des biais de calcul. Exportez le fichier nettoyé sous le nom portefeuille.csvqui servira de base à toutes les étapes suivantes.

Calculer la corrélation dans un tableur

Dans Excel, insérez les rendements logarithmiques: =LN(B2/B1) pour chaque colonne de prix, puis recopiez la formule sur toute la série. Sélectionnez la plage de rendements et utilisez l’outil Analyse de données → Corrélation. Le résultat est une matrice de corrélation symétrique où chaque case indique le coefficient de corrélation de Pearson entre deux actifs, variant de –1 (inverse) à +1 (identique).

Interprétez les valeurs: un coefficient supérieur à 0,7 signale une forte redondance (par ex. AAPL vs MSFT), tandis qu’un coefficient proche de 0 indique une diversification potentielle (ex. EURUSD vs XAUUSD). En fonction de votre profil, vous pouvez décider de réduire l’exposition aux actifs fortement corrélés ou d’ajouter des actifs peu corrélés pour diminuer la volatilité du portefeuille.

Reproduire le calcul avec Python

Le script suivant, entièrement reproductible, lit le CSV, calcule les rendements et affiche la matrice avec pandas et numpy. Copiez-collez-le dans un fichier corr_portfolio.py puis lancez python corr_portfolio.py

import pandas as pd
import numpy as np

# 1. Chargement et nettoyage
df = pd.read_csv('portefeuille.csv', parse_dates=['Date']).set_index('Date')
df = df.dropna

# 2. Rendements logarithmiques
returns = np.log(df / df.shift(1)).dropna

# 3. Matrice de corrélation
corr_matrix = returns.corr
print('Matrice de corrélation:')
print(corr_matrix)

# 4. Visualisation optionnelle
try:
 import seaborn as sns
 import matplotlib.pyplot as plt
 sns.heatmap(corr_matrix, annot=True, cmap='coolwarm')
 plt.title('Matrice de corrélation des actifs')
 plt.show
except ImportError:
 pass

Le même principe d’interprétation s’applique: les valeurs proches de 1 ou –1 signalent des dépendances fortes, tandis que les valeurs proches de 0 ouvrent la porte à la diversification. Le script peut être intégré dans un pipeline d’allocation d’actifs, où la matrice guide le calcul du ratio de Sharpe ou la construction d’un portefeuille minimum-variance.

Réduire la volatilité et tester des scénarios

Une fois la matrice obtenue, créez un portefeuille hypothétique en attribuant des poids à chaque actif. Utilisez la formule σ² = wᵀ Σ woù Σ est la matrice de covariance (corrélation × écarts-type) et w le vecteur des poids. En ajustant les poids, vous pouvez minimiser la variance totale; les algorithmes de optimisation quadratique disponibles dans scipy.optimize facilitent cette tâche.

Pour tester la robustesse, appliquez des scénarios de stress: augmentez soudainement la corrélation entre les actions et les devises, ou diminuez la volatilité d’un actif. Re-calculez σ² à chaque test afin d’observer l’impact sur le capital à risque. Ces simulations aident à anticiper les périodes de marché tendu et à ajuster la composition avant que la corrélation ne devienne défavorable.