首先谈谈什么是alpha,什么是beta。

在MIT MFE的某个课上有一堂课:

一个Portfolio 的收益如果对于市场因素做回归的话,比如:

R_p=eta X+alpha

我们定义beta为市场的部分,而alpha定义为与市场无关的部分。

这个「强词夺理」的定义其实已经用到了线性回归的思想。回归不仅仅是一次函数y=kx+b这么简单肤浅,以线性代数的视角去看的话,一个量对另一个量作线性回归本质上探讨「解释关系」,但注意两点,这种「解释关系」

1.只是数量上的解释关系,没有内在的逻辑。

就像神经网路的「解释关系」似乎很好,但内在的原因很难被说明白。又比如,某商店的店主发现泳衣的销量和雪糕的销量具有非常好的线性相关关系,但实际上只是因为都是夏天产品的缘故,这种线性相关的例子,和长得帅的程度正相关于追求他的女孩子的数目是完全不同的。说简单点,一个量能预测另一个量,并不存在一定的因果逻辑,当然也有隐变数的说法(例如夏天),当然了,再深奥点,量子力学的某些学派甚至要声称,一切以数据来评判的话,这个世界本来就不存在逻辑因果。

2.得到的系数和关系都是线性相关关系。

举个例子,(x,y)满足 x^2+y^2=1 ,假设有很多样本点(xi,yi),Pearson线性相关系数应该肯定是接近零的,但很显然,y严格且仅仅与x相关。

现在聊回来,线性代数中讲究Hilbert空间,万事万物都可以视作向量。

谈到向量自然会想到平面向量基本定理啊,有这个思想的数学那就太多了啊,Taylor展开,Fourier展开,Laplace展开,以及各种回归了,随便哪一个拿出来对理科生来说都是如雷贯耳。

这里面有个最简单的展开就是多远线性回归了。如开头最简单的例子所说,公募基金经理们关注资产组合的收益率与市场的相对值,就算亏了,但是比大盘亏得少,这也是可以接受的。所以自然就希望 R_P 不能严格与市场挂钩,一定要有alpha的那一部分。

R_p=eta X+alpha 这个公式实际上是在说,资产组合的一部分会受到市场X的影响,影响的程度用beta来衡量,MD听说同事的老婆也想来中金公司,开玩笑说,那不好啊,你们家的财产跟中金的beta又变大了,说的就是这个意思。

我们当然希望能找到一些有效的alpha,并帮助我们有效的预测资产组合的收益率 Rp .

于是乎,多因子模型粉墨登场。

因为多一个公式,少一个观众的理论,我们无法避免公式,但可以简化公式,把理论力学课中的张量(tensor)计算符号我们可以借鉴过来:

sum_{i}{a_i}{b_i} 可以简记为 a_ib_i ,也即有相同的下标表示要求和。

这下我们来写公式就方便多了:

R_p=w_ir_i ,i=1,2,...,n. n 是 number of assets. 通常是股票的数目。

R_p 资产组合的收益, w_i 是每个asset的权重, r_i 是每个asset的收益率。

r_i=X_{ij}f_j+u_i ,j=1,2,...,k k是number of factors. 通常是选取的因子数。

以多元回归的视角来说,X_{ij} 是回归系数,代表了 r_i 可被 f_j 解释的程度,行里话讲名字就多了去了,比如风险暴露。(这里吐槽一下这众多的名称,做学问请不要随意取名,要取就要取得恰如其分且统一沿用)。

于是乎,

R_p=w_ir_i=w_i(X_{ij}f_j+u_i)=w_iX_{ij}f_j+w_iu_i=X_j^Pf_j+w_iu_i

可能有人已经明白,张量计算符号的好处不仅仅是为了省掉一个sigma而已。

然而我看过太多的券商的金工文章抄来抄去都没抄明白一件事,总是在大谈同方差性和异方差性的问题,让人糊里糊涂。依我看,喜欢说专业术语的蒙混过关的,基本都是抄别人的。

这里面要谈随机误差和系统误差。也即方差(variance)与偏差(bias)的关系。

这个词,我高中的时候物理课本上接触过,很可惜那个时候老师自己也搞不明白,我也就一直没搞懂。

我来举个例子吧。对于一个预测模型,y=sin(x)。实际的样本观测值由于误差的原因肯定不会是这样的:

代码:

x=np.random.rand(1000)
y1=np.sin(x)
plt.plot(x,y1,r*)

而很可能是这样的:

error=np.random.norm(size=1000,loc=0.0,scale=1.0),

代码:

error=np.random.norm(loc=0.0,scale=1.0,size=1000)
y2=np.sin(x)+error*0.2
plt.plot(x,y2,r*)

这个你会发现每个样本点的误差都是正态分布生成的,也就说,模型本身是准确的,但是由于测量的随机误差,总是会有一些差别,但这个差别是同性的,所谓的同方差性。这个差别,我们给他定义,叫做随机误差。

但如果模型有些不准确呢?比如研究的到的模型是y=sin(x),但这个物理现象的背后的规律应当是y=0.99*sin(x),图的差别就又不一样了。你来感受一下:

这个时候误差会在某些点很大,但某些点很小取决于样本点。这是所谓的异方差性。这是由于模型本身不够完美导致的。

我记得知乎上有人讨论过方差(variance)和偏差(bias)的区别,我认为是类似的。我借用过来:

机器学习中的Bias(偏差),Error(误差),和Variance(方差)有什么区别和联系??

www.zhihu.com
图标

因此,一个合理的多因子模型的写法应该是这个样子的:

R_p=w_ir_i ,这是定义没有问题。

r_i=X_{ij}f_j+u_i 应当改为:

r_i=ar{r_i}+epsilon_i=X_{ij}f_j+u_i+epsilon_i ,

其中 epsilon_i 的具有同方差性,而 u_i 是要成为完美模型还有待完善的部分,可以称作偏差,或者模型的偏见bias, ar{r_i} 是完美模型的预测收益率, r_i 是真实的收益率。

如果用OLS(最小二乘法)来确定 回归系数f_j (注意 r_iX_{ij} 都是已知的),可以直接套用公式:

Andrew.Ng在ML课程里也谈到了,多元线性回归的参数估计公式:

	heta=(X^TX)^{-1} X^TY ,跟这个是一致的。

然而,这是没有考虑bias的情况,如果有异方差的 u_i 项存在的话,应当使用加权最小二乘法,以保证残差项总是同方差的。这里可以参考文档的讲解。

【图文】多元线性回归模型常见问题及解决方法_百度文库?

wenku.baidu.com

我们直接套用广义最小二乘法:

国君的研报也就说了这么回事:

到这里我们也就得到了多因子模型收益率 f_{j} 的估计量了。

在谈到下一部分内容之前,我特别要提一下MIC这个概念。全名,Maximum Infromation Coefficient.这个概念是个很新潮的概念,用来探索两个变数之间的相关关系的很好的一个量。是由哈佛大学的一个生物系的哥们弄出来的,发了两篇CNS吧,好像他老婆也跟著沾光了,也发了一篇理论的Journal of Machine Learning.

这个MIC什么意思呢,他解决了前面提到的线性相关系数的局限性。要知道,这个世界存在线性相关关系的情况真的是太少了(关系也可以理解为一种映射,一种变换,一个矩阵),MIC的定义决定MIC的唯一标准是这两个量真的很相关。譬如他的论文里就提到了,x 与 sin(x)在有随机误差的样本总体的情况下依旧能够判别出来,这两个量是有很大的MIC值的。

但是你用线性相关系数就看不出来这层关系。

这个事情的前提是,我们选好了一个靠谱的多因子模型了。你当然可以直接使用barra的模型,但是即便是barra的模型,我们依旧可以在那基础上改善残差项,分裂出新的alpha因子出来。

另外一个很重要的方面就是因子之间的多重非线性,这个我们放在下一篇说。

推荐阅读:

相关文章