均值(rnorm(100,mean=0,sd=1)) 不为 0; sd(rnorm(100,mean=0,sd=1)) 不是 1。为什么?

mean(rnorm(100,mean=0,sd=1)) is not 0; and sd(rnorm(100,mean=0,sd=1)) is not 1. Why?

(添加了可重现的示例。) 我对 rnorm 函数有点困惑。 我预计 mean(rnorm(100,mean=0,sd=1)) 为 0; sd(rnorm(100,mean=0,sd=1)) 为 1。但给出了不同的结果。我哪里错了?

可重现示例:

mean(rnorm(100,mean=0,sd=1))
# [1] 0.07872548
sd(rnorm(100,mean=0,sd=1))
# [1] 1.079348

非常感谢任何帮助。

这是噪音造成的。我建议尝试使用更大的集合来接近目标,或者更改种子以查看不同的结果。

rnorm(100) 从分布均值 = 0 和 sd = 1 中为您提供 100 个值的随机样本。因为它是随机的,所以 mean(rnorm(100)) 的实际值取决于您得到的特定值.不能保证均值为 0,但从统计学上讲,当您使用更大的样本量时,它应该会收敛到 0。例如,尝试 mean(rnorm(10000));它可能会比以前更接近 0。

编辑:如果您想强制样本具有特定的均值和标准差,请查看此问题:“Generate random numbers with fixed mean and sd”。

rnorm 创建随机偏差。

set.seed(4)
x <- rnorm(5, mean=0, sd=1)
x
# [1]  0.2167549 -0.5424926  0.8911446  0.5959806  1.6356180
mean(c(0.2167549, -0.5424926, 0.8911446, 0.5959806, 1.6356180))
# [1] 0.5594011