【发布时间】:2019-03-01 06:40:48
【问题描述】:
我想从标准正态分布中生成 1000 个大小为 25 的样本,计算每个样本的方差,并创建一个直方图。我有以下内容:
samples = replicate(1000, rnorm(25,0,1), simplify=FALSE)
hist(sapply(samples, var))
然后我想从这 1000 个样本中随机选择一个样本,并从该样本中提取 1000 个引导程序。然后计算每个的方差并绘制直方图。到目前为止,我有:
sub.sample = sample(samples, 1)
这就是我卡住的地方,我知道这里需要一个 for 循环来引导,所以我有:
rep.boot2 <- numeric(lengths(sub.sample))
for (i in 1:lengths(sub.sample)) {
index2 <- sample(1:1000, size = 25, replace = TRUE)
a.boot <- sub.sample[index2, ]
rep.boot2[i] <- var(a.boot)[1, 2]
}
但运行上述操作会产生“维度数不正确”的错误。哪个部分导致了错误?
【问题讨论】:
-
你可以简单地做
a.boot <- sample(sub.sample, replace = TRUE)。您的index2错误,因为您的子样本没有 1000 个元素。