重抽样( resampling )主要用于以下三个目的:
(1). 估计样本统计量(如中位数、方差、分位数等)的精度,使用数据的子集( jackknifing )或者样本的有放回抽样( bootstrapping );
(2). 检验时交换数据点的标签;
(3). 使用随机的样本子集,验证模型的有效性。
Bootstrap 是评价统计精度的一种常见方法。它的基本思想是,利用样本的重抽样数据推断总体。由于总体是未知的,因此,样本统计量关于总体值的真实误差也是未知的。在 Bootstrap 重抽样中,总体由样本表示。
设样本 x1,x2,…,xn 来自某总体 F , F 未知。对样本进行有放回抽样( samping with replacement ),得到与原始样本同样大小的 bootstrap* 样本,不妨记为
x∗(1)1,x∗(1)2,…,x∗(1)n
x∗(2)1,x∗(2)2,…,x∗(2)n
⋮
x∗(B)1,x∗(B)2,…,x∗(B)n
其中, B 为重抽样次数,即 bootstrap 样本容量。
设统计量 Tn=Tn(x1,x2,…,xn) , 称
T∗(j)n=Tn(x∗(j)1,x∗(j)2,…,x∗(j)n)(j=1,2,…,B) 为统计量 Tn 的 bootstrap replicates. 现在利用 T∗(1)1,T∗(2)2,…,T∗(B)n 来估计 Tn 的准确性。
设样本 y1,y2,…,yB 来自某分布 G , 由大数定律,知
设样本分布是 F^n , Tn 是一个统计量, VFn^(Tn) 是 Tn 关于 F^n 的方差。模拟样本 x∗1,x∗2,…,x∗n 来自 F^n , 然后计算 T∗n=Tn(x1,x2,…,xn) . 从 F^n 中抽取一个观测样品,等价于从原始样本中随机地抽取一个样品,即从原始样本 x1,x2,…,xn 中有放回地抽取 n 个样品,组成一个 bootstrap 样本,计算 T∗n 的值。具体步骤如下:
(1). 取样本 x∗1,x∗2,…,x∗n 来自 F^n ;
(2). 计算 T∗n=Tn(x∗1,x∗2,…,x∗n) ;
(3). 重复(1), (2) B 次,得到 T∗n,1,T∗n,2,…,T∗n,B ;
(4). 令 vboot=1B∑b=1B(T∗n,b−1B∑b=1BT∗n,b)2 .
Bootstrap 通常应用于估计一个统计量的分布,不使用正态理论。
交叉验证( cross-validation )是一种模型验证技术,它主要用于估计一个预测模型的准确性。在一个预测问题里,数据集通常分成已知的(训练集)和未知的(检验集)两部分。其中训练集用来训练预测模型,检验集用来检验模型的准确性。
一轮交叉验证,是指首先将样本分割成训练集和检验集两部分,在训练集上建模,在检验集评价分析模型。为了降低变异度,需要做多轮交叉验证,平均评价指标(例如,预测误差)。
交叉验证的常见类型:
使用p 个观测数据点作为检验集,其余的数据作为训练集。该方法需要学习和验证 (np) , 其中 n 是原始样本的大小。
在留 p 法中,取 p=1, 即得留一法。
将随机样本随机地分成 K 等份。一个子样本作为检验集,其余 K-1 个子样本作为训练集。交叉验证重复 K 次,每次使用不同的子样本作为检验集,平均 K 次结果产生一个估计。常见的, K=10 . 该方法的优点是:所有的观测都被使用作为训练和检验,每一个观测只被使用一次作为检验。
阅读更多精彩内容,请关注微信公众号“统计学习与大数据”!