包含更多的预测变量不是免费的:在系数估算的更多可变性,更难的解释以及可能包含高度依赖的预测变量方面要付出代价。确实, 对于样本大小
,在线性模型中可以考虑 的预测变量最大数量为 p 。或等效地,使用预测变量p 拟合模型需要最小样本量
。
如果我们考虑p = 1 和 p = 2 的几何,这一事实的解释很简单:
如果p = 1,则至少需要n = 2个点才能唯一地拟合一条线。但是,这条线没有给出关于其周围变化的信息,因此无法估计
。因此,我们至少需要
个点,换句话说就是
。
如果p = 2 ,则至少需要n = 3个点才能唯一地拟合平面。但是同样,该平面没有提供有关其周围数据变化的信息,因此无法估计
。因此,我们需要
。
下一部分代码的输出阐明了
和
之间的区别。
# 数据:n个观测值,p = n-1个预测变量
n
p
df
# 情况p = n-1 = 2:可以估计beta,但不能估计sigma ^ 2(因此,不能执行推断,因为它需要估计的sigma ^ 2)
summary(lm(y ~ ., data = df))
# 情况p = n-2 = 1:可以估计beta和sigma ^ 2(因此可以进行推断)
summary(lm(y ~ . - x.1, data = df))
当
减小时,自由度
量化
的变异性的增加。
既然我们已经更多地了解了预测变量过多的问题,我们将重点放在 为多元回归模型选择最合适的预测变量上。如果没有独特的解决方案,这将是一项艰巨的任务。但是,有一个行之有效的程序通常会产生良好的结果: 逐步模型选择。其原理是 依次比较具有不同预测变量的多个线性回归模型。
在介绍该方法之前,我们需要了解什么是 信息准则。信息标准在模型的适用性与采用的预测变量数量之间取得平衡。两个常见标准是 贝叶斯信息标准 (BIC)和 赤池信息标准 (AIC)。两者都基于 模型适用性和复杂性之间的平衡:
其中
是模型的对 数似然度 (模型拟合数据的程度),而
是考虑的参数数量在模型中,对于具有p个预测变量的多元线性回归模型,则为p + 2。AIC在用
替换了
, 因此,与BIC相比,它对 较复杂的模型的处罚较少。这就是为什么一些从业者更喜欢BIC进行模型比较的原因之一。BIC和AIC可以通过BIC 和 计算 AIC。
我们使用地区房价数据,变量介绍:
(1)town:每一个人口普查区所在的城镇
(2)LON: 人口普查区中心的经度
(3)LAT: 人口普查区中心的纬度
(4)MEDV: 每一个人口普查区所对应的房子价值的中位数 (单位为$1000)
(5)CRIM: 人均犯罪率
(6)ZN: 土地中有多少是地区是大量住宅物业
(7)INDUS: 区域中用作工业用途的土地占比
(8)CHAS: 1:该人口普查区紧邻查尔斯河;0: 该人口普查区没有紧邻查尔斯河
(9)NOX: 空气中氮氧化物的集中度 (衡量空气污染的指标)
(10)RM: 每个房子的平均房间数目
(11)AGE: 建于1940年以前的房子的比例
(12)DIS: 该人口普查区距离波士顿市中心的距离
(13)RAD: 距离重要高速路的远近程度 (1代表最近;24代表最远)
(14)TAX: 房子每$10,000价值所对应的税收金额
(15)PTRATIO: 该城镇学生与老师的比例
他们将作为模型输入。
#具有不同预测变量的两个模型
mod1
mod2
#BICs
BIC(mod1)
## [1] 3581.893
BIC(mod2) # 较小->较好
## [1] 3300.841
#AICs
AIC(mod1)
## [1] 3564.987
AIC(mod2) # 较小->较好
## [1] 3279.708
#检查摘要
##
## Residuals:
## Min 1Q Median 3Q Max
## -13.940 -4.991 -2.420 2.110 32.033
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 29.80067 0.97078 30.698 < 2e-16 ***
## age -0.08955 0.01378 -6.499 1.95e-10 ***
## crim -0.31182 0.04510 -6.914 1.43e-11 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 8.157 on 503 degrees of freedom
## Multiple R-squared: 0.2166, Adjusted R-squared: 0.2134
## F-statistic: 69.52 on 2 and 503 DF, p-value: < 2.2e-16
summary(mod2)
##
## Call:
## lm(formula = medv ~ age + crim + lstat, data = Boston)
##
## Residuals:
## Min 1Q Median 3Q Max
## -16.133 -3.848 -1.380 1.970 23.644
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 32.82804 0.74774 43.903 < 2e-16 ***
## age 0.03765 0.01225 3.074 0.00223 **
## crim -0.08262 0.03594 -2.299 0.02193 *
## lstat -0.99409 0.05075 -19.587 < 2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 6.147 on 502 degrees of freedom
## Multiple R-squared: 0.5559, Adjusted R-squared: 0.5533
## F-statistic: 209.5 on 3 and 502 DF, p-value: < 2.2e-16
让我们回到预测变量的选择。如果我们有p个预测变量,那么一个简单的过程就是检查 所有 可用它们构建的可能模型,然后根据BIC / AIC选择最佳模型。这就是所谓的 最佳子集选择。问题在于存在
个可能的模型!
让我们看看如何研究 wine 数据集,将使用所有可用预测变量的数据作为初始模型。