十二、逐步回归
1.变量选择方法
在上一篇中,我们提到了两个问题:一是对模型的线性假设是否准确,二是是否每个变量都有着足够的显著性,其检验统计量分别是 R S S / E S S {\rm RSS/ESS} RSS/ESS和 P i = β ^ i 2 / l i i P_i=\hat \beta_i^2/l^{ii} Pi=β^i2/lii,它们越大,检验的p-value越小,就代表线性模型约合适,或者对应的变量够显著。面对不显著的变量,因为它对我们的模型起不到促进作用,容易受噪声影响,因此从模型中去掉比较合适,我们只会在回归模型中,保存显著的变量。那么,如何选择显著的变量就是一个值得讨论的问题。
最优子集的变量筛选法是比较常用的一种方法,该方法包括逐步回归法(Stepwise)、向前引入法(Forward)和向后剔除法(Backward)。
向前引入法(Forward)是从回归方程仅包含常数项开始,把自变量逐个引入回归方程的方法,其操作流程如下:在 m m m个自变量中选择一个加入后总体p-value最小的加入,然后在剩余自变量中选择另一个加入后总体p-value最小的加入,重复此流程直到达到终止条件;这个终止条件可以是对新加入变量作显著性检验时p-value大于给定的 α \alpha α,也可以是其他。
向后剔除法(Backward)先将全部 m m m个自变量加入回归方程,然后逐个剔除最不显著的自变量,即对其回归系数作显著性检验时p-value最大的那个,重复此流程直到达到终止条件;这个终止条件可以是对剩余回归系数作显著性检验时p-value都小于 α \alpha α,也可以是其他。
以上两种方法有一个共同的缺点——太过绝对,在向前引入法中,被引入的变量将永远被保留在方程中,即使它以后的显著性会变得很差;在向后剔除法中,被剔除的变量将永远被剔除出去,即使它以后可能会表现出很好的显著性。在某些情况下,这两种方法得到的回归方程会比较不合理,因此,逐步回归(Stepwise)综合了两种方法的优点,它以向前引入为主,但也包含向后剔除,一般会得出更为理想的回归方程。
逐步回归法的显著性水平包括向前引入的水平 α i n \alpha_{\rm in} αin和向后剔除的水平 α o u t \alpha_{\rm out} αout,为了保证筛选过程经过有限步停止,要求 α i n ≤ α o u t \alpha_{\rm in}\le \alpha_{\rm out} αin≤αout,但在实际应用中,一般令 α i n = α o u t \alpha_{\rm in}=\alpha_{\rm out} αin=αout。
除了以上三种最优子集的变量筛选法,还有计算量很大的全子集法,以及计算量适中的选择法。全子集法,即选择所有可能的组合, m m m个自变量对应着 2 m − 1 2^m-1 2m−1种组合方式,这对自变量情况很多的情形是不适用的,因为计算机无法承受指数增长的算法,但在自变量较少时,可以用 R 2 R^2 R2选择法、 C p C_p Cp选择法和修正 R 2 R^2 R2选择法来筛选全子集法的回归结果。
2.最优子集如何评判
我们在以上的变量筛选方法中,想要选择的都是“最优”的线性回归模型,但如何衡量这个优度?可能有人会想到用 R 2 R^2 R2来衡量,但这是不合理的,因为变量数越多, R 2 R^2 R2自然会越大。一般来说,衡量的标度把不同,可能会造成最优线性回归模型的不同,本节就介绍一些评判最优子集的方法,接下来定义数据量为 n n n,可用的自变量总数为 m m m。最优子集的选择,总可以先找到变量个数为 k ( 1 ≤ k ≤ m ) k(1\le k\le m) k(1≤k≤m)的最优子集,再在这 m m m个最优子集中找到最优中的最优。
需要注意的是,由于变量越多总能在某些硬性指标上占优,所以选择子集的标准一定是包含变量个数 k k k的一个函数。
准则1:均方误差
s
2
s^2
s2。对于元素个数为
k
k
k的子集
A
A
A,其均方误差为
s
2
(
A
)
=
Q
A
n
−
k
−
1
.
s^2(A)=\frac{Q_A}{n-k-1}.
s2(A)=n−k−1QA.
这是由子集
A
A
A确定的回归模型中,偏差方差
σ
2
\sigma^2
σ2的无偏估计量。选择
s
2
(
A
)
s^2(A)
s2(A)最小的作为最优估计。
准则2:
C
p
C_p
Cp统计量。称不被放到回归方程中的那些不显著变量为无用变量,由部分有用变量构成的线性回归模型称为选回归模型,设有
n
n
n个样本点
c
(
i
)
c_{(i)}
c(i),由选回归模型得到的估计值为
y
^
i
(
k
)
\hat y_i(k)
y^i(k),它与理论值
c
(
i
)
β
c_{(i)}\beta
c(i)β的偏差平方和(注意,不是与真实值的误差平方和)记作
J
k
J_k
Jk,则
J
k
=
∑
i
=
1
n
[
c
i
′
β
^
(
A
(
k
)
)
−
c
(
i
)
′
β
]
2
σ
2
J_k=\frac{\sum\limits_{i=1}^n[c'_{i}\hat \beta(A(k))-c'_{(i)}\beta]^2}{\sigma^2}
Jk=σ2i=1∑n[ci′β^(A(k))−c(i)′β]2
可以证明
E
(
J
k
)
=
E
(
Q
(
A
(
k
)
)
)
/
σ
2
−
2
(
k
+
1
)
−
n
{\rm E}(J_k)={\rm E}(Q(A(k)))/\sigma^2-2(k+1)-n
E(Jk)=E(Q(A(k)))/σ2−2(k+1)−n,取全回归模型的样本方差
s
2
s^2
s2为
σ
2
\sigma^2
σ2的估计时,这就是
C
p
C_p
Cp统计量,即
C
p
=
Q
(
A
(
k
)
)
s
2
+
2
(
k
+
1
)
−
n
,
s
2
=
Q
(
A
(
m
)
)
n
−
m
−
1
.
C_p=\frac{Q(A(k))}{s^2}+2(k+1)-n,\quad s^2=\frac{Q(A(m))}{n-m-1}.
Cp=s2Q(A(k))+2(k+1)−n,s2=n−m−1Q(A(m)).
根据
C
p
C_p
Cp统计量制定最优准则,可以是
C
p
C_p
Cp统计量本身最小,也可以是
∣
C
p
−
(
k
+
1
)
∣
|C_p-(k+1)|
∣Cp−(k+1)∣达到最小。
准则3:修正
R
2
(
R
~
2
)
R^2(\tilde R^2)
R2(R~2)准则。记
R
~
2
=
1
−
n
−
i
n
−
k
−
i
(
1
−
R
2
)
,
\tilde R^2=1-\frac{n-i}{n-k-i}(1-R^2),
R~2=1−n−k−in−i(1−R2),
当模型包含截距项时
i
=
1
i=1
i=1,否则
i
=
0
i=0
i=0,最优准则是使得
R
~
2
\tilde R^2
R~2最大的准则。
准则4:预测均方误差及平方和最小的准则。有以下几种统计量:
J
p
(
A
)
=
(
n
+
k
+
1
)
s
2
(
A
)
,
S
p
(
A
)
=
s
2
(
A
)
n
−
k
−
2
,
P
R
E
S
S
(
A
)
=
∑
i
=
1
n
(
y
i
−
y
^
i
(
i
)
)
2
.
J_p(A)=(n+k+1)s^2(A), \\ S_p(A)=\frac{s^2(A)}{n-k-2}, \\ {\rm PRESS}(A)=\sum_{i=1}^n(y_i-\hat y_i(i))^2.
Jp(A)=(n+k+1)s2(A),Sp(A)=n−k−2s2(A),PRESS(A)=i=1∑n(yi−y^i(i))2.
使得这些统计量中某一个达到最小的是最优准则,这里
y
^
i
(
i
)
\hat y_i(i)
y^i(i)是删去第
i
i
i个点后用其余
n
−
1
n-1
n−1个点观测数据建立的回归方程预测第
i
i
i个点的预测值。
准则5:AIC准则。定义AIC统计量为
A
I
C
(
A
(
k
)
)
=
n
ln
Q
(
A
(
k
)
)
n
+
2
(
k
+
1
)
.
{\rm AIC}(A(k))=n\ln \frac{Q(A(k))}{n}+2(k+1).
AIC(A(k))=nlnnQ(A(k))+2(k+1).
使得AIC统计量达到最小是最优准则。
实际运用时,选择不同的变量选择方法和最优准则,都有可能导致最优回归方程发生变化。
回顾总结
- 最优子集的筛选方法包括逐步回归(Stepwise)、向前引入(Forward)和向后剔除(Backward),其中逐步回归结合了向前引入和向后剔除的优点,比较常用。
- 全子集法的计算规模是 2 m − 1 2^m -1 2m−1。
- 有若干种不同的最优准则,其中均方误差 s 2 ( A ) s^2(A) s2(A)、 C p C_p Cp统计量、预测均方误差即平方和、AIC统计量都是越小越好的,而修正 R 2 ( R ~ 2 ) R^2(\tilde R^2) R2(R~2)则是越大越好。