偏最小二乘回归 投影变量贡献怎么用python计算 偏最小二乘回归分析_回归分析


大家好!

上一节我们给主成分回归开了一个头,这一节我们会继续介绍它的有关内容,并且同时会介绍另一种新的回归方法:偏最小二乘回归。这一节的理论性也比较强,主要关注了相关回归的理论上的性质与相关证明。

提供之前的笔记:

  • 回归分析|笔记整理(1)——引入,一元线性回归(上)
  • 回归分析|笔记整理(2)——一元线性回归(下)
  • 回归分析|笔记整理(3)——多元正态分布理论(上)
  • 回归分析|笔记整理(4)——多元正态分布理论(中)
  • 回归分析|笔记整理(5)——多元正态分布理论(下)
  • 回归分析|笔记整理(6)——多元线性回归(上)
  • 回归分析|笔记整理(7)——多元线性回归(下),违背基本假设的情况
  • 回归分析|笔记整理(8)——变量选择
  • 回归分析|笔记整理(9)——带约束的线性回归,多重共线性
  • 回归分析|笔记整理(A)——岭回归,主成分回归(上)

我们开始本节的内容。

目录

  • 主成分回归(下)
  • 主成分的理论性质
  • 主成分回归的理论性质
  • 偏最小二乘回归
  • 基本思想与算法
  • 交叉验证

主成分回归(下)

主成分的理论性质

我希望你没有忘记之前我们的内容,页没有忘记什么是主成分。我这里把主成分回归的表示放在这里。

并且有



那么主成分有什么比较好的性质呢?在介绍它之前,我们首先需要引入下面这个性质。

Proposition 1:

,并设

的特征根为

为对应的标准正交特征向量。那么对于任意的向量

都有

,

在这之前,我们首先需要介绍矩阵的谱分解。我们知道对于一个特征对


(一个特征根与其对应的特征向量),有


。因此在这里我们就有


,这样的话,如果我们把


个等式拼在一起,就有


,然后记得


是正交矩阵,所以左右乘上


就可以得到


,写开就是


=

那么根据这个结果,如果你要计算它的Rayleigh商(也就是


,正好数值线性代数也在学这个2333),那么左右显然要乘上对应的东西,所以有


。虽然


是任意向量,但是注意到这里


是一系列的正交向量。所以我们可以设


,那么代回去就会有


你看上去感觉挺麻烦的,但是你只看乘式的左边两个,你会发现只要


中的


不同,你的这一项就是0。所以实际上只会保留一个


,同理类似的右边也只会保留一个


。最后容易得到这个乘式的结果就是


类似的可以得到


,这样的话你计算的结果其实就是


,这已经很明显了,每一个


其实就是对应特征值


的权重,也就是说这个式子实际上可以写成


的形式,并且还有


的结论。所以这样的话,最大最小值也自然不难得到就是



这个命题也是高等代数里的一个很重要的结论。根据矩阵的谱分解,你也不难得到下面的结论

在做了正交变换后,设计矩阵等就会有很好的性质,我们往下看。

这是上面性质的直接推论。

这也很容易,注意到


,也就是说矩阵


是相似的。而相似变换是不改变特征根的。


当然了,也就是因为这个,所以相当于可以得到


,也就是说


其实可以用来衡量方差的比例(就是说,


越大,因为和是一定的,所以相当于它在和式中的比例越大,那么自然是说它占方差和的比例越大,我们理解为是它所具有的信息很多)。因此我们称


为第


个主成分


方差贡献率,而称

为主成分


累积贡献率

的相关系数为

你应该没忘记相关系数的公式


。那么注意到


,所以上面的式子就是


。根据矩阵的谱分解,我们可以得到


代入即可。

为什么我们需要


?很简单,因为虽然这样回归可以降维,但是其

原本的解释意义就消失了。但是,如果这个相关系数很大那说明什么?就说明

的意义很大程度上可以被


解释。因此它的绝对值大小就刻画了这个

主成分的主要意义以及来源

事实上,通过上面的解释,我们有理由相信它有和之前的方差贡献率相似的性质。那么我们观察一下。首先根据这个结论我们可以得到


,那么我们对它求和,就可以得到



接下来,注意到矩阵的谱分解


,所以实际上如果我们来观察一下它的第


元,就会有


。有没有发现这就和那个和式一模一样了?所以我们就可以得到下面这个结论。


因此,我们可以实际上使用


来衡量前


个主成分

对原始变量

的方差贡献率。它就反映了提取的主成分反映原始变量的程度。

最后还有一个很有趣的结论

这就是Proposition 4的直接推论。

主成分回归的理论性质

之前我们主要关注的是主成分本身,而之后我们更多会关注回归,也就是回归所对应的一些统计性质。因为这里又会涉及到较多的标记,所以我们会简要重述一下主成分回归的背景。

我们知道原始回归模型为


,其中


是中心标准化之后的设计矩阵。那么显然相关阵就是


。并且我们会设


的特征根为


,对应正交化的标准特征向量为


。我们记


,令


,就会得到典则形式



你应该已经熟悉


,而


的对角阵又正好衡量了每一个主成分在多次实验中取值的变化大小(想想为什么?不熟悉的看看第A节的最后)。所以如果某一个特征值很小,就说明对应的主成分的变化很小,那就和常数项没区别了。所以若


,那么只需要把


从模型中剔除掉(也就是直接让估计值为0),对前


个系数用最小二乘,最后,我们对矩阵分块



都是取对应的前


个分块,就可以得到最后的估计


简要重新说了一遍,我们开始介绍它的相关理论部分。

这里我们注意到上面的公式

因为


实际上是


取了前


列,因此容易得到


,所以代回去就会有


(别忘了特征值和对应特征向量是给

的)

虽然表达式挺复杂,但是我们关注一下中间的部分。注意到


,再把左右两个矩阵相乘可得


所以右边再乘一个


,就可以得到最后我们的结果。


接下来的性质一定程度上揭示了它与岭回归的相似性。

Proposition 8:

,那么

这很简单,根据上面的表达式可以得到


,而注意到范数的正交不变性(这个技巧我们上一节才用过),我们有


这个不等式的成因是


显然会给


带来更多的分量,而这显然会使得长度增加。


通过这个性质可以知道,和岭估计类似,主成分估计也是一种压缩估计。同样的,因为这个,所以我们还可以知道下面的性质。

是有偏估计

最后的性质是有关于均方误差的,和岭回归类似。也奠定了它的应用价值。

Proposition 10:
当设计阵病态时,适当选择

可以使得

我们在上一节介绍过


的多元表示,这里我们应用一下,首先注意到新的估计的


中,最后的几个估计量是被人工设置为0的,所以我们有



我们注意上一节的公式


,所以在这里,我们容易得到


(估计值没有

这个分量,但是真值当然是有

的)

因为设计阵病态的时候,


很大,这就会导致第二项变成负的,因此这就足够说明结论了。当然了,这个结论一定程度上也说明了,如果设计阵性质很好,那么主成分回归不一定会有良好的效果。


偏最小二乘回归

基本思想与算法

偏最小二乘回归(PLS)其实解决的是一个比较实际的问题:高维数据预测问题。换句话说就是自变量的个数大于观测值的个数。你可能一开始会觉得不可思议,但是在经济学中这是很常见的。

还是从理论上来说,如果有


组数据


,并且满足关系式


一般情况下,我们确实只需要求一个最小二乘回归,估计出


就好。但是在高维意义下,


是不可逆的,所以所有的回归方法其实都失效了。因此我们需要换一种思路。


在上面的这个式子中我们可以看到,归根到底它就是一个多元线性函数。给定


,我们需要确定系数


,然后就可以得到对应的因变量。别忘了我们的目的是为了预测,那么如果我们的函数形式确定下来了,还需要那么多自变量吗?自然就不再需要了。


可能有的人会想到才说的主成分回归。但是其实我们可以看出来它有一个缺陷,就是它归根到底是选择了自变量中最具有代表性的几个,可是和因变量一点关系都没有啊。而偏最小二乘的基本思路就是——考虑与因变量的相关性情况下的最小二乘算法。在这种情况下,

我们用一元的最小二乘举例子,设模型为


,并设有一系列的数据


。注意到在数据做中心标准化之后,对应的参数估计结果其实就是


那么这个是一元的,归根到底我们可以理解为这是


针对自变量


做回归的时候,所得到的

最好的结果。那么在多元的情况呢?自然我们照猫画虎,可以考虑用类似的公式

来表示


对每一个单独的自变量


做回归的结果。同样的,你还可以发现它本质上是


的倍数,因此理论来说,我们给每一个对应的这样的估计做线性组合,也就是说和式


就应该是我们想要的。问题在于找一个权。


一个最简单的权是


,因为如果自变量


比较重要,那么它的方差就应该比较大(因为数据已经中心标准化了),所以我自然希望它的权值大一些。这样的话我们的自变量就变成了


,这也就是我们想要的线性函数。


如果我们设


,那么对应的观测值就是


。这样的话,这个实际上就是一个好的自变量,因为它是原来自变量的线性组合,同时又考虑了与因变量


的相关性。


我们再回头看看,这个式子的每一维都是一元情况下的最小二乘。所以实际上应该包含了很多信息了。但是我们也知道最小二乘还是会有一定的残差平方和,也就是说实际上还没有成功的保留好所有的信息。因此我们的想法就是设置这个新的自变量为我们想要的,然后做残差,这样的话残差就不会包括之前的信息,进而就可以继续按照上面的思路进行迭代。

现在,将


作为自变量,对


回归,可以得到


,这就是使用这个新自变量后得到的新的回归结果,考虑用它做预测,得到


(注意

是一个数)

残差向量也就自然是


。同样的,如果我们将每一个原始的自变量



做一次回归,也会得到


以及对应残差向量


。那么这样的话,对应的


就是新的观测数据,类似还可以求得


,最多可以做到


。这些新的自变量就可以用普通的最小二乘做回归。


归根到底,偏最小二乘回归的本质也是找到原始的自变量的一个线性组合,满足它与因变量



也有一定的相关性。找到对应的权重之后,让每一个自变量减去这个权重,一定程度上就相当于去除了这一维度的信息。一直做下去,直到自变量个数达到了目标为止。

注意到,回归方程的本质是因变量在自变量所张成的线性空间上的投影,所以我们如果按照投影矩阵的定义来写出


的投影阵,容易得到


并且容易得到,第


步迭代得到的


就是



上的投影。


通过上面这一段话,你应该明白应该如何写出这个算法的代码了。不过下面这个结论告诉我们有一个更简单的思路。

Proposition 11:

,那么有

(这个结论在数值线性代数中会经常提起,我们不再证明)

所以实际上,如果我们按照这样的方法初始化,然后只需要每一步设置


,再对


做普通最小二乘得到


,最后的目标其实就是选择合适的


,因为我们的目的是预测,所以我们并不需要知道


的回归结果是什么,因此这个算法在复杂度上就少了很多。


交叉验证

交叉验证在机器学习中也是非常常用的验证模型好坏的算法。这里我们说的主要是单点交叉验证。也就是说假设我们删除观测值


,这样的话剩下的观测数据我们用


来表示。交叉验证的意思就是——

用这些剩下的观测数据来对删除的那个数据做预测。这里显然我们是要验证偏最小二乘回归,所以我们自然使用PLS来做预测。

需要交叉验证的意思是,我们的算法虽然可以做到第


步,但是实际上可能我们并不需要那么多,那么究竟在到达第


步之前,哪一步结果是最好的,其实是有待商榷的。因此交叉验证的思想就被用在这里帮助我们选择模型了。


我们在上面说,去掉第


组观测数据做一次交叉验证,就会在第


组数据上产生一个残差


。所以我们一般用式子


来反映第


步预测方程的好坏。当然了,选择的原则自然是使得这个值最小了。


到此,我们算是结束了偏最小二乘回归的内容。

小结

这一节我们主要关注的是两种回归方法——主成分回归和偏最小二乘回归。这两种方法的目标都是为了降维,但是出发点有所不同。实际的操作中,也没有定论中一定有一种方法是比另一种更好的,所以在真正需要对数据做统计分析的时候,还是需要对各种方法都有所了解才行。