本文主要参考 BARRA-USE5
BARRA 风险模型作为量化多因子的范例, 其十个风格因子作为最常见的, 解释程度很高的十个因子, 经常被用作风险因子, 甚至是作为阿尔法因子. 了解其计算方法对于我们构造其他风险因子和阿尔法因子有很大帮助.
1 SIZE(市值因子)
定义:
为公司股票总市值的自然对数, 最常见的风格因子
2 BETA(贝塔因子)
定义:
股票超额收益日序列和市值加权指数超额收益日序列的回归系数, 表示股票相对于指数涨跌的弹性大小, 计算如下
其中 是无风险收益日序列, 是股票收益日序列, 是市值加权指数 (如中证全指, 万德全 A 指数) 超额收益日序列, 回归系数采取过去 252 交易日的收益数据, 采用指数加权移动平均, 半衰期为 63 个交易日(时间越近权重越大)
按照普通最小二乘法, 对于参数的估计为
指数加权移动平均(Exponentially Weighted Moving Average, EWMA), 是 BARRA 书中常用的一种加权方式, 按照时间远近呈指数衰减, 按照指数加权移动平均, 对于参数的估计为
其中, 是数据的时间长度减一, 这里为 251, 是距离现在最近的数据, 其权重为 , 指数加权移动平均具体过程见下面的附录 A
3 MOMENTUM(动量因子)
定义:
这里的动量其实是长期动量减去短期动量, 并且也采用了指数加权移动平均方法
其中 , , 是无风险收益, 是指数加权权重, 半衰期为 126 个交易日
4 RESIDUAL VOLATILITY(残差波动因子)
定义:
是过去 252 个交易日日超额收益率波动率, 按照指数加权权重, 半衰期为 42 个交易日
其中股票日超额收益率为
是过去 12 个月超额收益的离差, 也是表征股票收益率的波动大小, 是过去 T 个月超额收益对数值得累计值, 是一个时间序列,
就是计算 beta 收益之时的残差收益率的波动率, 表示股票不能被 beta 所解释部分收益的波动率,
这三个因子加权平均为 因子, 权重最大的为超额收益的波动率因子, 考虑其可加性, 因子相加之前应该都做过标准化处理, 最后 因子要和 因子和 因子做回归, 去除其共线性关系.
5 NON-LINEAR-SIZE(非线性市值因子)
定义:
为 因子的立方, 之后将结果和 回归取残差去除其和 因子的共线性, 残差值再进行缩尾处理 (winsorized) 和标准化(standardized)
什么是 winsorize 处理? 缩尾处理就是将超出变量特定范围的数值替换为其特定数值的方法, 目的在于去极值, 最简单的一种方法是超过正负三倍标准差的值替换为三倍标准差的数值
6 BOOK-TO-PRICE(账面市值比因子)
定义:
就是上个季报公司普通股权账面价值 (就是净资产) 除以公司当前的市值
7 LIQUIDITY(流动性因子)
定义:
流动性因子的核心就是换手率, 月换手率, 季度换手率, 年度换手率的均值.
是最近一个月的换收率和的对数值
是 日的交易量, 是 日的流通股本
是 月换手率和的对数值 , 是季度均值
是 月换手率和的对数值 , 是年度均值
流动性因子要和 size 因子作回归取残差, 十个因子中非线性市值和流动性因子要和市值因子取残差, 残差波动要和市值和贝塔取残差, 其他因子不需要取残差
8 EARNING YEILD(盈利预期因子)
定义:
盈利预期因子的核心是 EP 因子, 包含预期盈利, 现金流量, 过去盈利三方面
是预期盈利市值比, 预期盈利采用的是分析师对未来 12 个月预期盈利加权平均值
是现金流量市值比, 现金流量是过去 12 月的历史数据值
是盈利市值比, 盈利是过去 12 月的历史数据(就是 pe_ttm 的倒数值)
9 GROWTH(成长因子)
定义:
是未来 3-5 年分析师预期盈利增长率
是未来 1 年分析师预期盈利增长率
是过去 5 年盈利增长率(采用回归方法)
是过去 5 年营业收入增长率(采用回归方法)
过去历史数据占了很大一部分, 成长因子偏向历史成长.
10 LEVERAGE(杠杆因子)
定义:
是市场杠杆
me 是普通股市值, pe 是优先股账面价值, ld 是长期负债账面价值
是资产负债比
td 是总负债账面价值, ta 是总资产账面价值
是账面杠杆
be 是普通股账面价值, pe 是优先股账面价值, ld 是长期负债账面价值
* 附录 A: 指数加权移动平均
指数加权移动平均的权重有两种表现方式, 一种是递推公式, 如下
根据递推公式, 可以得到
权重可以写为,
可以得到
在 python 中可以直接调用 pandas.ewma()或者 pandas.ewm().mean()实现, 网页说明链接为 Computational tools http://pandas.pydata.org/pandas-docs/version/0.17.0/computation.html . 注意的是, 默认参数为 adjust=True, 采用近似的权重, 权重为 , 当参数 adjust=False, 才会采用以上精确推算结果.
半衰期 和参数 的关系为 , 这是因为最大权重 , 经过了 天之后权重为 , 两者之比 , 可以得出 , 也就是说经过了 天后, 权重变成了初始权重的一半.
来源: https://zhuanlan.zhihu.com/p/31412967