Bootstrap估计失效情形的探讨
2018-11-22王丙参魏艳华
王丙参,魏艳华
(天水师范学院 数学与统计学院,甘肃 天水 741001)
0 引言
统计理论以样本推断总体,大多数结论都是基于大样本的,即只有样本容量足够大时才成立,但在实际中,确实存在因各种原因导致的小样本情况[1,2]。Bootstrap方法正是处理这类小样本问题的非参数方法,它利用计算机对小样本再抽样,进而模拟感兴趣的未知分布并估计目标特征量,节约了成本,提高了精度,这就增加了此方法的实际应用性[3-6]。近年来,Bootstrap方法一直是人们关注的热点之一,并取得了巨大成功,甚至有人把Bootstrap方法看做万能药,到处使用,但此法需要一定的条件才能产生合理结论,决不能盲用、滥用。基于此,本文探讨了Bootstrap方法的失效情况,并给出了相应的对策,最后利用蒙特卡罗方法验证了前面结论,得出:利用部分样本估计感兴趣的量时,Bootstrap方法很可能会失效;样本数据的小偏差超过一定界限时,Bootstrap方法的实际效果也不好。
1 估计量利用部分样本会导致非参数Bootstrap方法失效
假定观测数据X={X1,X2,…,Xn}是来自总体F的独立同分布样本且样本量较小,是样本的经验分布函数,T=g(X1,…,Xn)是感兴趣量θ=T(F)的估计量,也常简记为或Tn。实际中常根据估计量)和R(X,F)解决统计推断问题,但由于R(X,F)依赖小样本X和未知分布F,这导致R(X,F)的分布常常未知或者很难处理。另外,由于样本量等问题会导致估计)可能会很不精确,而利用Bootstrap方法对样本的经验分布函数再抽样,可给出R(X,F)的一种近似,它不需要参数假设且扩大了样本量,与传统参数估计理论相比,提高了估计精度[1]。再抽取样本相当以概率从样本经验分布函数中抽样,即利用经验分布函数生成近似随机数,习惯上记Bootstrap伪数据集为,也可称为伪Bootstrap样本。显然,X*的元素独立同分布于经验分布函数,Bootstrap方法就是视R(X*,̂)和R(X,F)是等价的,相应Tn的非参数Bootstrap估计记为。自然,人们希望,但在有些情况下,此目的不一定能达到,这就会导致Bootstrap方法的效果很差,甚至失效。通常,样本容量为n的实际问题存在很多潜在伪数据集,但是无法将其所对应的概率一一列举。退而求其次,可从样本经验分布函数中随机抽取独立的伪数据集,…,C,这样就不需要完全列举伪数据集,并且可以通过增大C使误差降到可控范围。
在前面的记号下,样本X={X1,X2,…,Xn}中没有结,即样本中没有两个或两个以上相同数据的地方,不妨令X1,…,Xm表示样本X1,…,Xn中m个不同的量,m<n,若Tn=g(X1,…,Xm),则有:
其中,=g(,…,)。
事实上,由样本之间的独立性,与再抽样的等可能性,则再抽样的第一个样本不可能是X1,…,Xm中任意一个的概率为:
P
进一步,则有:
Pi=P
又因为=Tn等价于n个再抽样样本X*={,中含有{X1,…,Xm}中至少各一个,故:
特别当m=1时比如,对于总体均值θ,估计量也是θ的无偏估计量,但只利用了部分样本,此时Bootstrap方法就效果不佳,甚至可能会失效,尤其当m=1时,效果最差。这也从侧面说明,当参数的估计量Tn=g(X1,…,Xm)仅利用了部分样本,非参数Bootstrap方法效果就会很差,且利用的样本越少,效果越差。遗憾的是,Bootstrap方法主要是用来处理小样本问题的,在一般情况下,样本容量n不会太大,甚至不会超过50,因为在n充分大时,经典估计的效果也会很好,Bootstrap方法的优势就体现不出来了。注意,如果n太小,比如小于5时,Bootstrap方法非常不稳定,其实,只有5个样本的话,用什么方法估计效果都不会太理想,复杂的数量方法可能还不如专家的定性预测。模拟结果表明,当样本量超过15时,Bootstrap方法估计效果都比较可靠。对于小样本问题,在实际中,讨论极限就没有多大意义,应用最多的反而是:
比如,当m=1,n=50,P=Tn)=0.6358。
在前面的记号下,若Tn=max{X1,…,Xn} ,样 本X={X1,X2,…,Xn}中没有结,则:
之所以没采用常见的置信区间去评价,这是因为构造置信区间采用的方法不同,效果也会随之改变。Bootstrap方法的实现步骤为:
(1)生成随机数x1,…,xn服从U(0,θ),并计算tn=max{x1,…,xn}。
(2)从样本x1,…,xn再抽样,得到 Bootstrap 样本
其实,估计量Tn=max{X1,…,Xn}只利用了样本中的最大值,相当于m=1的情形。
例1:若样本X={X1,X2,…,Xn}来自总体U(0,θ),则θ的极大似然估计为Tn=max{X1,…,Xn},不妨取θ=1,随机产生一个样本容量为n的样本,由初等概率统计知识可知,估计量Tn的真实分布为:
fn(x)=nxn-1,0<x<1
模拟结果采用平均绝对误差MAE和均方误差MSE评价,当然,它们越小越好,其中:,并计算
(3)重复(2)共C次,得到C个最大值,分别记为
令样本容量n=10,40,生成样本观测值的直方图如图1所示。
图1 总体为U(0,1)的样本直方图(左图:n=10,右图:n=40)
令模拟次数C=1000,100000,绘制估计值的频率直方图与真实密度曲线,如图2、图3所示,并计算模拟概率与评价指标,如表1所示。
图2 103次模拟估计值的频率直方图与真实密度曲线(左图:n=10,右图:n=40)
图3 105次模拟估计值的频率直方图与真实密度曲线(左图:n=10,右图:n=40)
表1 模拟指标
理论上,真实密度曲线的左尾应该很薄,接近1时则上升很快。由图2、图3可以看出,虽然非参数Bootstrap估计的频率直方图与这个特征不太吻合,但随着样本容量n的增大,吻合程度在变好,这表明虽然非参数Bootstrap方法的估计效果不太理想,但随着样本容量n的增加,模拟效果也会越来越好。
理论上,当n=10 时,P=Tn)=0.6513;当n=40时,P=Tn)=0.6368,这离1还是比较远的,这也表明非参数Bootstrap方法的估计效果不理想。由表1可知,模拟的概率值非常接近理论值,并且随着模拟次数C的变大,越来越可能接近理论概率,即事件发生的频率会以概率收敛到事件发生的概率。在相同的模拟次数C下,随着样本容量n的增加,平均绝对误差MAE和均方误差MSE都在变小,这也说明非参数Bootstrap方法随着样本容量n的增加,模拟效果越来越好。值得注意的是,当n=10时,随着模拟次数的增加,平均绝对误差MAE和均方误差MSE竟然变大了,这表明:对于非参数Bootstrap方法,当样本容量n小时,模拟结果可能不稳定。
限于方法的类似性与篇幅,本文没有再去验证当m更大时非参数Bootstrap方法的表现,但可以预测效果不会太理想。最后,建议使用非参数Bootstrap方法估计总体参数时,要选择利用尽可能多样本的估计量,同时为提高模拟精度,尽量提高模拟次数。
2 样本小偏差对Bootstrap方法的影响
理论上,样本均值的Bootstrap偏差修正值应等于0,这是因为样本均值ˉ是总体均值μ的无偏估计[7]。令,如果在观测数据与Bootstrap伪数据集的联合集合中各个数据值的频数相同,则Bootstrap偏差的估计等于0,通过这种方式修正Bootstrap数据,就剔除了潜在蒙特卡罗误差出现的根源。遗憾的是样本观测值不可能均值刚好为0,会出现小偏差,这时,Bootstrap效果会变差,甚至失效。
例2:假定对总体N(0,1)抽取n=10 个随机样本:-0.0132-0.5803 2.1363-0.2576-1.4095 1.7701 0.3255-1.1190 0.6204 1.2698
样本均值为0.2742,即样本小偏差为0.2742,这还是比较大的。令α=5%,采用下面方法对抽样样本分别进行处理,从而得到相应的统计推断,结果见表2、图4、图5,置信区间采用分位数法估计[8]。
表2 总体均值的估计值与置信区间
图4 均值估计直方图(左图:方法2,右图:方法3)
方法1:经典方法。
方法2:Bootstrap方法。
方法3:改进Bootstrap方法。
即将观测样本从小到大排序并记为x1,…,xn,对每个观测值xi取邻域Ui=[xi-εi,xi+εi] ,其中i=2,…,n,且ε1=ε2,m≥2。注意,当样本容量较小时,m可适当取大点。接着,再按照如下规则抽样获得自助样本
图5 均值估计直方图(左图:方法4,右图:方法5)
方法4:反向Bootstrap方法,它与Bootstrap方法相比,只是获取Bootstrap数据集方式有一定变化。如果数据集x1,…,xn按 大 小 排 序 后 得 次 序 统 计 量x(1),…,x(n)。 令A(i)=n-i+1,表示次序统计量反方向排序算子,于是,将Bootstrap伪数据集中x(i)替换为x(A(i))可获得新的Bootstrap伪数据集最 后 令可以证明,当和R(X**,̂)负相关时,缩小了蒙特卡罗误差。
方法5:Bayes Bootstrap方法。即:
(1)生成n-1个随机数ui~U(0,1),i=1,2,…,n-1,排序并记为u(1),…,u(n-1),令u(0)=0 ,u(n)=1;
(2)计算权重vi=u(i)-u(i-1),i=1,…,n;
(3)计算加权平均值
从表2可以看出,当小偏差达到0.2742时,从估计值与真值的偏差而言,各种Bootstrap方法并没有改善结果,基本上失效。当然,从方法上而言,改进Bootstrap方法比Bootstrap方法具有一定改善,而反向Bootstrap方法在R(X*,̂)和R(X**,̂)是负相关时,蒙特卡罗方差会变小,注意,这不一定发生。幸运的是,本次模拟结果在一定程度上缩小了蒙特卡罗方差,但比改进Bootstrap方法效果差。Bays Bootstrap方法估计结果最稳定,这也导致它受数据集影响最大,本例小偏差为0.2742,这就可能导致置信区间不包含真值,这也正好验证了本文的结论:当小偏差大时,Bays Bootstrap方法是无效的。
众所周知,当模型类型已知时,参数化的Bootstrap方法因利用总体信息而比经典Bootstrap方法更精确,但是,如果模型选择有误,参数化的Bootstrap方法反而会变差,即利用错误的总体信息还不如不利用。下面本文分别假定总体为N(μ,1)和U(-2,θ),应用参数化Bootstrap方法进行估计,模拟结果为表3与图6。
表3 基于参数化Bootstrap方法的均值估计值与置信区间
图6 总体 N(μ,1)(左)与总体U(-2,θ)(右)下均值估计直方图
因为真实模型为标准正态分布N(0,1),所以选择为总体N(μ,1)是正确的,选择总体为U(-2,θ)是错的。从表3看出,当小偏差大时,参数化Bootstrap方法也是失效的。特别指出,当总体假设错误,估计结果基本没有参考价值,只能用混乱来概括。
3 结束语
通过以上讨论,当小偏差超过一定界限时,Bootstrap方法会失效。并根据模拟结果显示:当小偏差超过标准差的十分之一时,在一般情况下Bootstrap方法就会失效。当然,从置信区间长度与标准差而言,Bootstrap方法在一定程度上变小,但这没有多大实际意义。其实,当随机样本与真实总体出现偏差时,采用什么估计方法都不会太好,因为样本不能代表总体,根据有偏样本是不能正确推断总体的。