1 多因变量线性PLS
在多元线性回归模型中,若一组自变量X=(x1,x2,x3,⋯,xi,⋯xp)和一组因变量Y={y1,y2,y3,⋯,yj,⋯,yq},当数据样本满足高斯-马尔科夫假设条件时,由least squares(最小二乘)有:Y^=(XTX)−1XTY,其中Y^是Y的线性最小方差无偏估计量,但是要求矩阵XTX可逆。
而当X中样本点个数比变量个数(维数)明显过少或变量存在严重多重共线性,则最小二乘估计量失效,并会引发一系列问题。而Partial Least Squares Regression提出采用分成提取的办法解决如上问题,我们可以知道PLS的几个突出特点:
①在自变量存在严重多重共线性时可以进行回归建模;
②在样本点个数比变量个数(维数)明显过少时可以进行回归建模;
③PLS模型可以识别系统信息与噪声;
④PLS模型中,每一个自变量xi的回归系数容易解释;
⑤PLS最终回归模型中包含原有的所有自变量。
1.1 算法设计思想
设一组自变量X=(x1,x2,⋯,xi,⋯,xp)和一组因变量Y={y1,y2,⋯,yj,⋯,yq} (X是n×p矩阵,Y是n×q矩阵,其中n是样本点数即行数)即有p个自变量和q个因变量,为了探索因变量和自变量的统计关系,观测出n个样本点,由此构造出样本数据表X和Y,PLS分别在X与Y中提取出各自的潜变量t1和u1,它们分别为自变量与因变量的线性组合(也就是说t1是x1,x2,⋯,xi,⋯xp的线性组合,u1是y1,y2,⋯,yj,⋯,yq的线性 组合),二者满足条件:
①两组潜变量分别最大程度承载自变量与因变量的变异信息;
②二者之间的协方差最大化(相关程度最大)。
在提取第1个成分t1和u1后,PLS分别进行X对t1的回归与Y对u1的回归。若回归方程已达到满意精度,则算法终止;否则,将利用Y被u1解释后的残余信息与X被t1解释后的残余信息(残差矩阵)实施第2轮成分提取,如此循环下去,直到一个较满意精度算法终止。如果最后X总共提取m(即我们假设)个成分t1,t2,⋯,tm,PLS最后进行yj(j=1,2,⋯,q)对t1,t2,⋯,tm的回归得到回归方程,最后将此回归方程中的t1,t2,⋯,tm均用x1,x2,⋯,xi,⋯xp替换,最终得到yj(j=1,2,⋯,q)关于原来自变量x1,x2,⋯,xi,⋯xp的回归方程。
1.2 计算推导
在PLS进行之前,首先要进行预备分析,目的是判断自变量(因变量)是否存在多重共线性,判断因变量与自变量是否存在相关关系,进而决定是否需要采用PLS方法建模,具体计算方法:记矩阵Z=(X,Y),求Z的各列数据之间的简单相关系数。然后考虑是否采用PLS,若采用:
①样本数据X与Y标准化预处理
②记t1是X的第1个成分有t1=Xw1,其中w1是X的第1个轴(单位列向量
即∥w1∥=1)。
u1是Y的第1个成分有u1=Yv1,其中v1是X的第1个轴(单位列向量
即∥v1∥=1)。
t1、u1为列向量
,行数为n,即正好是样本集合数。
w1为列向量
,行数为p,即正好是自变量个数
v1为列向量
,行数为q,即正好是因变量个数
t1和u1满足(1)中两个条件则有:
变异信息最大
:Var(t1)→max,Var(u1)→max
相关程度最大
:r(t1,u1)→max
综合可得协方差最大
:Cov(t1,u1)=r(t1,u1)Var(t1)Var(u1)→max
由于n1<Xw1,Yv1>=Cov(t1,u1)且n为常数,则:
max<Xw1,Yv1>=(Xw1)TYv1=w1TXTYv1s.t{w1Tw1=∥w1∥2=1v1Tv1=∥v1∥2=1
根据拉格朗日算法有:
f=w1TXTYv1−λ(w1Tw1−1)−μ(v1Tv1−1)
对f分别求关于w1,v1,λ,μ的偏导且置0(求),有:
⎩⎪⎪⎪⎨⎪⎪⎪⎧∂w1∂f=XTYv1−2λw1=0∂v1∂f=YTXw1−2μv1=0∂λ∂f=−(w1Tw1−1)=0 ∂μ∂f=−(v1Tv1−1)=0
由上式可推出:2λ=2μ=w1TXTYv1=(Xw1)TYv1=<Xw1,Yv1>
记θ1=2λ=2μ=w1TXTYv1,则θ1是优化问题的目标函数且使是θ1达到最大必须有有:
{XTYv1=θ1w1YTXw1=θ1v1
将上面组合式结合得:
XTY(θ11YTXw1)=θ1w1⇒XTYYTXw1=θ12w1
同理可得:
YTXXTYv1=θ12v1
可见,w1是矩阵XTYYTX的特征向量,对应的特征值为θ12。θ1为目标函数值且为最大。则w1是XTYYTX的最大特征值
θ12的单位特征向量(列向量)。同理,v1是YTXXTY最大特征值
θ12的单位特征向量(列向量)。
我们通过求得w1和v1之后即可得到第1成分:
{t1=Xw1u1=Yv1
由(1)式我们可以进一步推导出:θ1=<t1,u1>=w1TXTYv1
然后分别进行X、Y对t1的回归(这里Y对t1的回归):
⎩⎪⎨⎪⎧X=t1p1T+X1Y=u1q1T+Y1∗Y=t1r1T+Y1
其中,回归系数向量:
⎩⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎧p1=∥t1∥2XTt1q1=∥u1∥2YTu1r1=∥t1∥2YTt1
(计算方法:将X=t1p1T+X1转置后右乘t1T)
另外,X1、Y1则为X、Y的残差信息矩阵。(回归系数向量可利用PLS回归性质推导?)
在PLS方法中,我们称w为模型效应权重(Model Effect Weights),v为因变量权重(Dependent Variable Weights),p为模型效应载荷量(Model Effect Loadings)。 模型效应指的就是X即自变量O(∩_∩)O哈哈~
得分向量t,载荷向量p,权重向量w.
③用残差信息矩阵X1、Y1取代X、Y,求第2个成分t2、u2和第2个轴w2、v2,即:
{t2=X1w2u2=Y1v2
θ2=<t2,u2>=w2TX1TY1v2
w2是对应于矩阵X1TY1Y1TX1最大特征值θ2的特征向量(列向量),v2是对应于矩阵Y1TX1X1TY1最大特征值的特征向量(列向量),于是回归方程:
{X1=t2p2T+X2Y1=t2r2T+Y2
其中,回归系数向量:
⎩⎪⎪⎪⎨⎪⎪⎪⎧p2=∥t2∥2X1Tt2r2=∥t2∥2Y1Tt2
X1=t2p2T+X2⇔X1T=p2t2T+X2T⇔X1Tt2=p2t2Tt2+X2Tt2⇔X1Tt2=p2t2Tt2⇔X1Tt2=p2t2Tt2
④如此利用剩下的残差信息矩阵不断迭代计算,我们假设X的秩为m(即可以有A个成分):
{X=t1p1T+t2p2T+⋯+tmpmT+XmY=t1r1T+t2r2T+⋯+tmrmT+Ym
等价于
⎩⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎧X=(t1t2⋯tm)⎝⎜⎜⎜⎛p1Tp2T⋮pmT⎠⎟⎟⎟⎞+Xm=(t1t2⋯tm)(p1p2⋯pm)T+XmY=(t1t2⋯tm)⎝⎜⎜⎜⎛r1Tr2T⋮rmT⎠⎟⎟⎟⎞+Ym=(t1t2⋯tm)(r1r2⋯rm)T+Ym
而t1,t2,⋯,tm可表示成X= { x1,x2,⋯,xp } 的线性组合
其中Ym为第m个残差矩阵,提取的主成分个数
m<(X)
由于wh∗=k=1∏h−1(E−wkpkT)wh & th=Xwh∗ (在多因变量线性偏最小二乘法性质中)则有:
Y=t1r1T+t2r2T+⋯+tmrmT+Ym =(Xw1∗)r1T+(Xw2∗)r2T+⋯+(Xwm∗)rmT+Ym =X(i=1∑mwi∗riT)+Ym
令B=i=1∑mwiriT即为PLS回归方程的回归系数向量,有:
Y=XB+Fm
1.3 PLS性质
根据
{XTYv1=θ1w1YTXw1=θ1v1
和
{t1=Xw1u1=Yv1
可以得到:
⎩⎪⎪⎪⎨⎪⎪⎪⎧th=Xh−1whuh=Yh−1vhwh=θh1Xh−1TYvh=θh1Xh−1Tuhvh=θh1Yh−1TXwh=θh1Xh−1Tth
①轴w1,w2,⋯,wm之间相互直交
②成分t1,t2,⋯,tm之间相互直交
③thTXl=0(l≥h)
④phTwh=(∥th∥2thTXh−1)wh=∥th∥2thT(Xh−1wh)=∥th∥2thTth=1
⑤轴wh与后续回归系数向量正交即whTpl=whT∥tl∥2Xl−1Ttl=0
⑥(重要)
∀h≥1,有Xh与X的关系式:
Xh=Xk=1∏h(E−wkpkT)
其中E为单位矩阵
证明(数学归纳法):
当h=1时,X1=X−t1p1T=X−Xw1p1T=X(E−w1p1T)
设在h=k时成立,则证h=k+1时也成立:
Xk+1=Xk−tk+1pk+1T=Xk−(Xkwk+1)pk+1T =Xk(E−wk+1pk+1T) =[Xh=1∏k(E−whphT)](E−wk+1pk+1T)
则得证。
⑦任一成分th是原自变量X的线性组合即:
th=Xh−1wh=Xk=1∏h−1(E−wkpkT)wh=Xwh∗
其中
wh∗=k=1∏h−1(E−wkpkT)wh=whk=1∏h−1(E−wkpkT)=wh{(E−w1p1T)(E−w2p2T) ⋯(E−wh−1ph−1T) }
E为单位矩阵。
【编程计算问题】
初始化chg=E
h=1 求w1∗=w1×(E−O)=w1×chg
h=2 chg发生变化,chg=chg×(E−w1p1T),求w2∗=w2×chg
h=3 chg发生变化,chg=chg×(E−w2p2T),求w3∗=w3×chg
以上证明过程(王惠文书有)。
1.4 交叉性检验
由于PLS过程中后续的成分已经不可以为解释Y而提供更有意义信息时,采取更多的后续成分只会破会回归模型的统计趋势,引导错误回归结论,所以PLS并不需要构造出这些全部的成分进行回归建模,而可以采用PCA方法(Principal Component Analysis)
,可以截取m个成分(m<(X)),我们仅仅使用这m个成分就能得到一个性能较好的回归模型。
在PLS建模中m取多少合适,这可以考察增加1个新成分后,能否对PLS模型的预测能力有明显的改善来取舍。
n个样本点分成2步使用:
①排除某个样本点i的样本点集合(n−1个样本点),用这n−1个样本点使用h个成分采用PLS得到Y关于X的一个回归方程。
②把刚才排除的样本点i代入刚才得到的Y关于X的回归方程,得到yj(j=1,2,⋯,q)在样本点在i上的预测值
y^hj(−i)。
对于每一个i(1=1,2,⋯,n),重复以上①②步,则可以得到yj的预测误差平方和PRESShj,有:
PRESShj=i=1∑n(yij−y^hj(−i))2
并且Y的预测误差平方和
PRESShj,有:
PRESSh=j=1∑qPRESShj
这里我们对PRESSh做如下解释:
PRESSh是从所有n个样本点中舍弃某个样本点x(i)=(i=1,2,⋯,n)之后,用剩余的n−1个样本点拟合出含h个主成分的回归方程,再对在x(i)=(i=1,2,⋯,n)点上对因变量进行预测的预测误差平方和。
这里对SS(h−1)做如下解释:
SS(h−1)是用所有n个样本点拟合出的含h−1个主成分的回归方程的拟合误差平方和。
我们把增加一个样本点所构成的误差我们称之为扰动误差
,而扰动误差决定回归方程的稳健能力即PRESShj的值,扰动误差越大,稳健能力越差,就会增加PRESShj的值。
另一方面,我们再采取所有样本点集合,多元回归
出提取h个成分的回归方程,记第i个样本点的拟合值
y^hj(i),则可以得到yj的误差平方和SShj,有:
SShj=i=1∑n(yij−y^hj(i))2
并且Y的误差平方和
SShj,有:
SSh=j=1∑qSShj
一般有:
PRESSh>SSh & SSh−1>SSh
其中SSh−1是用全部样本点多元回归
出的具有h−1个成分的回归方程的拟合误差,我们比较PRESSh和SSh−1,PRESSh是增加了1个成分
th但是导致回归方程的稳健能力改变,而在一定程度上回归方程的稳健能力即h个成分回归方程的扰动误差
小于h−1个成分回归方程的拟合误差
,则认为回归方程的稳健能力得到提高即新的PLS得到的回归方程的预测精度明显改善,故PRESSh/SSh−1越小越好。由于在SIMCA-P软件中认为:
SSh−1PRESSh≤0.952
即当PRESSh≤0.952SSh−1时,增加新的成分th有效。
我们将上面的PRESSh/SSh−1检验标准进行改进得到交叉有效性的定义,得到对每一个因变量yj有:
Qhj2=1−SS(h−1)jPRESShj
则对于Y,有:
Qh2=1−j=1∑qSS(h−1)jj=1∑qPRESShj=1−SSh−1PRESSh
交叉性检验标准:
①Qh2≥1−0.952=0.0975时,增加成分th是有效的,回归模型得到显著改善。
②∃k∈{1,2,⋯,q},有:Qh2≥0.0975。
Reference
- 王惠文.偏最小二乘方法原理及其应用
- 郭建校. 改进的高维非线性PLS回归方法及应用研究[D]. 天津大学, 2010.