首页 > 解决方案 > 如何使用向量中的每个值作为平均值在 R 中重复 rnorm?

问题描述

我已经创建了一个使用rnorm平均值设置为 1000 的代码,现在我想创建一个包含 10000 个元素的向量,每个元素都是我创建的这个正态分布的平均值。我该怎么做?

我试过使用

a = replicate(10000, (mean(rnorm(4, mean=1000, sd=4))))

但是后来我得到了 1004 左右的值,这让我相信这不是我得到的分布的平均值。有什么我想念的吗。

标签: rstatistics

解决方案


正如评论中指出的那样:您在样本中仅使用四个随机数这一事实可能会导致经验平均值远离真实平均值(即 1000)。

随着您增加每次迭代的随机数数量,经验均值将更接近真实均值(当谈到无偏估计时,这正是它的意思)。

参见例如以下

set.seed(123)
replicate(5, (mean(rnorm(4, mean=1000, sd=4))))
[1] 1000.8386 1001.0402 1000.4514 1001.7425  998.7598
replicate(5, (mean(rnorm(1000, mean=1000, sd=4))))
[1] 1000.0734 1000.1480  999.9374  999.9468  999.8768
replicate(5, (mean(rnorm(100000, mean=1000, sd=4))))
[1]  999.9981  999.9939 1000.0004 1000.0001  999.9966

推荐阅读