一、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,n​ri,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​=β1i​rm​+β2i​SMBi​+β3i​HMLi​+ϵ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​+∑i​Xn,i​fi​+∑s​Xn,s​fs​+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.∑i​Xn,i​=1,sumi​wi​fi​=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=121​St​Vt​​)
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​=x1​fsize​+x2​fbeta​+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⋮0​0δ2⋮0​⋯⋯⋱⋯​00⋮δT​⎭⎪⎪⎪⎬⎪⎪⎪⎫​

4、回归过程(待续)

参考资料:
[1]. Barra CNE5
[2]. Model Insight China Equity Model CNE5 Empirical Notes July 2012
[3]. BARRA风格因子的计算方式

因子类投资模型框架简介(待续)相关推荐

  1. Django框架(3.django设计模型类、模型类生成表、ORM框架简介)

    ORM框架简介 O是object,也就类对象的意思, R是relation,翻译成中文是关系,也就是关系数据库中数据表的意思, M是mapping,是映射的意思.在ORM框架中,它帮我们把类和数据表进 ...

  2. 爬虫基础(五)-----scrapy框架简介

    ---------------------------------------------------摆脱穷人思维 <五> :拓展自己的视野,适当做一些眼前''无用''的事情,防止进入只关 ...

  3. 一种基于CUDA标准的异构并行编程模型开发简介

    一种基于CUDA标准的异构并行编程模型开发简介 目录 一.绪论 1.1研究背景及意义 1.2目标平台体系结构简介 二.HPPA基本组成结构 三.编译工具链开发 3.1 拆分工具HPCufe开发 3.2 ...

  4. 模型视图简介、QListWidget、QTreeWidget、QTableWidget、QStringListModel、QFileSystemModel

    一.模型视图简介 有时,我们的系统需要显示大量数据,比如从数据库中读取数据,以自己的方式显示在自己的应用程序的界面中.早期的 Qt 要实现这个功能,需要定义一个组件,在这个组件中保存一个数据对象,比如 ...

  5. 【Spring】框架简介

    [Spring]框架简介 Spring是什么 Spring是分层的Java SE/EE应用full-stack轻量级开源框架,以IOC(Inverse Of Control:反转控制)和AOP(Asp ...

  6. 《HiWind企业快速开发框架实战》(0)目录及框架简介

    <HiWind企业快速开发框架实战>(0)目录及框架简介 本系列主要介绍一款企业管理系统快速开发框架,该框架旨在快速完成企业管理系统,并实现易维护可移植的目标. 使用逐个系统模块进行编码的 ...

  7. Java开源——常见J2EE框架简介

    Java开源--常见J2EE框架简介 Spring Framework Spring是一个解决了许多在J2EE开发中常见的问题的强大框架. Spring提供了管理业务对象的一致方法并且鼓励了注入对接口 ...

  8. Django框架简介

    Django框架简介 MVC框架和MTV框架 MVC,全名是Model View Controller,是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model).视图(View) ...

  9. 下一代的 Actor 模型框架 Proto Actor

    ProtoAct 是下一代的 Actor 模型框架,提供了 .NET 和 Go 语言的实现,默认支持分布式,提供管理和监控功能.在过去几年,我们经常看到两种 Actor 模型方法相互竞争,首先是经典的 ...

最新文章

  1. gis许可服务器状态,把ArcGIS的许可指到本机(服务设为@l者机器名)通过修改注册表实现...
  2. 敏捷、精益、六西格玛之间到底有什么差异?
  3. 【BZOJ】3036: 绿豆蛙的归宿
  4. Juyter notebook 出现“localhost 目前无法处理此请求”
  5. OC第八节 内存管理高级
  6. pythin怎么根据月份获取月初和月末_信息流是什么?到底应该怎么去做?
  7. Caffe学习系列(17):模型各层特征和过滤器可视化
  8. 姜汝祥的-赢在执行 - 制度执行力的三要三化
  9. 在应用程序中实现对NandFlash的操作
  10. matlab imhist灰度直方图
  11. Linux 开发者最应该知道的命令汇总
  12. wcf rest服务启用gzip压缩
  13. mongoimport csv文件
  14. 《洞见》罗伯特·赖特
  15. 学术论坛第三期:多指标异常检测方法综述
  16. python 协程是啥_什么是Python中的协程
  17. UGUI长按按钮的实现(技能蓄力使用)
  18. 科技巨头们在SaaS市场“雷声大雨点小”背后的症结
  19. 如何用matlab编写分段函数_matlab 如何写分段函数
  20. Hive经典最全笔试题系列

热门文章

  1. Beego exper表达式
  2. 让你工作效率翻倍的神器
  3. js 逻辑与 逻辑或 快速记忆方法
  4. “F5G+EIoT“构建能源物联网,助力电力物联网数据服务
  5. git 项目 保存至gitee中
  6. 以前写的一些老的验证脚本
  7. Python分析《权力的游戏》最终季...... | 附源码
  8. PHP框架中Symfony对数据库的操作
  9. The Social Life of Autonomous Cars-自动驾驶汽车与日常生活
  10. 上海市“专精特新”中小企业认定条件、流程、奖励政策