};
运行的结果为:
Ex5.2(0.01)
$me
[1] 1.446026
$sde
[1] 0.009997553
$N [1] 2221
6.为了估计E(X),X , , , 已经被模拟出,其数据如下:
10,11,10.5,11.5,14,8,13,6,15,10,11.5,10.5,12,8,16.5.
再根据这些数据,如果我们要使 (X)的估计量的标准差小于0.1,大概还需要运行多少次?
16
1
X
2
X
E
解:由题可知,模拟程序如下:
Ex5.6=function(d) {
x=c(10,11,10.5,11.5,14,8,13,6,15,10,11.5,10.5,12,8,16,5);K=length(x);k=len
gth(x);M=x;Mbar=M[1];ssM=0;
for (i in 1: (k-1)){
Mbar[i+1]=Mbar[i]+(M[i+1]-Mbar[i])/(i+1);
ssM[i+1]=(1-1/i)*ssM[i]+(i+1)*(Mbar[i+1]-Mbar[i])^2};
repeat{k=k+1; M[k]=sample(x,1); ##生成 100 以外的样本
Mbar[k]=Mbar[k-1]+(M[k]-Mbar[k-1])/k;
ssM[k]=(1-1/(k-1))*ssM[k-1]+k*(Mbar[k]-Mbar[k-1])^2;
if (sqrt(ssM[k]/length(M))
ssM[i+1]=(1-1/i)*ssM[i]+(i+1)*(Mbar[i+1]-Mbar[i])^2};
repeat{k=k+1; M[k]=sample(x,1); ##生成 100 以外的样本
Mbar[k]=Mbar[k-1]+(M[k]-Mbar[k-1])/k;
ssM[k]=(1-1/(k-1))*ssM[k-1]+k*(Mbar[k]-Mbar[k-1])^2;
if (sqrt(ssM[k]/length(M))
for (i in 1:B)
{mub=mub+mean(sample(x,n,rep=T))/B;
mu2=mu2+(mean(sample(x,n,rep=T))^2)/B;}
list(mub=mub,var=mu2-mub^2);
结果是: $mub
[1] 19.69891 $var
[1] 0.7006966