一、概述
对于行业而言,其因子收益率很好计算,就是属于A行业的所有股票的平均下期收益率减去其他行业的所有股票的平均下期收益率;从投资组合的角度看,就是等权做多A行业的股票,等权做空非A行业的股票。
那么对于大多数因子而言,一般是数值变量,不能像估计行业因子收益率那么简单;类似行业因子收益率,可以用在B因子暴露最高top10%的股票平均下期收益率减去在因子暴露最低bottom10%的股票平均下期收益率;从投资组合的角度看,就是等权做多在B因子上暴露前10%的股票,等权做空在B因子上暴露后10%的股票。
但是这种因子收益率有很多缺点。第一,只用了少部分的股票,没有利用所有股票的信息;第二,没有控制这个投资组合在其他因子上的暴露。我们期待构建一个投资组合,其在B因子上暴露是1,在其他因子上暴露为0;这个投资组合在下期的收益率就是B因子的因子收益率,因为他在其他因子上的暴露为0,因此这个因子收益率也是纯因子收益率。
二、数据处理
因子暴露应该为标准化之后的值。假设
是股票下期收益率,
是当期某因子的暴露值,从回归的角度来讲,因子收益率应该等于
系数
(因子收益率)大小和x,y的大小均有关,x越大,因子收益率的数值越小。为了因子间的因子收益率可比,需要x标准化之后无量纲,
因子收益率的量纲和y的量纲一致,都是收益率。
三、单因子情况
估计纯因子收益率也很简单,就是用回归的方法即可,既可以调用python包,也可以直接用矩阵相乘,
窦福成:OLS在python中的四种实现方式zhuanlan.zhihu.comOLS对于普通最小二乘的估计为
# 数据如下
# X_standard 是因子标准化的暴露值 均值为0 方差为1
size
000001 1.644851
000002 0.088911
000003 -1.244752
300001 0.31118