量化百科

BARRA风格因子的计算方式

由polll创建,最终由polll 被浏览 161 用户

导语

BARRA风险模型作为量化多因子的范例,其十个风格因子作为最常见的,解释程度很高的十个因子,经常被用作风险因子,甚至是作为阿尔法因子。了解其计算方法对于我们构造其他风险因子和阿尔法因子有很大帮助。

SIZE(市值因子)

定义: 1.0lncap{w:100}

lncap {w:100} 为公司股票总市值的自然对数,最常见的风格因子

BETA(贝塔因子)

定义: 1.0beta {w:100}

股票超额收益日序列和市值加权指数超额收益日序列的回归系数,表示股票相对于指数涨跌的弹性大小,计算如下

r_{t}-r_{ft}=alpha+beta R_{t} + e_{t}{w:100}

其中 r_{ft}{w:100} 是无风险收益日序列, r_{t}{w:100} 是股票收益日序列, R_{t}{w:100} 是市值加权指数(如中证全指、万德全A指数)超额收益日序列,回归系数采取过去252交易日的收益数据,采用指数加权移动平均,半衰期为63个交易日(时间越近权重越大)

按照普通最小二乘法,对于参数的估计为

beta=frac{Cov(x,y)}{Var(x)}=frac{sum_{i=1}^{n}({x_{i}-bar{x})(y_{i}-bar{y})}}{sum_{i=1}^{n}({x_{i}-bar{x})}^{2}}{w:100}

指数加权移动平均(Exponentially Weighted Moving Average, EWMA),是BARRA书中常用的一种加权方式,按照时间远近呈指数衰减,按照指数加权移动平均,对于参数的估计为

beta=frac{sum_{i=0}^{i}w_{i}({x_{i}-bar{x})(y_{i}-bar{y})}}{sum_{i=0}^{t}w_{i}({x_{i}-bar{x})}^{2}}{w:100}

其中, t{w:100} 是数据的时间长度减一,这里为251, x_{t}{w:100} 是距离现在最近的数据,其权重为 w_{0}{w:100} ,指数加权移动平均具体过程见下面的附录A

MOMENTUM(动量因子)

定义: 1.0rstr{w:100}

这里的动量其实是长期动量减去短期动量,并且也采用了指数加权移动平均方法

rstr=sum_{t=L}^{T+L}{w_{t}ln(1+r_{t})}-sum_{t=L}^{T+L}{w_{t}ln(1+r_{ft})}{w:100}

其中 T=504{w:100}L=21{w:100}r_{ft}{w:100} 是无风险收益, w_{i}{w:100} 是指数加权权重,半衰期为126个交易日

RESIDUAL VOLATILITY(残差波动因子)

定义: 0.74{w:100}

dastd{w:100} 是过去252个交易日日超额收益率波动率,按照指数加权权重,半衰期为42个交易日

dastd=frac{1}{n}sum_{t=1}^{n}w_{t}({r_{et}-bar{r_{e}})^2}{w:100}

其中股票日超额收益率为 r_{et}=r_{t}-r_{ft}{w:100}

cmra{w:100} 是过去12个月超额收益的离差,也是表征股票收益率的波动大小, Z(T){w:100} 是过去T个月超额收益对数值得累计值, Z(T){w:100} 是一个时间序列, T=1,2,3......12{w:100}

![Z(T)=\sum_{t=1}^{T}{ln(1+r_{t})-ln(1+r_{ft})}

crma=ln(1+Zmax)-ln(1+Zmin){w:100}

hsigma{w:100} 就是计算beta收益之时的残差收益率的波动率,表示股票不能被beta所解释部分收益的波动率,

hsigma=std(e_{t}){w:100}

这三个因子加权平均为 residual space volatility{w:100} 因子,权重最大的为超额收益的波动率因子,考虑其可加性,因子相加之前应该都做过标准化处理,最后 residual space volatility{w:100} 因子要和 beta{w:100} 因子和 size{w:100} 因子做回归,去除其共线性关系。

NON-LINEAR-SIZE(非线性市值因子)

定义: 1.0nlsize{w:100}

nlsize{w:100}size{w:100} 因子的立方,之后将结果和 size{w:100} 回归取残差去除其和 size{w:100} 因子的共线性,残差值再进行缩尾处理(winsorized)和标准化(standardized)

什么是winsorize处理? 缩尾处理就是将超出变量特定范围的数值替换为其特定数值的方法,目的在于去极值,最简单的一种方法是超过正负三倍标准差的值替换为三倍标准差的数值

BOOK-TO-PRICE(账面市值比因子)

定义: 1.0btop{w:100}

btop{w:100} 就是上个季报公司普通股权账面价值(就是净资产)除以公司当前的市值

LIQUIDITY(流动性因子)

定义: 0.35{w:100}

流动性因子的核心就是换手率,月换手率、季度换手率、年度换手率的均值。

stom(share space turnover space one space month){w:100}是最近一个月的换收率和的对数值

stom=ln(sum_{t=1}^{21}{frac{V_{t}}{S_{t}}}){w:100}

V_{t}{w:100}t{w:100} 日的交易量, S_{t}{w:100}t{w:100} 日的流通股本

stoq=ln(frac{1}{3}sum_{t=1}^{3}{exp(stom_{t})}){w:100}

stom_{t}{w:100}t{w:100} 月换手率和的对数值 , stoq{w:100} 是季度均值

stoa=ln(frac{1}{12}sum_{t=1}^{12}{exp(stom_{t})}){w:100}

stom_{t}{w:100}t{w:100} 月换手率和的对数值 , stoa{w:100} 是年度均值

EARNING YEILD(盈利预期因子)

定义: 0.68{w:100}

盈利预期因子的核心是EP因子,包含预期盈利、现金流量、过去盈利三方面

epfwd(predicted space earnings space to space price space ratio){w:100} 是预期盈利市值比,预期盈利采用的是分析师对未来12个月预期盈利加权平均值

cetop(cash space earnings space to space price space ratio){w:100} 是现金流量市值比,现金流量是过去12月的历史数据值

etop(trailing space earnings space to space price space ratio){w:100} 是盈利市值比,盈利是过去12月的历史数据(就是pe_ttm的倒数值)

GROWTH(成长因子)

定义: 0.18{w:100}

egrlf(long space term space predicted space earnings space growth){w:100} 是未来3-5年分析师预期盈利增长率

egrsf(short space term space predicted space earnings space growth){w:100} 是未来1年分析师预期盈利增长率

egro(earnings space growth space trailing space five space years){w:100} 是过去5年盈利增长率(采用回归方法)

sgro(sales space growth space trailing space five space years){w:100} 是过去5年营业收入增长率(采用回归方法)

过去历史数据占了很大一部分,成长因子偏向历史成长。

10 LEVERAGE(杠杆因子)

定义: 0.38{w:100}

mlev{w:100} 是市场杠杆

mlev=frac{me+pe+ld}{me}{w:100}

me是普通股市值,pe是优先股账面价值,ld是长期负债账面价值

dtoa{w:100} 是资产负债比

dtoa=frac{td}{ta}{w:100}

td是总负债账面价值,ta是总资产账面价值

blev{w:100} 是账面杠杆

blev=frac{be+pe+ld}{be}{w:100}

be是普通股账面价值,pe是优先股账面价值,ld是长期负债账面价值


附录A:指数加权移动平均

指数加权移动平均的权重有两种表现方式,一种是递推公式,如下

y_{0}=x_{0}{w:100}

y_{t}=(1-alpha)y_{t}+alpha x_{t}{w:100}

根据递推公式,可以得到

y_{t}=(1-alpha)^{t}x_{0}+(1-alpha)^{t-1}alpha x_{1}+...+(1-alpha)alpha x_{t-1}+alpha x_{t}{w:100}

权重可以写为,

w_{i}=(1-alpha)^{i}alpha quad (i<t){w:100}

w_{i}=(1-alpha)^{i} quad (i=t){w:100}

可以得到 sum_{i=0}^{t}{w}_{i}=1{w:100}

在python中可以直接调用pandas.ewma()或者pandas.ewm().mean()实现,网页说明链接为Computational tools。注意的是,默认参数为adjust=True,采用近似的权重,权重为 w_{i}=(1-alpha)^{i}{w:100} ,当参数adjust=False,才会采用以上精确推算结果。

半衰期 h{w:100} 和参数 alpha{w:100} 的关系为 alpha=1-e^{frac{ln0.5}{h}}{w:100} ,这是因为最大权重 w_{0}=alpha{w:100} ,经过了 h{w:100} 天之后权重为 w_{h}=(1-alpha)^{h}alpha{w:100} ,两者之比 frac{w_{h}}{w_{0}}=(1-alpha)^{h}=0.5{w:100} ,可以得出 alpha=1-e^{frac{ln0.5}{h}}{w:100} ,也就是说经过了 h{w:100} 天后,权重变成了初始权重的一半。

标签

风险因子市值因子Barra多因子模型BARRA