一、capm模型
1964年由夏普(Willim Sharpe)提出的capm模型奠定了本类模型的方向与基础。
它在若干理想化假设下,将资产的收益率分成无风险收益和风险收益,后者与市场整体风险的关系用一个“弹性系数beta”表示,即:
r i − r f = β ( r m − r f ) + ϵ i r_{i} - r_f = \beta (r_{m}-r_f) + \epsilon_{i} ri−rf=β(rm−rf)+ϵi
二、apt模型
1976年由罗斯(Steven Ross)提出的apt模型扩展了capm模型,放松了capm模型的部分假设。
它认为,资产收益由无风险收益、系统性风险收益、非系统性的资产自身特异风险收益组成,其中资产的特异风险收益可以通过多资产组合中合掉,即:
r i − r f = β ( r m − r f ) + Σ 1 n β i , n r i , n + ϵ i r_{i} -r_f = \beta(r_{m}-r_f) + \Sigma_1^n\beta_{i,n} r_{i,n} + \epsilon_{i} ri−rf=β(rm−rf)+Σ1nβi,nri,n+ϵi
对一个资产组合来说,如果认为系统风险就是市场风险,apt模型就视同为capm模型。
三、Fama-French模型
1992年法玛(Eugene Fama)与佛伦奇(Kenneth French)提出的Fama-French三因子模型,基于时间序列回归,将资产收益率的影响因素具化为市场、市值、账面市值比,即:
R
i
=
β
1
i
r
m
+
β
2
i
S
M
B
i
+
β
3
i
H
M
L
i
+
ϵ
i
R_i = \beta1_ir_m+\beta2_iSMB_i +\beta3_iHML_i +\epsilon_i
Ri=β1irm+β2iSMBi+β3iHMLi+ϵi
其中,
R
i
=
r
i
−
r
f
R_i = r_i - r_f
Ri=ri−rf
Fama-French模型后来进一步发展成市场、市值、账面市值比、盈利、投资五因子模型。
四、Barra模型
1、概述
巴尔·罗森伯格(Barr Rosenberg)在1974年提出了采用基于截面回归的多因子风险模型分析投资组合风险和收益的首个版本,随后成立公司,并运用所建立的模型管理客户资产。本文基于其 CNE5 的版本。
barra模型中
资
产
n
资产_n
资产n 的风险收益可以表示为:
r n = f c + ∑ i X n , i f i + ∑ s X n , s f s + u n r_n = f_c + \sum_iX_{n,i}f_i+\sum_sX_{n,s}f_s+u_n rn=fc+∑iXn,ifi+∑sXn,sfs+un
s . t . ∑ i X n , i = 1 , s u m i w i f i = 0 s.t. \sum_iX_{n,i} = 1,sum_iw_if_i= 0 s.t.∑iXn,i=1,sumiwifi=0
其中,
r
n
r_n
rn,为
资
产
n
资产_n
资产n 的风险收益率
f
c
f_c
fc,为国家因子
f
i
f_i
fi,为行业因子
f
s
f_s
fs,风格因子
u
n
u_n
un,为
资
产
n
资产_n
资产n 的特异收益率
2、因子构成
序号 | Barra因子 | 底层因子 | 权重 | 说明 | 定义 |
---|---|---|---|---|---|
1 | Size | LNCAP | 1 | 规模 | 市值的自然对数 |
2 | Beta | BRTA | 1 | 贝塔 | 资产收益日序列对市场指数收益日序列WLS回归的系数,其中序列长为252个交易日,半衰期为63个交易日 |
3 | Momentum | RSTR | 1 | 动量 | 从上个月(即21个交易日前)算起,过去2年(504个交易日)超额收益率的指数加权之和。 R S T R = ∑ L T + L ω t ( l n ( 1 + r t ) − l n ( 1 + r f t ) ) RSTR=\sum_L^{T+L}\omega_t(ln(1+r_t)-ln(1+r_{ft})) RSTR=∑LT+Lωt(ln(1+rt)−ln(1+rft)) r f r_f rf是无风险收益, w t w_t wt 为指数加权权重,半衰期H=126。 |
4 | Residual Volatility | DASTD | 0.74 | 超额收益率年化波动 | 过去252个交易日日超额收益率的波动率,再按指数加权,半衰期为42个交易日。 D A S T D = ∑ t n ω t ( r e t − r e ‾ ) 2 DASTD=\sum_t^n\omega_t(r_{et}-\overline{r_e})^2 DASTD=∑tnωt(ret−re)2 |
5 | Residual Volatility | CMRA | 0.16 | 年累计超额收益率离差 | 个股过去12个月累积超额收益率中最大值与最小值的差。其中连续的21个交易日视为一个月。 Z ( T ) = ∑ t = 1 T [ l n ( 1 + r t ) − l n ( 1 + r f , t ) ] , Z(T)=\sum_{t=1}^T[ln(1+r_t)-ln(1+r_{f,t})], Z(T)=∑t=1T[ln(1+rt)−ln(1+rf,t)], C R M A = l n ( 1 + Z m a x ) − l n ( 1 + Z m i n ) CRMA=ln(1+Z_{max})-ln(1+Z_{min}) CRMA=ln(1+Zmax)−ln(1+Zmin) (实际多采用 C R M A = Z m a x − Z m i n CRMA=Z_{max}-Z_{min} CRMA=Zmax−Zmin) |
6 | Residual Volatility | HSIGMA | 0.1 | Beta回归残差年化波动率 | Beta 因子残差的标准差 H S I G M A = s t d ( r t ) HSIGMA=std(r_t) HSIGMA=std(rt), HSIGMA 最后要与 beta 因子、size 因子正交,以消除它们之间的共线性。 |
7 | Non-Linear Size | NLSIZE | 1 | 非线性市值因子 | size因子的立方对size因子回归后,将其残差缩尾、标准化 |
8 | Book-to-Price | BTOP | 1 | 账面市值比 | 最近一期季报公司普通股净资产除以公司当前市值 |
9 | Liquidity | STOM | 0.35 | 月度换手率 | 最近一个月(21个交易日),每日的(日交易量 / 流通股本)之和的对数 S T O M = l n ( ∑ t = 1 21 V t S t ) STOM=ln(\sum_{t=1}^{21}\frac{V_t}{S_t}) STOM=ln(∑t=121StVt) |
10 | Liquidity | STOQ | 0.35 | 季度换手率 | 最近三个月日换手率之和的对数 |
11 | Liquidity | STOA | 0.3 | 年度换手率 | 最近十二个月日换手率之和的对数 |
12 | Eearnings Yield | EPFWD | 0.68 | 盈利预期 | 预期盈利市值比,预期盈利是分析师对未来12个月预期盈利的加权平均值 |
13 | Eearnings Yield | CETOP | 0.21 | 现金流量比 | 过去12个月历史现金流量与资产市值的比值 |
14 | Eearnings Yield | ETOP | 0.11 | 历史盈利市值比 | 过去12个月历史净利润与资产市值的比值,是pe_ttm的倒数 |
15 | Growth | EGRLF | 0.18 | 长期利润率预期 | 未来3-5年分析师预期盈利增长率 |
16 | Growth | EGRSF | 0.11 | 短期净利润预期 | 未来1年分析师预期盈利增长率 |
17 | Growth | EGRO | 0.24 | 长期历史净利率 | 过去5年盈利增长率,即最近5个财政年度的净利润额对时间回归的斜率值,除以年平均净利润 |
18 | Growth | SGRO | 0.47 | 长期历史销售率 | 过去5年营收增长率,即最近5个财政年度的营业收入对时间回归的斜率值,除以年平均营业收入 |
19 | Leverage | MLEV | 0.38 | 市场杠杆 | m l e v = m e + p e + l d m e mlev=\frac{me+pe+ld}{me} mlev=meme+pe+ld,其中 me 是普通股市值,pe是优先股账面价值,ld是长期负债 |
20 | Leverage | DTOA | 0.35 | 资产负债比 | d t o a = t d t a dtoa=\frac{td}{ta} dtoa=tatd,其中 td 是总负债账面价值,ta 是总资产 |
21 | Leverage | BLEV | 0.27 | 账面杠杆 | b l e v = b e + p e + l d b e blev=\frac{be+pe+ld}{be} blev=bebe+pe+ld,其中 be是普通股账面价值,pe 是优先股账面价值,ld是长期负债 |
3、基础因子数据处理方法
3-1)异常值处理
异常值有两种,一种是缺失值,包括 nan、None、
±
\pm
±inf 等,一种是与同期其他资产的值偏离非常大的离群值。
缺失值的处理,在 barra 中是用相似股票(同行业或者市值)的因子均值替换。
离群值的处理,在barra中是线判断是否潜在的错值,是则剔除,如果不是,但是超过当期样本均值加减3个标准差,则缩尾至3个标准差的位置。一般为了减小成本,离群值多是直接缩尾。
3-2)中性化处理
barra 中只对风格因子进行中性化处理。它通过对市值因子和 beta 因子求 ols 回归,减少了风格因子与市值、beta 因子的共线性,使因子回报率更稳定。其中因子都要缩尾后标准化,回归得到的残差需要再次标准化。
f
i
=
x
1
f
s
i
z
e
+
x
2
f
b
e
t
a
+
e
i
f_i=x_1f_{size}+x_2f_{beta}+e_i
fi=x1fsize+x2fbeta+ei
3-3)标准化处理
barra 的标准化算法是 zscore,即截面上的因子统一减去截面均值,再除以截面标准差。
3-4)半衰期计算
barra 的模型中广泛采用半衰期来计算因子暴露。半衰期的原意是影响减少到初期一半所用的时间。对无法完全消除自相关性的时间序列,其最新值会受到历史值的影响,但是不同的历史值施加的影响与它距离当前时间的远近成反比。
常用的计算公式有两个。
公式一:
y
0
=
x
0
y_0 = x_0
y0=x0
y
t
=
(
1
−
α
)
y
t
+
α
x
t
y_t = (1-\alpha)y_t+\alpha x_t
yt=(1−α)yt+αxt
因此,
y
t
=
(
1
−
α
)
t
x
0
+
(
1
−
α
)
t
−
1
α
x
1
+
.
.
.
+
(
1
−
α
)
α
x
t
−
1
+
α
x
t
y_t=(1-\alpha)^tx_0+(1-\alpha)^{t-1}\alpha x_1+...+(1-\alpha)\alpha x_{t-1}+\alpha x_t
yt=(1−α)tx0+(1−α)t−1αx1+...+(1−α)αxt−1+αxt
则权重
ω
i
\omega_i
ωi为:
ω
i
=
{
(
1
−
α
)
i
,
(
i
=
t
)
(
1
−
α
)
i
α
,
(
i
<
t
)
\omega_i=\begin{cases} (1-\alpha)^i, & (i=t)\\ (1-\alpha)^i \alpha, & (i<t) \end{cases}
ωi={(1−α)i,(1−α)iα,(i=t)(i<t)
其中,
α
=
1
−
e
l
n
0.5
h
a
l
f
_
l
i
f
e
\alpha=1-e^{\frac{ln0.5}{half\_life}}
α=1−ehalf_lifeln0.5,
half_life 是半衰期参数。
实际使用中,一般是设定时间窗口 = 252交易日,半衰期时长 = 63个交易日,算出每天的权重 w(t) 后,最后再统一除以时间窗口内权重之和,使得各日权重之和为1。
在python里对应的处理函数是 pandas.ewma() 或者 pandas.ewm().mean(),注意要令参数 adjust=True,否则就是采用近似权重,即
ω
i
=
(
1
−
α
)
i
\omega_i=(1-\alpha)^i
ωi=(1−α)i。
公式二:
衰减因子
δ
=
0.
5
1
H
\delta=0.5^{\frac{1}{H}}
δ=0.5H1
其中,H 是半衰期参数。
据此建立
T
×
T
T\times T
T×T 的权重矩阵 W
W
=
{
δ
1
0
⋯
0
0
δ
2
⋯
0
⋮
⋮
⋱
⋮
0
0
⋯
δ
T
}
W= \left\{ \begin{matrix} \delta^1 & 0 & \cdots & 0\\ 0 & \delta^2 & \cdots & 0 \\ \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & \cdots & \delta^T \end{matrix} \right\}
W=⎩⎪⎪⎪⎨⎪⎪⎪⎧δ10⋮00δ2⋮0⋯⋯⋱⋯00⋮δT⎭⎪⎪⎪⎬⎪⎪⎪⎫
4、回归过程(待续)
参考资料:
[1]. Barra CNE5
[2]. Model Insight China Equity Model CNE5 Empirical Notes July 2012
[3]. BARRA风格因子的计算方式