风险模型:协方差矩阵怎么估
上一篇说到,组合优化需要协方差矩阵。这一篇讲它的估计为什么难,以及业界怎么解决。
难在哪
如果有三千只股票,协方差矩阵就有三千乘以三千个参数,大约是四百五十万个。而日频历史数据哪怕有五年的日收益,也才一千二百多个交易日——待估参数远多于样本量。
这就是维度灾难。直接拿历史收益去算样本协方差,得到的矩阵在数学上不满秩,在经济上充满噪声,用它做优化会得到极不稳定的权重。而且更麻烦的是:样本协方差倾向于低估真正的风险,因为它把估计误差当成了确定性。
办法一:多因子风险模型
不去直接估计股票之间的两两关系,而是假设股票的收益由少数几个共同因子驱动:市场、行业、风格(市值、估值、动量、波动等),加上每只股票自己的特质风险。
这样一来,协方差矩阵就变成了:
共同因子协方差(只有几十个因子,很好估)+ 因子暴露(每只股票在各个因子上的载荷)+ 特质风险(每只股票自己的方差,只估三千个而不是四百五十万个)。
待估参数从四百五十万降到了几千个,样本量就够了。这是业界的通用做法,也是风险模型的核心思想。
它的好处不只是能算,还在于结构清晰:你能说清楚组合的风险来自哪些因子,因而能主动控制。
办法二:收缩估计
另一个思路是承认样本协方差有噪声,把它往一个结构化的目标矩阵"拉"一点。
最简单的目标是单位矩阵的倍数(也就是假设所有股票波动相同、互不相关)。收缩估计量就是样本协方差和目标矩阵的加权平均——权重通过理论或交叉验证来定。
这个做法的直觉是:样本协方差无偏但方差大,目标矩阵有偏但稳定,各取一部分,得到一个偏差和方差权衡更好的估计。
实际中还可以往多因子模型的结构上收缩,两者结合使用。
还要处理的两件事
波动率是时变的。用五年平均波动率会掩盖当下处在什么状态。常见的做法是用更短的窗口,或者用指数加权(近期权重更高),让估计跟上市场状态的变化。
极端行情下的相关性会跳升。平时相关性低的资产,在市场恐慌时可能一起跌——这就是所谓的相关性崩溃。历史平均的相关性会严重低估这种时候的风险。所以风险模型之外,还要做压力测试和情景分析,专门考察"如果所有相关性都升到某个水平会怎样"。
检验风险模型
一个可用的检验是:用模型预测组合的波动率,再和实际实现的波动率对比。如果预测值和实际值长期偏离,说明模型有系统性问题。
一句人话:协方差矩阵直接估是估不出来的,因为参数比数据还多。多因子模型是给它"降维",收缩估计是给它"掺点保守"。两者都是用一点偏差换大量稳定性。
写在最后
风险估好了,还得能真的交易出去。下一篇讲交易执行:算法交易与冲击成本建模。
本文为投研学习参考资料,仅供研究参考,不作为投资决策依据。市场有风险,投资需谨慎。
← 返回智远教投