Alpha 與多因子模型

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 投資組合風險管理入門

Alpha 與有效市場假說

假設你已在物件 fit 中完成迴歸分析:

portfolio_alpha = fit.params["Intercept"]
portfolio_alpha_annualized = ((1 + portfolio_alpha) ** 252) - 1
portfolio_alpha_annualized
0.045
Python 投資組合風險管理入門

一起來練習吧!

Python 投資組合風險管理入門

Preparing Video For Download...