19 多元线性回归与模型回归

19 多元线性回归与模型回归

标签:机器学习与数据挖掘

1.调整 R 2 R^2 R2

  对于 R 2 R^2 R2,只要添加入新的参数,它就会变大,不过这个变量有没有用。而我们采用 调 整 R 2 调整R^2 R2来使得公式对无用变量有所惩罚:
R a d j 2 = 1 − ( 1 − R 2 ) n − 1 n − m − 1 R_{\mathrm{adj}}^{2}=1-\left(1-R^{2}\right) \frac{n-1}{n-m-1} Radj2=1(1R2)nm1n1
如果 R a d j 2 R_{\mathrm{adj}}^{2} Radj2小于 R 2 R^2 R2,则表明模型中至少有一个变量是多余的,分析人员应该考虑从模型中消除该变量。

2.多重共线性

  数据挖掘人员需要避免产生多重共线性,所谓多重共线性是指预测变量之间存在关联关系。多重共线性会使求解空间具有不稳定性,导致产生不连贯结果的可能性。例如,在包含多重共线性的数据集中,可能会导致整个回归的F-检验具有显著性,而对个体预测变量的t-检验却不显著。
在这里插入图片描述
  然而,假设我们不对预测变量之间存在的相关性进行检测,继续进行回归分析,是否存在某些方法能够通过回归结果告诉我们存在多重共线性呢?答案是肯定的:我们可以通过方差膨胀因子(VIF)获知是否存在多重共线性。
  方差膨胀因子具有何种含义呢?首先,我们知道 s b i s_{b_i} sbi表示第 i i i 个预测变量 x i x_{i} xi 的系数 b i b_i bi 的变化情况。我们可以将 s b i s_{b_i} sbi 表示为估计标准误差 s s s C i C_i Ci ,的乘积,其中 c i c_i ci ,是一个依赖于预测变量观察值的常量。即 s b i = s ⋅ c i s_{b_i}=s \cdot c_i sbi=sci 。现在,针对模型中包含的相关变量, s s s 是比较健壮的。因此,若存在相关的预测变量,则我们可以通过考察 c i c_i ci,来解释 s b i s_{b_i} sbi的变化较大的情况。
c i c_i ci可如下表示:
c i = 1 ( n − 1 ) s i 2 ⋅ 1 1 − R i 2 c_{i}=\sqrt{\frac{1}{(n-1) s_{i}^{2}} \cdot \frac{1}{1-R_{i}^{2}}} ci=(n1)si211Ri21
  其中 s i 2 s^2_i si2 表示第 i i i 个预测变量观察值的样例方差, x i x_i xi R i 2 R^2_i Ri2表示 x 1 x_1 x1 针对其他预测变量回归所获得 R 2 R^2 R2 值。注意当 x i x_i xi 与其他变量高度相关时, R i 2 R^2_i Ri2取值也较大。
  注意, c i c_i ci 中包含两项,第 1 个因子 ( 1 ( n − 1 ) s i 2 ) \left(\frac{1}{(n-1) s_{i}^{2}}\right) ((n1)si21)用于度量第 i i i 个预测变量 x i x_i xi 内固有的变异性。其第2个因子 ( 1 1 − R i 2 ) \left(\frac{1}{1-R_{i}^{2}}\right) (1Ri21) 用于度量第 i i i 个预测变量 x i x_i xi 与其他预测变量之间的相关性。出于该原因,第2个因子可定义为 x i x_i xi V I F VIF VIF
V I F i = 1 1 − R i 2 \mathrm{VIF}_{i}=\frac{1}{1-R_{i}^{2}} VIFi=1Ri21
  从公式上看,如果 x i x_i xi 与其他变量一点相关性也没有,即 R i 2 = 0 R^2_i = 0 Ri2=0,此时, V I F i = 1 1 − 0 = 1 \mathrm{VIF}_{i}=\frac{1}{1-0}=1 VIFi=101=1,即 V I F VIF VIF 的最小值为 1,也就是当 x i x_i xi 与其他预测变量完全没有相关性时, V I F VIF VIF 取最小值1。同理,当 x i x_i xi 与其他预测变量的相关度增加时, R i 2 R^2_i Ri2 的值也相应增加。当 R i 2 R^2_i Ri2 接近1时, V I F i = 1 1 − R i 2 \mathrm{VIF}_{i}=\frac{1}{1-R_{i}^{2}} VIFi=1Ri21的值将无约束地增加。即 V I F i VIF_i VIFi 值没有上界。当然,这也意味着,如果变量 x i x_i xi与其他变量促织乃相关性,则系数 s b i s_{b_i} sbi就会快速扩张,从而导致估计精度的退化。
  以经验的界限来看,当 V I F i ⩾ 5 \mathrm{VIF}_{i} \geqslant 5 VIFi5时,可能会存在多重共线性:当 V I F i ⩾ 10 \mathrm{VIF}_{i} \geqslant 10 VIFi10时,预示存在严重的多重共线性。当 V I F i ⩾ 5 \mathrm{VIF}_{i} \geqslant 5 VIFi5时,对应的 R i 2 R^2_i Ri2为0.80,而 V I F i ⩾ 10 \mathrm{VIF}_{i} \geqslant 10 VIFi10时,对应的 R i 2 = 0.90 R^2_i=0.90 Ri2=0.90

3.解决多重共线性的手段

①首先,可以直接删除变量。当然这是一种比较浪费资源的手短,视为一种极端的手段。
②其次,我们可以使用主成分分析,提取变量中主要的成分来进行分析。
③另外,就是用户自定义合成变量了。对变量进行组合之时,我们应该考虑先对变量进行标准化以避免出现其中一个变量波动巨大而完全控制另一个变量的可能性。

4.序列平方和

  序列平方和表示SSR(回归平方和)的分区。SSR表示目标变量波动的比例,通过目标变量与预测变量之间的线性关系来解释。在给定其他预测变量的情况下,序列平方和将SSR划分为SSR特有的由特定预测变量解释的部分。因此,序列平方和的值与变量进入模型的顺序有关。

5.有偏F-检验

  为知道变量选择方法,我们首先需要学习有偏F-检验。假设我们已知模型包含p个变量对 x 1 , x 2 , … , x p x_{1}, x_{2}, \dots, x_{p} x1,x2,,xp,且我们感兴趣的是是否应该将某个额外的变量 x ∗ x^{*} x引入到模型中。回忆前面讨论过的序列平方和。此处,计算在模型中已经包含 x 1 , x 2 , … , x p x_{1}, x_{2}, \ldots, x_{p} x1,x2,,xp时,将KaTeX parse error: Expected '}', got 'EOF' at end of input: ^*{}增加到模型中时的序列平方和。定义如下: S S E x t r a = S S ( x ∗ ∣ x 1 , x 2 , … , x p ) \mathrm{SS}_{\mathrm{Extra}}=\mathrm{SS}\left(x^{*} | x_{1}, x_{2}, \ldots, x_{p}\right) SSExtra=SS(xx1,x2,,xp)。现在,该平方和的计算方法是用整个模型(包括 x 1 , x 2 , … , x p x_{1}, x_{2}, \ldots, x_{p} x1,x2,,xp x ∗ x^{*} x)的回归平方和,定义为 S S  Full  = S S ( x 1 , x 2 , … , x p , x ∗ ) \mathrm{SS}_{\text { Full }}=\mathrm{SS}\left(x_{1}, x_{2}, \ldots, x_{p}, x^{*}\right) SS Full =SS(x1,x2,,xp,x),减去原模型(仅包含 x 1 , x 2 , … , x p x_{1}, x_{2}, \ldots, x_{p} x1,x2,,xp)的回归平方和,定义为 S S R e d u c e d = S S ( x 1 , x 2 , … , x p ) \mathrm{SS}_{\mathrm{Reduced}}=\mathrm{SS}\left(x_{1}, x_{2}, \ldots, x_{p}\right) SSReduced=SS(x1,x2,,xp),即:
S S E x t a = S S F u l l − S S R a d u c e d \mathrm{SS}_{\mathrm{Exta}}=\mathrm{SS}_{\mathrm{Full}}-\mathrm{SS}_{\mathrm{Raduced}} SSExta=SSFullSSRaduced
也就是:
SS ⁡ ( x ∗ ∣ x 1 , x 2 , … , x p ) = SS ⁡ ( x 1 , x 2 , … , x p , x ∗ ) − SS ⁡ ( x 1 , x 2 , … , x p ) \operatorname{SS}\left(x^{*} | x_{1}, x_{2}, \ldots, x_{p}\right)=\operatorname{SS}\left(x_{1}, x_{2}, \ldots, x_{p}, x^{*}\right)-\operatorname{SS}\left(x_{1}, x_{2}, \ldots, x_{p}\right) SS(xx1,x2,,xp)=SS(x1,x2,,xp,x)SS(x1,x2,,xp)
有偏 F-检验的零假设如下:

  • H 0 H_0 H0:否定,当 x ∗ x^{*} x S S E x t r a SS_Extra SSExtra关联时未对已包含 x 1 , x 2 , … , x p x_{1}, x_{2}, \ldots, x_{p} x1,x2,,xp,的模型的回归平方和作出显著的贡献。因此,不需要将 x ∗ x^{*} x了包含到模型中去。
    备选假设如下:
  • H a H_a Ha:是的,当 x ∗ x^{*} x定与 S S E x t r a SS_Extra SSExtra关联时将对已包含 x 1 , x 2 , … , x p x_{1}, x_{2}, \ldots, x_{p} x1,x2,,xp的模型的回归平方和作出显著的贡献。因此,可将 x ∗ x^{*} x包含到模型中去。
    有偏F-检验的检验统计如下:
    F ( x ∗ ∣ x 1 , x 2 , … , x p ) = S S E x t r a M S E F u l l F\left(x^{*} | x_{1}, x_{2}, \ldots, x_{p}\right)=\frac{\mathrm{SS}_{\mathrm{Extra}}}{\mathrm{MSE}_{\mathrm{Full}}} F(xx1,x2,,xp)=MSEFullSSExtra
      其中 M S E F u l l MSE_Full MSEFull 山表示包含 x 1 , x 2 , … , x p x_{1}, x_{2}, \ldots, x_{p} x1,x2,,xp。及 x ∗ x^{*} x 的整个模型的平方误差项均值。也就是 x ∗ x^{*} x 的 有偏 F-统计量。当零假设为真时,该检验统计量遵循 F 1 , n − p − 2 F_{1,n-p-2} F1,np2 因此,当 F ( x ∗ ∣ x 1 , x 2 , … , x p ) F\left(x^{*} | x_{1}, x_{2}, \ldots, x_{p}\right) F(xx1,x2,,xp)较大时,或当与之相关的 p-值较小时,我们选择拒绝零假设。

6.t-检验

  一种替代 有偏F-检验的方法是 t-检验。现在包含1和n-p-2个自由度的F-检验等价于包含n-p-2个自由度的1-检验。这是由分布关系F,=(t.,)所决定的。因此,无论是F-检验还是1-检验都可以执行。类似我们在本章稍前部分所介绍的对待1-检验的方法,给出假设如下:
H 0 : β ∗ = 0 H a : β ∗ ≠ 0 \begin{array}{ll}{H_{0} : \beta^{*}} & {=0} \\ {H_{a} : \beta^{*}} & { \neq 0}\end{array} H0:βHa:β=0̸=0
相关的模型如下:

  • H 0 H_0 H0情况下: y = β 0 + β 1 x 1 + ⋯ + β p x p + ε y=\beta_{0}+\beta_{1} x_{1}+\cdots+\beta_{p} x_{p}+\varepsilon y=β0+β1x1++βpxp+ε
  • H a H_a Ha情况下: y = β 0 + β 1 x 1 + ⋯ + β p x p + β ∗ x ∗ + ε y=\beta_{0}+\beta_{1} x_{1}+\cdots+\beta_{p} x_{p}+\beta^{*} x^{*}+\varepsilon y=β0+β1x1++βpxp+βx+ε
      在零假设情况下,检验统计量 t = b ∗ s b ∗ t=\frac{b^{*}}{s_{b^*}} t=sbb满足包含 n − p − 2 n-p-2 np2个自由度的 t分布。当双尾 p-值 P ( ∣ t ∣ > ∣ t o b s ∣ ) P\left(|t|>\left|t_{\mathrm{obs}}\right|\right) P(t>tobs)较小时,拒绝零假设。
      最后,需要对序列平方和与有偏平方和之间存在的差异进行讨论。本章曾对序列平方和进行过描述。由于每个变量依次加入到模型中,因此序列平方和表示当已经进入模型的变量的波动性被获得的情况下,通过该变量解释的额外的特有的波动性。即,变量加入模型的顺序与序列平方和存在密切的关系。
      然而,有偏平方和与顺序没有直接关系。对某个特定的变量,有偏平方和表示当已经进入模型的其他变量的波动性被获得的情况下,通过该变量解释的额外的特有的波动性。
    表9.14显示了在模型包含4个预测变量 x 1 , x 2 , x 3 , x 4 x_{1}, x_{2}, x_{3}, x_{4} x1,x2,x3,x4时,序列平方和和有偏平方和之间的差异。
    [外链图片转存失败(img-02Dv5dQU-1564445500146)(assets/1558196491610.png)]

(以检验为基础,我们介绍四种选择变量的方法。)

7.前向选择过程

在前向选择过程的初始状态,模型中不包含变量。
  步骤1:选择与目标变量相关性最高的预测变量加入到模型中(不失一般性,设该变量为 x 1 x_1 x1)。如果产生的模型不具有显著性,则停止并报告没有变量是重要的预测变量。否则,进入步骤2。注意分析人员可以选择等级 α \alpha α;该值较低会导致变量不易加入到模型中。常见的选择是a=0.05,但这一选择不是一成不变的。
  步骤2:对每个其他变量,在给定模型中的变量情况下,计算每个变量的序列F-统计量。例如,在算法处于第一遍过程时,计算序列F统计量为 F ( x 2 ∣ x 1 ) F\left(x_{2} | x_{1}\right) F(x2x1) F ( x 3 ∣ x 1 ) F\left(x_{3} | x_{1}\right) F(x3x1) F ( x 4 ∣ x 1 ) F\left(x_{4} | x_{1}\right) F(x4x1).当算法处于第二遍过程时,应该计算的是 F ( x 3 ∣ x 1 , x 2 ) F\left(x_{3} | x_{1}, x_{2}\right) F(x3x1,x2) F ( x 4 ∣ x 1 , x 2 ) F\left(x_{4} | x_{1}, x_{2}\right) F(x4x1,x2)。选择F-统计量最大的变量。
  步骤3:对在步骤2选择出的变量,检验其序列F-统计量的显著性。如果结果表示模型不具有显著性,则停止并报告当前模型不会将步骤2中选择的变量加入到模型中。否则,将步骤2中选择的变量加入到模型中并返回步骤2。

8.反响删除过程

  在反向删除过程初始时,模型中包含所有的变量,或者模型中包含用户自定义的变量集。
  步骤1:对整个模型执行回归操作。即,利用可用的所有变量。例如,也许整个模型包含4个变量 x 1 , x 2 , x 3 , x 4 x_{1}, x_{2}, x_{3}, x_{4} x1,x2,x3,x4
  步骤2:对当前模型中的每个变量,计算有偏F-统计量。在算法处于第一遍过程时,对上述选定的模型,这些统计量包括 F ( x 1 ∣ x 2 , x 3 , x 4 ) F\left(x_{1} | x_{2}, x_{3}, x_{4}\right) F(x1x2,x3,x4) F ( x 2 ∣ x 2 , x 3 , x 4 ) F\left(x_{2} | x_{2}, x_{3}, x_{4}\right) F(x2x2,x3,x4) F ( x 3 ∣ x 2 , x 3 , x 4 ) F\left(x_{3} | x_{2}, x_{3}, x_{4}\right) F(x3x2,x3,x4) F ( x 4 ∣ x 2 , x 3 , x 4 ) F\left(x_{4} | x_{2}, x_{3}, x_{4}\right) F(x4x2,x3,x4)。选择具有最小有偏F-统计量的变量。将该值定义为 F m i n F_min Fmin
  步骤3:检验 F m i n F_min Fmin的显著性。如果Fmin不具有显著性,则从模型中删除与Famin相关的变量,并返回步骤2。如果 F m i n F_min Fmin具有显著性,则停止该算法并报告当前模型为最后生成的模型。如果此时不是算法的第一遍过程,则当前模型中至少被删除一个变量。注意分析人员可以根据删除变量的需求选择 α \alpha α 的等级。该值低,则模型趋向于较少的变量。

9.逐步选择过程

逐步选择过程是对前向选择过程的修改。当有新的变量加入到模型中后,通过前向选择过程加入到模型中的变量可能不再具有显著性。逐步选择过程用于检查是否存在这样的可能性,方法是在每步针对每个模型中的变量,利用有偏平方和执行 有偏F-检验。如果模型中的某个变量不再具有显著性,则具有最小F-统计量的变量将被从模型中删除。当没有变量从模型中删除或加入后,该过程将被终止。分析人员可以选择需要加入到模型中的 α \alpha α 级别和需要从模型中删除的 α ′ \alpha^{\prime} α级别,一般选择的 α ′ \alpha^{\prime} α 值比 α \alpha α 要大。

10.最佳子集过程

  对包含大量预测变量的数据集来说,最佳子集过程是一种非常有吸引力的变量选择方法。然而,如果变量数目超过30种,则最佳子集方法将会遇到组合爆炸问题,执行过程将会变得非常慢。
  最佳子集过程如下:
  步骤1:分析人员定义期望的每个尺度的模型的数量(k),以及预测变量的最大数量(p)。
  步骤2:当一个预测变量的所有模型被建立后,其 R 2 R^2 R2 R a 2 d j R^2_adj Ra2dj M a l l o w s ′ C p Mallows ' C_p MallowsCp(下面将描述该度量)以及 s s s 的值可以计算获得。基于这些度量,可以获得最佳 k k k 模型。
  步骤3:接着建立包含两个预测变量的所有模型。计算其R2、R海、Mallows’Cp和s值,并基于这些度量结果,获得最佳 k k k 模型。
  持续执行该过程,直到预测变量的最大值(p)为止。至此,分析人员得到 1 , 2 … … , p 1,2……,p 1,2,p 每个尺度的最佳模型,用于选择整体最佳的模型。

11.“所有可能子集”过程

  上述所谈论的4种模型选择方法可以看成针对大样例空间的优化算法。正因为如此,我们无法保证能够获得的是全局优化模型。即,无法保证这些变量选择算法获得的模型具有最低的s值和最高的 R a 2 d j R^2_adj Ra2dj 值(Draper and Smith;Kleinbaum,Kupper,Nizam,and Muller)。确保能够获得全局最优模型的唯一方法是对所有可能的选择执行回归。遗憾的是,在数据挖掘应用中,通常存在大量的有效候选预测变量,因此采用这一方法是不现实的。如果不考虑零模型 y = β 0 + ε y=\beta_{0}+\varepsilon y=β0+ε,则当包含预测变量数量为 p p p 时,需要建立的模型数量为 2 P − 1 2^{P}-1 2P1
  预测变量数量较小时,构建所有可能存在的回归是不成问题的。例如,当 p = 5 p=5 p=5时,可能的模型数量为 2 5 − 1 = 31 2^{5}-1=31 251=31。然而,当预测变量数量增加时,搜索空间将会以指数级别增长。例如,当包含预测变量数量 p = 10 p=10 p=10 时,则模型数量为210-1=1023,而当p=20时,模型数量将达到 2 20 − 1 = 1048575 2^{20}-1=104 8575 2201=1048575。因此,对大多数数据挖掘应用来说,可能包含上百个变量,对所有可能开展回归的方法是不可行的。为此,数据挖掘人员可能会趋向于选择上述讨论的四种方法之一。尽管采用上述的方法可能无法保证获得全局最优模型,但它们通常能够提供有用的模型集,并提供正面结果。然后,分析人员采纳这些模型,以此为出发点,不断调整并修改,从而从它们中得出最佳效果。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值