Introduction à la gestion du risque de portefeuille en Python
Dakota Wixom
Quantitative Analyst | QuantCourse.com
Le modèle d'évaluation des actifs financiers (CAPM) est la base de nombreux autres modèles d'évaluation et modèles factoriels en finance.
Pour calculer le rendement excédentaire, soustrayez simplement le taux sans risque du rendement total :
$$ \text{Excess Return} = \text{Return} - \text{Risk Free Return} $$
Exemple :
Investir au Brésil :
10% de rendement du portefeuille − 15% de taux sans risque = −5% de rendement excédentaire
Investir aux É.-U. :
10% de rendement du portefeuille − 3% de taux sans risque = 7% de rendement excédentaire
$$ E(R_{P}) - RF = \beta_{{P}}(E(R_{M})-RF)\ $$
Pour calculer le bêta historique avec la covariance :
$$ \beta_P = \frac{Cov(R_P, R_B)}{Var(R_B)} $$
En supposant que vous avez déjà les rendements excédentaires du portefeuille et du marché dans l'objet Data :
covariance_matrix = Data[["Port_Excess","Mkt_Excess"]].cov()
covariance_coefficient = covariance_matrix.iloc[0, 1]
benchmark_variance = Data["Mkt_Excess"].var()
portfolio_beta = covariance_coefficient / benchmark_variance
portfolio_beta
0.93
Exemple de régression linéaire :

Formule de régression en notation matricielle :

En supposant que vous avez déjà les rendements excédentaires du portefeuille et du marché dans l'objet Data :
import statsmodels.formula.api as smf
model = smf.ols(formula='Port_Excess ~ Mkt_Excess', data=Data)
fit = model.fit()
beta = fit.params["Mkt_Excess"]
beta
0.93
Pour extraire les valeurs R-carré et R-carré ajusté :
import statsmodels.formula.api as smf
model = smf.ols(formula='Port_Excess ~ Mkt_Excess', data=Data)
fit = model.fit()
r_squared = fit.rsquared
r_squared
0.70
adjusted_r_squared = fit.rsquared_adj
0.65
Introduction à la gestion du risque de portefeuille en Python