一、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. 一道神坑题 POJ3026 Borg Maze BFS+prim算法
  2. 正在更新office_Windows 9月10日累积更新:已修复和损坏的问题
  3. loadrunner脚本中参数有中文时报错
  4. 对于scanf的使用一点体会心得
  5. \pages\WxPay\WxPay.js
  6. java中j_j + = j ++在Java中做什么?
  7. mysql事件类型_MySQL binlog中的事件类型
  8. vmware vsphere出现“需要整合虚拟机磁盘”的告警处理方法(完整版)
  9. python猜字游戏猜三次_python的猜数字游戏
  10. short转换byte
  11. 前端下载图片(文件)以及打包下载图片(文件)
  12. 用VHDL编写testbench激励文件
  13. python--pyecharts地图、地图标记可视化实现《四》--地图可视化[视觉盛宴]
  14. MySQL使用MyCat实现分库分表
  15. 使用hanewin实现 win系统主机,vm虚拟机中linux系统和开发板三方共享文件夹
  16. 集团固定资产管理有哪些难题,又应该如何解决?
  17. 四针角oled屏连接arduino_ESP8266连接OLED显示屏并显示位图图像
  18. 时间和空间的完美统一!阿里云时空数据库正式商业化
  19. 3D智慧仓储可视化解决方案
  20. Winform BLE 蓝牙通信

热门文章

  1. 怎样才能做好app应用推广?
  2. html lang=en
  3. STAR-CCM+ 二维翼型模拟
  4. 实验7-3-7 字符转换 (15 分)
  5. 2016蓝桥杯报纸页数(C++C组)
  6. MySQL性能优化Buffer Pool详细介绍
  7. js进阶之你必须要会的技术!
  8. Morto蠕虫病毒分析报告
  9. 百度云盘不限速下载工具(附带开源源码)
  10. 我的创作纪念日-从写作到阿里云专家博主的故事