GRS 检验¶
定义¶
检验一组组合在因子模型里的截距是否同时为 0。拒绝表示这些组合的平均收益没有被因子解释完。
公式¶
\[
\frac{T-N-K}{N}\frac{\hat\alpha'\hat\Sigma^{-1}\hat\alpha}{1+\hat\mu_f'\hat\Omega^{-1}\hat\mu_f}\sim F_{N,\,T-N-K}
\]
动量十分位的教学计算给出 GRS 7.65,\(T=1196\),分子自由度 10。残差协方差按 \(T-K-1\) 除。不要用手改这个 7.65。
直觉¶
十个截距里有几个碰巧为正,并不稀奇。GRS 问的是它们作为一组是否还站得住。
实务要点 / 常见误区¶
- 统计量大,说明模型没解释完,不说明你的账户能拿到截距。
- 只做多账户没有空头腿,高减低组合的截距不能直接记成净值。
- \(\hat\Sigma\) 的除数要和教材一致。换成 \(T\) 会得到另一个数。
相关概念¶
- Fama–MacBeth 回归 (
fama_macbeth_regression) - Newey–West 调整 (
newey_west_hac) - 主动管理基本定律 (
fundamental_law_of_active_management)
代码¶
def grs_df(n_obs: int, n_portfolios: int, n_factors: int) -> tuple[int, int]:
# 分子自由度是组合个数。分母把因子个数和组合个数都减掉。
return n_portfolios, n_obs - n_portfolios - n_factors
教材:M06 因子研究方法论