偏最小二乘回归

偏最小二乘回归

  • 考虑自变量有多个,因变量只有一个时候的回归,当自变量的多重相关性差的时候,可以直接使用最小二乘求解回归模型;
  • 考虑自变量有多个,因变量只有一个时候的回归,当自变量的多重共线性强的时候,可以对自变量做主成分分析,然后使用主成分作为新的自变量,再使用最小二乘求解回归模型;
  • 考虑自变量有多个,因变量也有多个的时候的回归,如果自变量和因变量都不存在多重共线性的时候,可以分别使用自变量对每一个因变量做回归,使用最小二乘求解;
  • 考虑自变量有多个,因变量也有多个的时候的回归,如果自变量存在多重共线性,因变量不存在多重共线性的时候,可以对自变量做主成分分析,然后使用主成分作为新的自变量分别对每一个因变量做回归,使用最小二乘求解;
  • 考虑自变量有多个,因变量也有多个的时候的回归,如果自变量和因变量都存在多重共线性的时候该怎么办呢,这时候还是使用主成分分析+分别对每个变量做回归吗?

    偏最小二乘提供一种多对多的线性回归建模方法,即自变量有多个,因变量也有多个的时候的建模方法,尤其适用于自变量和因变量都存在多重共线性的情况。

    偏最小二乘在建模过程中集中了主成分分析、典型相关分析和线性回归分析方法的特点。

算法思想

  • 主成分分析是求解组内方差最大的主成分,在求解主成分的时候,它控制了变换向量的范数;
  • 典型相关分析是求解组间相关性最强的典型变量,在求解典型变量的时候,它控制了变换后的组内方差;
  • 回归方程特点是能做回归预测,它是基于自变量数据输入得到因变量的预测值。

    偏最小二乘回归最终是回归,它也是使用原始自变量变换后的变量做回归。它的变换是求解组间相关性最强的变量,不过它的约束条件是控制变换向量的范数。从形式上看,它使用了典型相关分析的目标函数和主成分分析的约束方程。另一个角度看,偏最小二乘的回归参数也是使用最小二乘估计的,所以它在回归参数求解的时候,对于多个因变量的参数是单独求解的。它的特点只是在于自变量的变换过程。

    偏最小二乘最终的模型形式也是
    Y n q = X n p β p q + B Y_{nq}=X_{np}\beta_{pq}+B Ynq=Xnpβpq+B

算法流程

假设p个自变量 X 1 , . . . , X p X_1,...,X_p X1,...,Xp和q个因变量 Y 1 , . . . , Y q Y_1,...,Y_q Y1,...,Yq。n个样本的标准化后的数据为 X 0 ( n ∗ p ) , Y 0 ( n ∗ q ) X_0(n*p),Y_0(n*q) X0(np),Y0(nq)

  1. 最佳变换向量求解以得到第一对成分。求解 w 1 , v 1 w_1,v_1 w1,v1使得 w 1 ′ X 0 和 v 1 ′ Y 0 w_1^{'}X_0和v_1^{'}Y_0 w1X0v1Y0的相关性最大,即协方差最大,对于标准化数据,也就是 w 1 ′ X 0 和 v 1 ′ Y 0 w_1^{'}X_0和v_1^{'}Y_0 w1X0v1Y0的内积最大,目标函数如下:
    m a x ∣ ∣ w 1 ∣ ∣ 2 = 1 , ∣ ∣ v 1 ∣ ∣ 2 = 1 w 1 ′ X 0 ′ Y 0 v 1 \underset{\mid\mid w_1\mid\mid ^2 = 1,\mid\mid v_1\mid\mid ^2 = 1}{max}w_1^{'}X_0^{'}Y_0v_1 w12=1,v12=1maxw1X0Y0v1
    目标函数可以使用拉格朗日乘子法求解,求解得到最佳的 w 1 , v 1 w_1,v_1 w1,v1,其中 w 1 w_1 w1称为模型效应权重 v 1 v_1 v1称为因变量权重。以此得到变换后的成分 t 1 = X 0 w 1 t_1=X_0w_1 t1=X0w1
  2. 回归模型训练。根据上文得到的 t 1 t_1 t1,得到回归模型:
    { X 0 = t 1 α 1 ′ + E 1 Y 0 = t 1 β 1 ′ + F 1 \begin{cases}X_0=t_1\alpha_1^{'}+E_1\\ Y_0=t_1\beta_1^{'}+F_1\end{cases} {X0=t1α1+E1Y0=t1β1+F1
    使用最小二乘求解 α 1 和 β 1 \alpha_1和\beta_1 α1β1
  3. 集成多个成分。因为 Y 0 Y_0 Y0是标准化后的变量,所以当模型效果好的时候,残差 F 1 F_1 F1中的元素绝对值应该近似为0。当使用单个成分的预测效果不够好怎么办呢?与Boost的加法模型思想相似,基于残差结果得到新的成分,以得到更优的模型。即,以 E 1 = X 0 − X 0 ^ , F 1 = Y 0 − Y 0 ^ E_1=X_0-\hat{X_0},F_1=Y_0-\hat{Y_0} E1=X0X0^,F1=Y0Y0^重复步骤1和步骤2以得到第二个成分。此时得到的模型为:
    { X 0 = t 1 α 1 ′ + t 2 α 2 ′ + E 2 Y 0 = t 1 β 1 ′ + t 2 β 2 ′ + F 2 \begin{cases}X_0=t_1\alpha_1^{'}+t_2\alpha_2^{'}+E_2\\ Y_0=t_1\beta_1^{'}+t_2\beta_2^{'}+F_2\end{cases} {X0=t1α1+t2α2+E2Y0=t1β1+t2β2+F2
    以此类推,当 X 0 X_0 X0的秩为r<=min(n-1,p)时,存在r个成分 t 1 , . . . , t r t_1,...,t_r t1,...,tr,使得:
    { X 0 = t 1 α 1 ′ + . . . + t r α r ′ + E r Y 0 = t 1 β 1 ′ + . . . + t r β r ′ + F r \begin{cases}X_0=t_1\alpha_1^{'}+...+t_r\alpha_r^{'}+E_r\\ Y_0=t_1\beta_1^{'}+...+t_r\beta_r^{'}+F_r\end{cases} {X0=t1α1+...+trαr+ErY0=t1β1+...+trβr+Fr
  4. 模型整合。整合加法模型,将能提前相加的参数合并,得到最终的模型参数 β ^ \hat{\beta} β^,模型为。
    Y ^ = X β ^ \hat{Y}=X\hat{\beta} Y^=Xβ^
  5. 最优参数确定。偏最小二乘中确定成分的个数的方法是使用交叉验证的方式,即以交叉验证的方式确定最优的模型参数。

总结

  • 偏最小二乘回归是一种使用预存在多重相关性的多组自变量、多组因变量的回归建模;
  • 偏最小二乘是基于结合主成分分析和典型相关分析得到的成分变量的回归;
  • 为什么使用交叉验证而不是像主成分分析一样使用累计贡献率呢?因为偏最小二乘中求解最佳变换向量的时候,并没有让组内方差最大,所以每个成分包含的组内信息大小不能确定,使用组内累计贡献率并没有意义。只能使用对因变量的预测效果来评估使用多少的主成分。不过因为成分的选取是逐个进行的,所以选择最佳成分的时候还是与主成分分析相同选取前 l l l个。

思考

  • 偏最小二乘方法计算过程中需要计算很多的特征值、特征向量,计算复杂度较大,方法不适用于大数据情况。从回归方程的思路看,可不可以单纯构造以下模型呢?
    m i n W , α , β ∣ ∣ X 0 − X 0 W α ∣ ∣ 2 + γ ∣ ∣ Y 0 − X 0 W β ∣ ∣ 2 \underset{W,\alpha,\beta}{min}\mid\mid X_0-X_0W\alpha\mid\mid ^2 + \gamma\mid\mid Y_0-X_0W\beta\mid\mid ^2 W,α,βminX0X0Wα2+γY0X0Wβ2
    其中W为一个p*k的矩阵, α \alpha α为一个k*p的矩阵, β \beta β为一个k*q的矩阵。k为人为设置的大于1,小于等于min(n-1,p)的超参, γ \gamma γ为人为设置的超参, ∣ ∣ A ∣ ∣ \mid\mid A\mid\mid A表示矩阵中所有元素的平方和。

你可能感兴趣的:(统计学习,机器学习,偏最小二乘,统计学习,机器学习,多重共线性,回归)