阿尔法与多因子模型

Python 投资组合风险管理入门

Dakota Wixom

Quantitative Analyst | QuantCourse.com

Fama-French 三因子模型

$$ R_{P} = $$

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

  • SMB:小盘减大盘因子
  • $b_{SMB}$:对 SMB 因子的暴露
  • HML:高账面市值比减低账面市值比因子
  • $b_{HML}$:对 HML 因子的暴露
  • $\alpha $:其他因子无法解释的超额表现
  • $\beta_{M}$:对广义市场组合的贝塔
Python 投资组合风险管理入门

Fama-French 三因子模型

Python 投资组合风险管理入门

用 Python 构建 Fama-French 三因子模型

假设对象 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
Python 投资组合风险管理入门

P 值与统计显著性

要提取 HML 的 p 值,假设工作区中已有回归结果对象 fit

fit.pvalues["HML"]
0.0063

要检验其是否显著,只需查看它是否小于常用阈值 0.05:

fit.pvalues["HML"] < 0.05
True
Python 投资组合风险管理入门

提取系数

要提取 HML 系数,假设工作区中已有回归结果对象 fit

fit.params["HML"]
0.502
fit.params["SMB"]
-0.243
Python 投资组合风险管理入门

阿尔法与有效市场假说

假设你已将回归结果保存在对象 fit 中:

portfolio_alpha = fit.params["Intercept"]
portfolio_alpha_annualized = ((1 + portfolio_alpha) ** 252) - 1
portfolio_alpha_annualized
0.045
Python 投资组合风险管理入门

¡Vamos a practicar!

Python 投资组合风险管理入门

Preparing Video For Download...