统计学习: 估计方法
估计方法
简介
- 此前我们所说的
RSE、置信区间等指标都需要测试误差,而测试误差是不可知的,因为没有标签 - 因此需要用一定的方法估计测试误差,除了测试误差,各种统计量的不确定性也需要估计,这有利于我们分析估计出来的统计量的浮动程度
- 在真正处于没有标签的环境之前,可以通过切出小部分数据集不让模型训练,从而预估模型的效果,分割出来给模型训练的是训练集,其余的为测试集,有时希望人工调整一些参数,会继续分割为验证集和测试集,验证集用于中期人工调整、测试集用于最终效果评估和展示(不再调整)
- 验证集的思路是好的,但是验证集通常是远小于训练集的数据量,且具有偶然性,测试误差被高估(有偏的)(不同的分割方式对误差影响大)
交叉验证法
K折交叉验证
K折交叉验证就是用于估计测试误差的被广泛使用的方法- 其原理是将数据集分为
K折大小一致的组,进行K次训练-测试,其中第i次的测试集为第i组,其余组为训练集,交叉验证最终的MSE为K次测试MSE的均值 - 通过划分来进行交叉验证,解决了验证集方法因训练次数只有一次而因划分方案导致的随机性,
K折交叉验证本身也会因K的变大而变得更加稳定 - 当
K不那么小时,可将交叉验证估计出来的误差为对某$\frac nk$个未知样本的误差的渐进无偏估计,当K变大其训练集的样本数自然变少,从而和验证集方法一样变得有偏
留一法
LOOCV(留一法)是特殊的K折交叉验证,它把数据集分为n(样本数)组,即验证集只有一个样本,因此会进行完整n次训练-测试拟合LOOCV是对某一个未知样本的误差的渐进无偏估计,渐进指N十分大时,估计出的误差和真实的泛化误差差不多由于留一法测试时选取的是一个样本,所以说是对某一个未知样本的无偏估计,又因为训练集几乎等同于整个数据集,留一法的偏差会更小
留一法的划分是固定的,因为每一折只有一个样本,划分方案只有一种,对同一个数据集,留一法的估计结果是确定的
在采用最小二乘法拟合线性模型时,
LOOCV估计的误差可以近似于只进行一次拟合:$$ CV_(n)=\frac1n\sum_{i=1}^n\left(\frac{y_i-\hat y_i}{1-h_i}\right) $$
自助法
自助法专注于估计一个统计量的不确定性,比如泛化误差的标准差和置信区间,而不是估计泛化误差
估计不确定性需要大量的数据和大量的重复试验来估计统计量的总体分布,因此交叉验证不适合
自助法的原理是对数据集进行多次有放回重复简单随机抽样,从而获得近似总体的若干数据集,一次简单随机抽样获得的数据集和原始数据集大小一致,称为一个自助样本
然后,对于每个自助样本,可以证明当
n较大时有大概三分之二的重复的样本点,自助法使用自助样本来训练,使用袋外样本来测试,得到对应的统计量,这个统计量(例如泛化误差)一般是被低估的,虽然测试集和训练集没有重叠,但是训练集本身因为有重复样本已经和总体分布偏离了虽然统计量的偏差较大,但是其方差、置信区间等却能很好地代表总体的方差
三分之二重复的证明:抽样符合$P(x未被抽中)=\left(1-\frac{1}{n}\right)^n$,
n取极大后取极限为$\frac1e$约等于三分之一蒙特卡洛模拟对该方法进行了压力测试,即使统计量的估计分布和其总体分布偏差较大,但统计量的估计分布的不确定性却十分准确
间接估计测试误差
Cp
交叉验证是用于直接估计测试误差的方法,而有些方法通过对训练误差进行数学调整来间接地估计测试误差
Cp统计量:其中p为预测变量个数、σ̂2为测试误差的方差的估计值
$$ C_p=\frac1n(RSS+2p\hat\sigma^2) $$
因为训练误差通常小于测试误差,因此需要加上惩罚项来估计被低估的测试误差,其中参数个数越大惩罚越大
直观上来看,Cp统计量肯定越小越好,如果σ̂2是σ2的无偏估计,那么Cp也就是测试误差的无偏估计了
σ̂2一般用包含全部变量的模型通过自助法估计
BIC
BIC(贝叶斯信息准则)统计量,对于最小二乘法拟合得到的模型,其形式为:$$ BIC=\frac1nRSS+\log(n)p\hat\sigma^2 $$
相比Cp,在n > 100时其惩罚更大
AIC
AIC(赤池信息准则)统计量不仅适用于最小二乘法,适用于大部分极大似然法拟合得到的模型(其中L为似然函数的极大值):$$ AIC=-2\logL+2p $$
AIC针对最小二乘法的形式为:$$ AIC=\frac1{n\hat\sigma^2}(RSS+2p\hat\sigma^2) $$
调整R2
调整R2肯定是让它变小:
$$ R^2=1-\frac{RSS(n-1)}{TSS(n-p-1)} $$
调整R2没有理论证明,但是广泛适用,是对多余变量数p的惩罚