Introduction à la gestion du risque de portefeuille en Python
Dakota Wixom
Quantitative Analyst | QuantCourse.com
Le modèle d'évaluation des actifs financiers est la base de nombreux autres modèles d'évaluation et modèles à facteurs en finance.
Pour calculer les rendements excédentaires, soustrayez simplement le taux sans risque de votre 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 États‑Unis :
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 via 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