偏最小二乘回归分析

在实际问题中,要研究两组多重相关变量间的相互依赖关系时,可使用的方法有:经典多元线性回归分析(MLR)、主成分回归分析(PCR)、偏最小二乘回归分析(PLS)。
当两组变量的个数很多,且都存在多重相关性,而观测的样本数又较少时,用PLS建立模型具有MLR等方法所没有的优点。
PLS在建模的过程中集中了主成分分析、典型相关分析、线性回归分析方法的特点,除了能提供一个合理的回归模型外,还可以提供一些更深入的信息。

1. 偏最小二乘回归分析概述

假定p个因变量 y 1 , ⋯   , y p y_1,\cdots,y_p y1,,yp与m个自变量 x 1 , ⋯   , x m x_1,\cdots,x_m x1,,xm均为标准化变量。自变量组合因变量组的标准化观测数据矩阵分别为 A n × m , B n × p \bm{A}^{n\times m},\bm{B}^{n\times p} An×m,Bn×p,偏最小二乘回归分析建模的具体步骤如下:

  1. 分别提取两变量组的第一对成分 u 1 , v 1 u_1,v_1 u1,v1,代表自变量和因变量的线性组合 u 1 = ρ ( 1 ) T X   , v 1 = γ ( 1 ) T Y u_1=\bm{\rho^{(1)T}X}\ ,v_1=\bm{\gamma^{(1)T}Y} u1=ρ(1)TX ,v1=γ(1)TY为了回归分析的需要,要求:① u 1 u_1 u1 v 1 v_1 v1各自尽可能多地提取所在变量组的变异信息;② u 1 u_1 u1 v 1 v_1 v1的相关程度达到最大。
    由两组变量集的标准化观测数据矩阵 A \bm{A} A B \bm{B} B,可以计算第一对成分的得分向量,记为 u ^ 1 \bm{\hat{u}_1} u^1 v ^ 1 \bm{\hat{v}_1} v^1 u ^ 1 = A ρ ( 1 )   , v ^ 1 = B γ ( 1 ) \bm{\hat{u}_1=A\rho^{(1)}}\ ,\bm{\hat{v}_1=B\gamma^{(1)}} u^1=Aρ(1) ,v^1=Bγ(1)此时可将以上两个要求化为数学上的条件极值问题 max ⁡ ( u ^ 1 ⋅ v ^ 1 ) = ρ ( 1 ) T A T B γ ( 1 ) s.t. { ρ ( 1 ) T ρ ( 1 ) = ∣ ∣ ρ ( 1 ) ∣ ∣ 2 = 1 γ ( 1 ) T γ ( 1 ) = ∣ ∣ γ ( 1 ) ∣ ∣ 2 = 1 \max(\bm{\hat{u}_1\cdot\hat{v}_1})=\bm{\rho^{(1)T}A^TB\gamma^{(1)}}\\ \text{s.t.}\begin{cases}\bm{\rho^{(1)T}\rho^{(1)}}=||\bm{\rho^{(1)}}||^2=1\\\bm{\gamma^{(1)T}\gamma^{(1)}}=||\bm{\gamma^{(1)}}||^2=1\end{cases} max(u^1v^1)=ρ(1)TATBγ(1)s.t.{ ρ(1)Tρ(1)=ρ(1)2=1γ(1)Tγ(1)=γ(1)2=1利用拉格朗日乘数法,将问题转为计算矩阵 M = A T B B T A \bm{M=A^TBB^TA} M=ATBBTA的特征值和特征向量,其中最大特征值对应的单位特征向量就是 ρ ( 1 ) \bm{\rho^{(1)}} ρ(1),且有 γ ( 1 ) = 1 λ 1 B T A ρ ( 1 ) \bm{\gamma^{(1)}}=\cfrac{1}{\lambda_1}\bm{B^TA\rho^{(1)}} γ(1)=λ11BTAρ(1)
  2. 建立 y 1 , ⋯   , y p y_1,\cdots,y_p y1,,yp u 1 u_1 u1的回归,及 x 1 , ⋯   , x m x_1,\cdots,x_m x1,,xm u 1 u_1 u1的回归。假定回归模型为 { A = u ^ 1 σ ( 1 ) T + A 1 B = u ^ 1 τ ( 1 ) T + B 1 \begin{cases}\bm{A=\hat{u}_1\sigma^{(1)T}+A_1}\\\bm{B=\hat{u}_1\tau^{(1)T}+B_1}\end{cases} { A=u^1σ(1)T+A1B=u^1τ(1)T+B1式中 σ ( 1 ) = [ σ 11 , ⋯   , σ 1 m ] T   , τ ( 1 ) = [ τ 11 , ⋯   , τ 1 p ] T \bm{\sigma^{(1)}}=[\sigma_{11},\cdots,\sigma_{1m}]^T\ ,\bm{\tau^{(1)}}=[\tau_{11},\cdots,\tau_{1p}]^T σ(1)=[σ11,,σ1m]T ,τ(1)=[τ11,,τ1p]T分别为多对一的回归模型中的参数向量; A 1 , B 1 \bm{A_1,B_1} A1,B1是残差阵。则回归系数向量 σ ( 1 ) , τ ( 1 ) \bm{\sigma^{(1)}},\bm{\tau^{(1)}} σ(1),τ(1)的最小二乘估计为 { σ ( 1 ) = A T u ^ 1 / ∣ ∣ u ^ 1 ∣ ∣ 2 τ ( 1 ) = B T u ^ 1 / ∣ ∣ u ^ 1 ∣ ∣ 2 \begin{cases}\bm{\sigma^{(1)}=A^T\hat{u}_1/||\hat{u}_1||^2}\\\bm{\tau^{(1)}=B^T\hat{u}_1/||\hat{u}_1||^2}\end{cases} { σ(1)=ATu^1/u^12τ(1)=BTu^1/u^12 σ ( 1 ) , τ ( 1 ) \bm{\sigma^{(1)},\tau^{(1)}} σ(1),τ(1)为模型效应负荷量。
  3. 若残差阵 B 1 \bm{B_1} B1中元素的绝对值近似为0,则认为用第一个成分建立的回归式精度已经满足需要了,可以停止抽取成分。否则用残差阵 A 1 , B 1 \bm{A_1,B_1} A1,B1代替 A , B \bm{A,B} A,B,重复以上步骤。得 { A = u ^ 1 σ ( 1 ) T + u ^ 2 σ ( 2 ) T + A 2 B = u ^ 1 τ ( 1 ) T + u ^ 2 τ ( 2 ) T + B 2 \begin{cases}\bm{A=\hat{u}_1\sigma^{(1)T}+\hat{u}_2\sigma^{(2)T}+A_2}\\\bm{B=\hat{u}_1\tau^{(1)T}+\hat{u}_2\tau^{(2)T}+B_2}\end{cases} { A=u^1σ(1)T+u^2σ(2)T+A2B=u^1τ(1)T+u^2τ(2)T+B2
  4. n × m n\times m n×m数据阵 A \bm{A} A的秩为 r ⩽ min ⁡ ( n − 1 , m ) r\leqslant\min(n-1,m) rmin(n1,m),则存在r个成分 u 1 , ⋯   , u r u_1,\cdots,u_r u1,,ur,使得 { A = u ^ 1 σ ( 1 ) T + ⋯ + u ^ r σ ( r ) T + A r B = u ^ 1 τ ( 1 ) T + ⋯ + u ^ r τ ( r ) T + B r \begin{cases}\bm{A=\hat{u}_1\sigma^{(1)T}+\cdots+\hat{u}_r\sigma^{(r)T}+A_r}\\\bm{B=\hat{u}_1\tau^{(1)T}+\cdots+\hat{u}_r\tau^{(r)T}+B_r}\end{cases} { A=u^1σ(1)T++u^rσ(r)T+ArB=u^1τ(1)T++u^rτ(r)T+Br u ∼ x u\sim x ux带入 y ∼ u y\sim u yu,即得 y ∼ x y\sim x yx的偏最小二乘回归方程。
  5. 交叉有效性检验:一般情况下,偏最小二乘法并不需要选用存在的r个成分 u 1 , ⋯   , u r u_1,\cdots,u_r u1,,ur来建立回归式,只选用前 l l l个成分即可得到预测能力较好地回归模型。对于建模所需提取的成分个数 l l l,可通过交叉有效性检验来确定。
    每次舍去第 i ( i = 1 , 2 , ⋯   , n ) i(i=1,2,\cdots,n) i(i=1,2,,n)个观测数据,对余下n-1个观测数据用偏最小二乘回归方法建模,并考虑抽取 h ( h ⩽ r ) h(h\leqslant r) h(hr)个成分后拟合的回归式,然后把舍去的自变量组第i个观测数据代入所拟合的回归方程式,得到 y j ( j = 1 , 2 , ⋯   , p ) y_j(j=1,2,\cdots,p) yj(j=1,2,,p)在第i个观测点上的预测值 b ^ ( i ) j ( h ) \hat{b}_{(i)j}(h) b^(i)j(h)
    i = 1 , 2 , ⋯   , n i=1,2,\cdots,n i=1,2,,n重复以上的验证,抽取h个成分时第j个因变量 y j y_j yj的预测误差平方和为 PRESS ⁡ j ( h ) = ∑ i = 1 n [ b i j − b ^ ( i ) j ( h ) ] 2 \operatorname{PRESS}_j(h)=\sum_{i=1}^n[b_{ij}-\hat{b}_{(i)j}(h)]^2 PRESSj(h)=i=1n[bijb^(i)j(h)]2 Y = [ y 1 , ⋯   , y p ] T \bm{Y}=[y_1,\cdots,y_p]^T Y=[y1,,yp]T的预测误差平方和为 PRESS ⁡ ( h ) = ∑ j = 1 p PRESS ⁡ j ( h ) \operatorname{PRESS}(h)=\sum_{j=1}^p\operatorname{PRESS}_j(h) PRESS(h)=j=1pPRESSj(h)另外,再采用所有的样本点,拟合含h个成分的回归方程。此时,记第i个样本点的预测值为 b ^ i j ( h ) \hat{b}_{ij}(h) b^ij(h),则可以定义 y j y_j yj的误差平方和为 SS ⁡ j ( h ) = ∑ i = 1 n [ b i j − b ^ i j ( h ) ] 2 \operatorname{SS}_j(h)=\sum_{i=1}^n[b_{ij}-\hat{b}_{ij}(h)]^2 SSj(h)=i=1n[bijb^ij(h)]2定义 Y \bm{Y} Y的误差平方和为 SS ⁡ ( h ) = ∑ j = 1 p SS ⁡ j ( h ) \operatorname{SS}(h)=\sum_{j=1}^p\operatorname{SS}_j(h) SS(h)=j=1pSSj(h) PRESS ⁡ ( h ) \operatorname{PRESS}(h) PRESS(h)达到最小值时,对应的h即为所求得成分个数l。定义交叉有效性为 Q h 2 = 1 − PRESS ⁡ ( h ) SS ⁡ ( h − 1 ) Q^2_h=1-\cfrac{\operatorname{PRESS}(h)}{\operatorname{SS}(h-1)} Qh2=1SS(h1)PRESS(h)在建模的每一步计算结束前,均进行交叉有效性检验,如果将限制值设为0.05,在第h步有 Q h 2 < 1 − 0.9 5 2 = 0.0975 Q_h^2<1-0.95^2=0.0975 Qh2<10.952=0.0975,则模型达到精度要求,可停止提取成分;否则表示第h步提取的 u h u_h uh成分边际贡献显著,应继续第h+1步计算。

2. Matlab偏最小二乘回归命令plsregress

[XL,YL,XS,YS,BETA,PCTVAR,MSE,stats] = plsregress(X,Y,ncomp)
  • X为[n,m]的自变量数据阵;Y为[n,p]的因变量数据阵;ncomp为成分个数,默认为min(n-1,m)
  • XL为[m,ncomp]的负荷量矩阵 σ \bm{\sigma} σ;YL为[p,ncomp]的负荷量矩阵 τ \bm{\tau} τ;XS为 u ^ \bm{\hat{u}} u^的得分矩阵;YS为 v ^ \bm{\hat{v}} v^的得分矩阵
  • BETA的每一列对应 y ∼ x y\sim x yx的回归表达式;PCTVAR是一个两行的矩阵,两行分别代表每个元素对应自变量和因变量提出成分的贡献率;MSE是一个两行的矩阵,两行分别代表自变量和因变量对应提出成分之间回归方程的剩余标准差
  • stats返回4个值,其中stats.W的每一列对应特征向量 ρ \bm{\rho} ρ,Matlab算得的特征向量不是单位向量

猜你喜欢

转载自blog.csdn.net/qq_43221336/article/details/107354431