股票量化投资策略研究:股票多因子策略研究
- 格式:docx
- 大小:10.74 MB
- 文档页数:39
股票多因子测试入门
一、前言
做这个研究的目的,一是为了搞清楚股票策略研究中的一些细节问题,熟悉股票研究框架;二是为了大致了解各类因子的作用。
用米筐测,那里数据完善。
现在要做的,主要就是模仿,看别人的。
先学barra。
二、Barra Multiple-Factor Modeling
来自Barra Risk Model HandBook。
(一)因子(Descriptor)筛选、单位化处理、搭配
然后选择所有备用的因子descriptors(类似因子?以下简称“因子”),要先检验因子的显著性;通常,因子要显著地解释截面收益。descriptor可来自基本面数据、市场数据(价、量)、或者其他数据。因子的选择可分为几步:(1)初步筛选;有用的因子,通常要有意义,也就是make sense intuitively;其次,好的因子还必须能够对市场上的所有股票进行很好的分类,也就是完备性,不应当存在某些股票不属于因子中某一类的情况;因子需要有理论基础;(2)同时,增加一个因子如果不能增加解释度,那这个增加没有必要。
然后要将descriptors单位化;很简单,减去均值,然后除以标准差。
然后,要选择不同因子进行搭配,risk index formulation;如何搭配,主观判断起到一定作用;但是诸如cluster analysis之类的统计方法也经常用到。在单位化以后,我们用收益率对行业和descriptor进行回归,每次测试一个因子,我们要统计回归的显著性;通过上面的测试结果,我们就可以选择出有用的因子;因子搭配,是一个递归的过程,我们首先加入最显著的因子;此后,再加入另一个因子(剩下的因子里面的最显著的?),如果这个因子没有显著增加解释度,则不要这个因子,否则就加入这个新的因子(注:这里依然要考虑行业暴露)。
然后,行业因素也要考虑进行;或者叫,行业暴露。通常,一个公司只属于一个行业;但是,在美国和日本,会根据该公司营收的比例来决定各个行业暴露的权重。
(二)估计因子的超额收益
通过截面回归,计算因子收益率;因子收益也被用于计算因子间的协方差,进而得到协方差矩阵。
r_t=X_t*f_t+u_t;
r_t:某个股票的超额收益(excess returns to each asset);
X_t:各个股票对各因子的暴露矩阵(exposure matrix of assets to factors); f_t:factor returns to be estimated;
u_t:specific returns;
(注:这里的X_t,应该就是各个股票的因子值?。)
因子收益率,是一个时间序列。它代表某个因子在某段时间的收益;每个股票,由于在不同因子上有不同暴露,因此,多个因子收益率的加权,再加上该个股的specific returns,就构成了该股票在该段时间内的收益率。
(三)因子协方差矩阵
不同因子的收益率序列之间计算协方差,就可以计算出所有因子的协方差矩阵;这么做的隐形假设是,we are modeling a stable process,and therefore, each point in
time contains equally relevant information。
但是,有证据表明,因子间的相关性是在变化。stable process假设因子间的相关性是稳定不变的。因此,简单的计算协方差矩阵,不太严谨。
barra在两个方面放宽了”stable”的假设:(1)在计算协方差时,给近期数据更多权重;(2)we estimate a model for the volatility of a market index portfolio, and scale the
factor covariance matrix so that it produces the same volatility forecast for the market
portfolio as the model of market volatility(??)。
一种指数加权平均:半衰期;(没认真看;后面再说,不难)
三、数据清洗
四、因子筛选:多重共线性问题
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
因子分类:按照风格或经济含义不同,可分为收入因子、规模因子、技术因子、估值因子、统计因子等(这个不一定全面,只是作为参考)。
相关系数法:计算所有因子的相关系数,在高度相关的因子中挑选代表因子保留,保证剩余因子相关性不高,避免多重共线性(这里应该是直接计算因子值的相关性,而不是因子收益率的相关性);
主成份分析法:采用主成份分析,计算能够代表各大类因子的第一、第二、第三主成份,只取主成份因子,避免多重共线性; 多因子合成:利用QEPM(Quantitative Equity Portfolio Management)中的最大化因子IC_IR的优化方法,把同类因子合成一个大类因子,因子数据必须经过处理(Winsorize去极值,neutralize中性化,消除行业和风格因子等的影响、standardize标准化、orthogonalize残差正交化调整),因子间存在较强相关性同质性时,采用施密特正交化方法对因子做正交化处理,用得到的正交化残差作为因子去除共线性。
五、股票多因子框架(通俗版)
(一)数据清洗
数据清洗包括奇异数据的处理(去极值)、数据规范化、部分风格因子的因子载荷正交化以及缺失风险载荷的补足。
1、极值与数据规范化处理
首先对数据进行标准化,对每个个股每个时间点的数据,减去市值加权平均值,再除以简单平均标准差,就是标准化。标准化公式如下:
Xnk(std)=( Xnk(raw)-uk)/αk;
其中,uk为市值加权平均;αk为简单平均标准差。(这里,n应该是指时间,k应该是个股序号)。
Xnk(std)
极值,就是超过多少个标准差以外的,比如超过均值三倍标准差的(也就是标准化后的值大于3或者小于-3);对于极值,不能直接去掉,否则会造成数据缺失;可以采取Winsorize的方式,也可以有其他算法;这种变换,要是保证原有数据的排序(单调变换),比如,如果有两个值,分别是a1=4和a2=5,那么经过变换以后分别得到b1和b2,我们需要保证b1和b2处于相对正常的区间,同时要保证b1
极值处理完后,需要重新对数据进行标准化。
2、缺失值处理
?
(二)初步选因子:因子有效性检验
因子通常可分为三类,宏观经济因子、基本面因子、统计面因子。这些只是模糊的分类,具体,你可以开发出你想开发的任何因子。如何检验因子有效性?
1、IC法
计算因子的IC值,即本期因子值和下期实际收益率之间的相关性,截面的;有个说法是,由于因子值和收益率这两个序列并不服从一定的分布函数,所以用平时计算相关性的公式,所以用spearman秩和相关性,具体在python的scipy.stats中的spearman函数;一般来说,IC值大于0.03,这个因子有效性就不错。
相关系数有两种,Pearson correlation 和Spearman correlation(Spearman秩相关系数);对应的,IC值也有两种计算方法;Pearson法,就是我们通常所说的那种相关系数,即直接对两组数据求相关系数;Spearman法则是对两组数据的排序序号求相关系数,比如,第一组因子值是[2,1,3],对应的未来收益率是[0.2,0.3,0.1],那么,因子值的排列序号为[2,3,1],未来收益率的排列序号为[2,1,3],SpearMan相关系数就是对这两组排列序号进行求相关系数。Spearman法描述了两组数据间的单调相关程度,得出的结果也比较稳定,我更喜欢Spearman。
2、Barra法
Barra提供了一系列评价因子是否有效的方法。
(1)单因子回归(通常还要剔除行业、国家因素的影响),对该因子的回归系数进行T检验,T值的绝对值均值,均值大于2,就比较理想了;(每一时期,都有一个截面回归,得到一个T值;所有时期的T值,就可以计算出T的均值)。
(2)单因子回归,计算因子系数的T检验值,计算T值的绝对值大于2的比例;
(3)利用回归计算出因子收益率,计算因子年化收益率、年化收益率波动率、以及两者的比值;(因子收益率:我的理解是,每一期都有一个下期收益率对当期因子值的截面回归;回归得到的因子参数,就是因子收益率;每一期的因子收益率连续复利起来,就得到了一个连续的累计收益率曲线,剩下的计算年化收益率、最大回撤等就都不是问题了。)
(4)计算因子收益率与基准收益率(通常为指数)的相关性,相关性越低越好。
(5)因子自稳定性检验,计算自稳定系数(我的理解是,当期因子值和下期因子值之间的相关系数);这个系数大于0.9比较不错,小于0.8 就不好;(其实,很好理解,就跟原始价格和均线一样,均线变化更加平滑,自相关系数肯定比原始价格高,均线看起来当然也更加稳定;由稳健的指标得出的信号,自然也稳定);
3、因子排序法
将因子分档,看看每一档的走势;不过这种算法有问题,因为每一档因子在其他因子上的暴露是不确定的。(也就是,控制变量法更加合理)。
(三)进一步选因子:排除多重共线性
多重共线性,也就是不同因子间相关性高;对于这种,有两个方法进行处理,一是根据因子有效性进行排序,然后保留最有效的一个、剔除其他的;第二个,就是把相关性高的因子合成为一个因子,以保留更多信息。
因子合成,可采取等权法,历史收益率加权法,历史信息比例加权法,PCA法(主成份分析)。
(四)多因子选股:各显神通的时候到了
把多个因子值,进行加权;
加权方法,有IR法(参考,Quantitative Equity Portfolio Management,modern
techniques and applications)、WLS收益率加权法、各种机器学习深度学习。
六、因子检验:反转因子
关键点:数据清洗,主要有异常值处理(MAD法识别异常值,并做缩尾处理?);动量因子要中性化,比如市值、行业这两个维度。