1. 子集选择
1.1 最优子集选择
对 p p p个预测变量的所有可能组合分别使用最小二乘回归进行拟合:对含有一个预测变量的模型,拟合 p p p个模型;对含有两个预测变量的模型,拟合 p ( p − 1 ) / 2 p(p-1)/2 p(p−1)/2个模型……,最后在所有可能模型中选取最优模型。
算法1 最优子集选择(p个变量,在 2 p 2^p 2p个模型中选择最优模型) |
---|
1. 记不含预测变量的零模型为 M 0 M_{0} M0,只用于估计各观测的样本均值 |
2. 对于 k = 1 , 2 , … … , p k=1,2,……,p k=1,2,……,p:(a)拟合 p ( p − 1 ) / k p(p-1)/k p(p−1)/k个包含k个预测变量的模型; |
(b)在 p ( p − 1 ) / k p(p-1)/k p(p−1)/k个模型中选择RSS(偏差—logistic)最小或R²最大的作为最优模型,记为 M k M_{k} Mk |
3. 根据交叉验证预测误差、 C p ( A I C ) C_{p}(AIC) Cp(AIC)、BIC或者调整R²,从 M 0 , … … , M p M_{0},……,M_{p} M0,……,Mp个模型中选择最优模型 |
简单直观,但是计算效率不高,会出现过拟合以及系数估计方差高的问题。
1.2 逐步选择
1.2.1 向前逐步选择
以一个不包含任何预测变量的零模型为起点,依次往模型中添加变量,直至所有的预测变量都在模型中。(每次只将能提升模型效果max的变量加入模型)
算法2 向前逐步选择 |
---|
1. 记不含预测变量的零模型为 M 0 M_{0} M0; |
2. 对于 k = 0 , 2 , … … , p − 1 k=0,2,……,p-1 k=0,2,……,p−1:(a)从 p − k p-k p−k个模型中进行选择,每个模型只在 M k M_{k} Mk的基础上增加一个变量; |
(b)在 p − k p-k p−k个模型中选择RSS(偏差—logistic)最小或R²最大的作为最优模型,记为 M k + 1 M_{k+1} Mk+1 |
3. 根据交叉验证预测误差、 C p ( A I C ) C_{p}(AIC) Cp(AIC)、BIC或者调整R²,从 M 0 , … … , M p M_{0},……,M_{p} M0,……,Mp个模型中选择最优模型 |
相比于最优子集选择,运算效率有所提高,但无法保证找到的模型是 2 p 2^p 2p个模型中最优的。
1.2.2 向后逐步选择
算法3 向后逐步选择 |
---|
1. 记包含全部p个预测变量的全模型为 M p M_{p} Mp; |
2. 对于 k = p , p − 1 , … , 1 k=p,p-1,…,1 k=p,p−1,…,1:(a)从 k k k个模型中进行选择,在模型 M k M_{k} Mk的基础上减少一个变量,则模型只含k-1个变量; |
(b)在 k k k个模型中选择RSS(偏差—logistic)最小或R²最大的作为最优模型,记为 M k − 1 M_{k-1} Mk−1 |
3. 根据交叉验证预测误差、 C p ( A I C ) C_{p}(AIC) Cp(AIC)、BIC或者调整R²,从 M 0 , … … , M p M_{0},……,M_{p} M0,……,Mp个模型中选择最优模型 |
向后选择方法需满足样本量n 大于变量个数p,当n<p,p很大的情况下,只能用向前逐步选择。
1.3 选择最优模型
R
S
S
RSS
RSS与
R
2
R^2
R2并不适用于对包含不同个数预测变量模型进行模型选择,它们都与训练误差有关,我们希望具有最小的测试误差,训练误差可能是测试误差的一个较差估计。
通常:
- 根据过拟合导致的偏差对训练误差进行调整,间接地估计测试误差;
- 通过验证集方法或交叉验证方法,直接估计测试误差。
1.3.1 C p 、 A I C 、 B I C 、 调 整 的 R 2 C_{p}、AIC、BIC、调整的R^2 Cp、AIC、BIC、调整的R2
-
C p C_{p} Cp值
采用最小二乘法拟合一个包含d个预测变量的模型,其 C p C_{p} Cp值为:
C p = 1 n ( R S S + 2 d σ ^ 2 ) C_{p}=\frac{1}{n}\left(\mathrm{RSS}+2 d \hat{\sigma}^{2}\right) Cp=n1(RSS+2dσ^2)
其中 σ ^ 2 \hat{\sigma}^{2} σ^2是标准线性回归模型中各个响应变量观测误差的方差 ϵ \epsilon ϵ的估计值,选择具有最低 C p C_{p} Cp值的模型作为最优模型。 -
赤池信息量准则(Akaike information criterion, AIC)
A I C = 1 n σ ^ 2 ( R S S + 2 d σ ^ 2 ) \mathrm{AIC}=\frac{1}{n \hat{\sigma}^{2}}\left(\mathrm{RSS}+2 d \hat{\sigma}^{2}\right) AIC=nσ^21(RSS+2dσ^2)
AIC准则适用于许多使用极大似然法进行拟合的模型。若标准线性回归模型的误差项服从高斯分布,极大似然估计和最小二乘估计是等价的。
对于最小二乘模型, C p C_{p} Cp与AIC彼此成比例。 -
贝叶斯信息准则(Bayesian information criterion, BIC)
B I C = 1 n σ ^ 2 ( R S S + log ( n ) d σ ^ 2 ) \mathrm{BIC}=\frac{1}{n \hat{\sigma}^{2}}\left(\mathrm{RSS}+\log (n) d \hat{\sigma}^{2}\right) BIC=nσ^21(RSS+log(n)dσ^2)
与 C p C_{p} Cp类似,测试误差较低的模型BIC统计量取值较低,选择具有最低BIC的模型为最优模型。
BIC将 C p C_{p} Cp中的 d σ ^ 2 d \hat{\sigma}^{2} dσ^2替换为 log ( n ) d σ ^ 2 \log (n) d \hat{\sigma}^{2} log(n)dσ^2,n为观测数量,对于任意n>7,logn>2,BIC统计量通常给包含多个变量的模型进行较重的惩罚,与 C p C_{p} Cp相比,得到的模型规模更小。 -
调整的 R 2 R^2 R2
Adjusted R 2 = 1 − RSS / ( n − d − 1 ) TSS / ( n − 1 ) \text { Adjusted } R^{2}=1-\frac{\operatorname{RSS} /(n-d-1)}{\operatorname{TSS} /(n-1)} Adjusted R2=1−TSS/(n−1)RSS/(n−d−1)
与 C p C_{p} Cp、AIC、BIC不同,调整的 R 2 R^2 R2越大,模型的测试误差越小。
与 R 2 R^2 R2统计量不同,调整的 R 2 R^2 R2对对纳入不必要变量的模型引入了惩罚。
1.3.2 验证与交叉验证
为每个可能最优的模型计算验证集误差或者交叉验证误差,选择测试误差估计值最小的模型。
与1.3.1的方法相比,优势在于,给出了测试误差的一个直接估计,并对真实的潜在模型有较少的假设,适用范围更广泛。
一倍标准误差准则:
- 计算不同规模下模型测试均方误差估计值的标准误差
- 选择测试样本集误差估计值在曲线最低点一倍标准之内切规模最小的模型
这样在一系列效果近似相同的模型中,总是倾向于选择最简单的模型。
2. 压缩估计方法
对系数进行约束或加罚的技巧对包含p个预测变量的模型进行拟合,通过压缩系数估计值,显著减少了估计量方差。
2.1 岭回归
岭回归与最小二乘相似:
最小二乘回归,通过最小化函数
RSS
=
∑
i
=
1
n
(
y
i
−
β
0
−
∑
j
=
1
p
β
j
x
i
j
)
2
\operatorname{RSS}=\sum_{i=1}^{n}\left(y_{i}-\beta_{0}-\sum_{j=1}^{p} \beta_{j} x_{i j}\right)^{2}
RSS=∑i=1n(yi−β0−∑j=1pβjxij)2,对
β
0
,
β
1
,
…
,
β
p
\beta_{0}, \beta_{1}, \ldots, \beta_{p}
β0,β1,…,βp进行估计。
岭回归系数估计值
β
^
R
\hat{β}^{R}
β^R,通过最小化下式获得:
∑
i
=
1
n
(
y
i
−
β
0
−
∑
j
=
1
p
β
j
x
i
j
)
2
+
λ
∑
j
=
1
p
β
j
2
=
R
S
S
+
λ
∑
j
=
1
p
β
j
2
\sum_{i=1}^{n}\left(y_{i}-\beta_{0}-\sum_{j=1}^{p} \beta_{j} x_{i j}\right)^{2}+\lambda \sum_{j=1}^{p} \beta_{j}^{2}=\mathrm{RSS}+\lambda \sum_{j=1}^{p} \beta_{j}^{2}
i=1∑n(yi−β0−j=1∑pβjxij)2+λj=1∑pβj2=RSS+λj=1∑pβj2
其中,
λ
≥
0
\lambda≥0
λ≥0是一个调节参数,单独确定。控制RSS与惩罚项对回归系数估计的相对影响程度。
与最小二乘相同,岭回归通过最小化RSS寻求较好地拟合数据的估计量。
λ
∑
j
=
1
p
β
j
2
\lambda \sum_{j=1}^{p} \beta_{j}^{2}
λ∑j=1pβj2为压缩惩罚项,当
β
0
,
β
1
,
…
,
β
p
\beta_{0}, \beta_{1}, \ldots, \beta_{p}
β0,β1,…,βp接近0时较小,因此具有将
β
j
\beta_{j}
βj估计值往0的方向进行压缩的作用。
当
λ
=
0
\lambda=0
λ=0,惩罚项不产生作用,岭回归与最小二乘回归结果相同;当
λ
→
∞
\lambda→∞
λ→∞,压缩惩罚项的影响力增大,岭回归系数估计值越来越接近0,所以岭回归得到的系数估计
β
^
R
\hat{β}^{R}
β^R随
λ
\lambda
λ变化而变化。
若数据矩阵
X
X
X的列在岭回归前已经进行中心化,均值为0,则截距项估计值为:
β
^
0
=
y
ˉ
=
∑
i
=
1
n
y
i
/
n
\hat{\beta}_{0}=\bar{y}=\sum_{i=1}^{n} y_{i} / n
β^0=yˉ=∑i=1nyi/n
岭回归估计系数受预测变量尺度变化的影响,所以使用岭回归前,要对预测变量进行标准化,统一尺度:
x
~
i
j
=
x
i
j
1
n
∑
i
=
1
n
(
x
i
j
−
x
ˉ
j
)
2
\tilde{x}_{i j}=\frac{x_{i j}}{\sqrt{\frac{1}{n} \sum_{i=1}^{n}\left(x_{i j}-\bar{x}_{j}\right)^{2}}}
x~ij=n1∑i=1n(xij−xˉj)2
xij
VS 最小二乘回归:综合权衡了误差与方差,随着 λ \lambda λ的增加,岭回归拟合结果的光滑度降低,虽然方差降低,但是偏差在增加。
2.2 lasso回归
岭回归的最终模型包含全部p个变量,惩罚项
λ
∑
j
=
1
p
β
j
2
\lambda \sum_{j=1}^{p} \beta_{j}^{2}
λ∑j=1pβj2可以将系数往0的方向进行缩减,但是不会把任何一个变量的系数确切地压缩至0。这种设定不影响预测精度,但是当变量个数p非常大时,不便于模型解释。lasso回归克服了岭回归的上述缺点。
lasso的系数
β
^
L
\hat{β}^{L}
β^L通过最小化下式得到:
∑
i
=
1
n
(
y
i
−
β
0
−
∑
j
=
1
p
β
j
x
i
j
)
2
+
λ
∑
j
=
1
p
∣
β
j
∣
=
RSS
+
λ
∑
j
=
1
p
∣
β
j
∣
\sum_{i=1}^{n}\left(y_{i}-\beta_{0}-\sum_{j=1}^{p} \beta_{j} x_{i j}\right)^{2}+\lambda \sum_{j=1}^{p}\left|\beta_{j}\right|=\operatorname{RSS}+\lambda \sum_{j=1}^{p}\left|\beta_{j}\right|
i=1∑n(yi−β0−j=1∑pβjxij)2+λj=1∑p∣βj∣=RSS+λj=1∑p∣βj∣
与岭回归的区别在于,
β
j
2
\beta_{j}^2
βj2替换为
∣
β
j
∣
|\beta_{j}|
∣βj∣。lasso采用
l
1
l_{1}
l1惩罚项,而不是
l
2
l_{2}
l2惩罚项。系数
β
\beta
β的
l
1
l_{1}
l1范数定义为
∥
β
∥
1
=
∑
∣
β
j
∣
\|\beta\|_{1}=\sum\left|\beta_{j}\right|
∥β∥1=∑∣βj∣。当
λ
\lambda
λ足够大时,
l
1
l_{1}
l1惩罚项具有将其中某些系数的估计值强制设定为0的作用,从而达到变量选择的目的。
lasso得到了稀疏模型(sparse model)——只包含所有变量一个子集的模型。