2015-10-13 41 views
0

因此,我需要运行引导带方法来计算总体的几何平均值。 6次测量结果为1,2,2,4,6,6,基于此样本的人口几何平均数估计值为gm =(1 * 2 * 2 * 4 * 6 * 6)*(1/6)。我需要计算人口几何平均数的95%置信限。自引导以估计几何样本的平均值

到目前为止,我有:

set.seed(13254) 
gmsample <- c(1,2,2,4,6,6) 
gmsample 
n<- length(gmsample) 
gm.hat <- prod(gmsample) ** (1/6) 
gm.hat 

for(b in 1:B){ 
    inx.boot<- sample(1:n, replace=TRUE) 

gmboot<- gmsample[idx.boot] 
print(gmboot) 

rboot[b] <- prod(gmboot) ** (1/n) 
print(r.boot) 
       } 

boot.sd <- sd(r.boot) 
boot.sd 

我得到这个从网上收集信息,我感到非常新的与R所以任何帮助将是巨大的。

+2

那么你的编程问题到底是什么呢? – MrFlick

+0

这个程序不工作,我不知道为什么要知道为什么 –

+1

什么“不工作”是什么意思?你有错误吗?不是你期待的结果?如果是后者,你期望得到什么结果? – MrFlick

回答

0

我会建议使用启动包而不是滚动自己的引导方法。举例来说,几何平均数的计算1000个引导重复功能也可以用:

gmsample <- c(1,2,2,4,6,6) 
library(boot) 
b <- boot(gmsample, function(d, i) prod(d[i])^(1/length(i)), 1000) 

现在你可以使用boot.ci方法来计算置信区间。举例来说,如果你想使用95%百分位数的置信区间,你可以这样做:

boot.ci(b, 0.95, "perc") 
# BOOTSTRAP CONFIDENCE INTERVAL CALCULATIONS 
# Based on 1000 bootstrap replicates 
# 
# CALL : 
# boot.ci(boot.out = b, conf = 0.95, type = "perc") 
# 
# Intervals : 
# Level  Percentile  
# 95% (1.701, 4.670) 
# Calculations and Intervals on Original Scale 

还有许多其他类型的置信区间,你可以用?boot.ci了解的。