mean(rnorm(100,mean = 0,sd = 1))不为0;和sd(rnorm(100,mean = 0,sd = 1))不是1.为什么?

时间:2015-01-05 21:13:31

标签: r mean standard-deviation

(添加了可重复的示例。) 我对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

非常感谢任何帮助。

3 个答案:

答案 0 :(得分:10)

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

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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