我如何运行一个for循环,使它生成n个观测值的重复样本?

f0brbegy  于 2023-02-06  发布在  其他
关注(0)|答案(2)|浏览(117)

我首先使用以下代码从Gamma分布生成随机数据

data <- rgamma(9, shape=32, scale=1/4)

我继续从群体中生成9个观察结果的单个样本。

sample(data, 9)

我尝试在R中运行一个for循环,这样我可以重复生成9个观测值的样本,并将每个样本的均值保存到一个新的向量中,我想这样做500,000次,在for循环之后,我想基于for循环创建的分布创建一个空分布,我还想使用替换进行采样。(我对R也很陌生,所以任何建议或帮助都非常感谢)。
下面是我为for循环尝试的代码:

v <- 500000
Storage <- numeric(9)

for (i in v) {
  Storage[i] <- mean(i)
}
o3imoua4

o3imoua41#

最简单的方法是这样的...

means <- replicate(500000, mean(rgamma(9, shape=32, scale=1/4)))

这将生成9个gamma变量,取平均值,并重复该过程500,000次,将结果存储在向量means中。

owfi6suc

owfi6suc2#

使用replicate创建向量,然后使用快速colMeans计算平均值。

set.seed(2023)
data <- rgamma(9, shape=32, scale=1/4)

v <- 500000L

Storage <- replicate(v, sample(data, 9, TRUE))

mean_Storage <- colMeans(Storage)
hist(mean_Storage, freq = FALSE)

创建于2023年2月3日,使用reprex v2.0.2
或者你想从伽玛分布中取样。

set.seed(2023)

v <- 500000L

Storage <- replicate(v, rgamma(9, shape=32, scale=1/4))

mean_Storage <- colMeans(Storage)
hist(mean_Storage, freq = FALSE)

创建于2023年2月3日,使用reprex v2.0.2

相关问题