结构化风险模型¶
定义¶
把收益写成暴露乘因子收益,再加上特质残差。组合方差分成因子一块和特质一块。
公式¶
\[
r=Xf+e,\qquad
\sigma_p^{2}=w'XFX'w+w'\Delta w
\]
同一行业两只股票收益 0.01 和 0.03、特质方差 0.04 和 0.01 时,等权因子收益 0.020000,加权最小二乘是 0.026000。国家列等于行业哑变量之和,不能和行业一起自由估计。
直觉¶
一起涨的部分放进因子。各走各的部分放进对角的特质方差。优化器若把很小的特征值当成便宜的分散,会去持有那个方向。
实务要点 / 常见误区¶
- 教学特征值 0.0400 和 0.0100 收到均值后是 0.0325 和 0.0175,条件数从 4 到 1.8571。这不是种子 7 的矩阵,也不是 USE4 的偏差函数。
- 波动率调整 \((0.27/0.18)^2=2.25\) 只乘因子一块。特质平方和留在 0.022825,新的波动是 30.47%。
- 只有一只股票的行业,残差被回归收成 0,不是特质风险为零。
相关概念¶
- Black–Litterman 模型 (
black_litterman_model) - 风险平价与 HRP (
risk_parity_and_hrp) - Newey–West 调整 (
newey_west_hac)
代码¶
def wls_factor_return(returns: list[float], specific_var: list[float]) -> float:
# 特质波动低的股票权重大。权重是方差的倒数。
weights = [1.0 / v for v in specific_var]
return sum(w * r for w, r in zip(weights, returns)) / sum(weights)
教材:M11 风险模型