1.统计研究的目的和意义一般来说,涉及到对总体的均值进行区间估计,通常的方法是根据抽得的样本量大小来选择合适的统计量,进而套用相应的公式来进行区间估计。通常进行区间估计时,总是把总体假设为正态分布,在此基础上利用相关理论和统计表进行推断。Bootstrap方法是一种在抽样的统计方法,也叫做自助法。该方法只依赖于给定的观测信息,不需要其他的假设,不需要增加新的观测。它借助计算机对原始样本资料进行重复抽样以产生一系列“新”的样本,可以用于研究一组数据某统计量的分布特征,特别适用于那些难以用常规方法导出的对参数的区间估计、假设检验等问题。Bootstrap方法的基本思想是:在原始数据的范围内作有放回的再抽样,对参数θ进行估计,样本含量仍为n,原始数据中每个观察值每次被抽到的概率相等,为1/n,所得样本为Bootstrap样本,这样重复B次,就可以得到B个Bootstrap样本,然后进行统计分析。此方法可以提高小样本下对总体均值区间估计的精度。2.数据的背景和结构数据来自某厂某种灯泡的寿命,已知其服从正态分布。先从一批灯泡中随机抽取16个,测得其寿命为:1510,1450,1480,1460,1520,1480,1490,1460,1480,1510,1530,1470,1500,1520,1510,1470。数据只有16个,属于小样本。常规方法对小样本进行总体均值区间估计误差可能会比较大。常规的方法可以得到区间估计的结果为(x-2/t(16-1)s/n,x+2/t(16-1)s/n).另外将用三种Bootstrap方法对均值进行区间估计。3.Bootstrap方法区间估计的三种类型对置信区间进行估计主要采用标准Bootstrap,百分位数Bootstrap,t百分位数Bootstrap三种方法。(1)标准Bootstrap方法假设从服从某分布的总体X中独立随机地抽取容量为n的样本x1,x2,x3,...,xn。对原始样本就行重复的又放回抽样,共有n^n个可能的Bootstrap样本。对于每一个子样本求出的均值,都是总体均值的一个估计值。同时,样本均值与总体均值的分布相同。但是实际抽取中,n^n个样本对计算机的运行速度是一个非常大的挑战,在实际操作中,一班B取3000即可。但是考虑到后面的方法以来bootstrap样本的近似分布要求样本量尽量大,我将在最后的模拟中取B=10000。令^x作为x的估计值,^(i)x表示第i个bootstrap样本得到的均值。则^x=B1Biix1^)(样本方差为Var(^x)=1-1B2^B1^(i)}x{xi,由此得到总体均值的(1-α)%置信区间为:[^x-2/1uVar(^x),^x+2/1uVar(^x)].其中2/1u是标准正态分布的1-α/2百分位数。(2)百分位数Bootstrap方法利用Bootstrap经验分布的第α/2和第1-α/2分位点是(1-α)置信水平之下统计量的置信区间的上下限。具体如下:通过Bootstrap抽样,可以得到B个Bootstrap样本,将每个样本得到的样本均值按照从小到大的顺序排列,可以得到一组顺序统计量^*(i)x,则第α/2和第1-α/2分位点分别是1-α置信水平下统计量x的置信区间的上下限,即[^*B)2(x,^*)B)2-((1x]。(3)t百分位数Bootstrap方法是在对百分位数Bootstrap方法进行改进得到的。通常此方法比百分位数bootstrap方法得到更精确的置信区间。进行bootstrap抽样,针对每个bootstrap样本计算t统计量:)(ti=)(x^)(^xVarxi,将结果从小到大排列,得到顺序统计量*)(ti,当显著性水平为α时,第α/2和第1-α/2分位点分别为*)2(tB和*))21((tB.则总体均值的置信区间为:[^x-*)2(tB*)(arxV,^x-*))21((tB*)(arxV]。4.模拟试验研究(1)使用常规方法,按照公式(x-2/t(16-1)s/n,x+2/t(16-1)s/n)得到总体均值的置信区间为[1477,1503],区间长度为26.(2)使用标准bootstrap方法,该方法思路很清晰,可以使用matlab实现,取α=0.05,程序如下:function[y1,y2]=bfun1(x,b)fori=1:bforj=1:12k=randint(1,1,[1,16]);x1(j)=x(k);endx2(i)=mean(x1);endx0=mean(x2);fori=1:ba(i)=(x2(i)-x0)^2;endp=sqrt(sum(a)/(b-1));y1=x0-1.96*p;y2=x0+1.96*p;令抽样进行一万次,输入命令[y1,y2]=bfun1(x,10000),得到结果为:[1476.3,1503.7],区间长度为26.4,较普通方法相比,精度没有提高。(3)使用百分位数bootstrap方法,matlab程序如下:function[y1,y2]=bfun2(x,b)fori=1:bforj=1:12k=randint(1,1,[1,16]);x1(j)=x(k);endx2(i)=mean(x1);endx3=sort(x2);y1=x3(0.025*b);y2=x3(0.975*b);运行一万次,输入命令[y1,y2]=bfun2(x,10000),得到结果为[1476.7,1503.3],区间长度为26.6,相比以上两种方法,区间长度没有缩短反而稍微更长。(4)使用t百分位数bootstrap方法,matlab程序如下:function[y1,y2]=bfun3(x,b)fori=1:bforj=1:12k=randint(1,1,[1,16]);x1(j)=x(k);endx2(i)=mean(x1);endx0=mean(x2);fori=1:ba(i)=(x0-x2(i))^2;endp=sqrt(sum(a)/(b-1));fori=1:bt(i)=(x2(i)-x0)/p;endq=sort(t);y1=x0-q(0.025*b)*p;y2=x0-q(0.975*b)*p;输入命令[y1,y2]=bfun3(x,10000),得到结果为:[1476.8,1503.5],区间长度为26.7.由此观之,最后一种优化过的bootstrap方法对区间估计的精度没有任何提高,反而精度有下降的趋势。反思:经过模拟试验,得到的结果不是文章中表述的可以有精度上的优化。我认为有以下三个原因:第一,可能是我对问题的理解还存在误区,可能对bootstrap经验分布的理解不够;第二,原文中给出的16只灯泡的寿命数据,很可能是不真实的;第三,一般来说,灯泡的寿命应该服从的是指数分布,不应该是原文中提到的是服从正态分布。