Modèles alpha et multifactoriels

Introduction à la gestion du risque de portefeuille en Python

Dakota Wixom

Quantitative Analyst | QuantCourse.com

Le modèle Fama-French à 3 facteurs

$$ R_{P} = $$

$$ RF + \beta_{M}(R_{M}-RF)+b_{SMB} \cdot SMB + b_{HML} \cdot HML + \alpha $$

  • SMB : le facteur « small minus big » (petites moins grandes capitalisations)
  • $b_{SMB}$ : exposition au facteur SMB
  • HML : le facteur « high minus low » (valeur moins croissance)
  • $b_{HML}$ : exposition au facteur HML
  • $\alpha $ : performance non expliquée par les autres facteurs
  • $\beta_{M}$ : bêta par rapport au portefeuille de marché global B
Introduction à la gestion du risque de portefeuille en Python

Le modèle Fama-French à 3 facteurs

Introduction à la gestion du risque de portefeuille en Python

Le modèle Fama-French à 3 facteurs en Python

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 + SMB + HML', 
                data=Data)
fit = model.fit()
adjusted_r_squared = fit.rsquared_adj
adjusted_r_squared
0.90
Introduction à la gestion du risque de portefeuille en Python

Valeurs p et signification statistique

Pour extraire la valeur p de HML, en supposant que l'objet du modèle ajusté dans votre espace de travail est fit :

fit.pvalues["HML"]
0.0063

Pour tester sa signification statistique, vérifiez simplement si elle est inférieure à un seuil donné, généralement 0,05 :

fit.pvalues["HML"] < 0.05
True
Introduction à la gestion du risque de portefeuille en Python

Extraction des coefficients

Pour extraire le coefficient HML, en supposant que l'objet du modèle ajusté dans votre espace de travail est fit :

fit.params["HML"]
0.502
fit.params["SMB"]
-0.243
Introduction à la gestion du risque de portefeuille en Python

Alpha et l'hypothèse des marchés efficients

En supposant que vous avez déjà un modèle de régression ajusté dans l'objet fit :

portfolio_alpha = fit.params["Intercept"]
portfolio_alpha_annualized = ((1 + portfolio_alpha) ** 252) - 1
portfolio_alpha_annualized
0.045
Introduction à la gestion du risque de portefeuille en Python

Passons à la pratique !

Introduction à la gestion du risque de portefeuille en Python

Preparing Video For Download...