(添加可重复示例。)
我对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函数有点困惑。
我期望 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,标准差为1的分布中随机抽取的100个值的样本。由于它是随机的,mean(rnorm(100))
的实际值取决于返回的特定值。不能保证均值为0,但在使用更大的样本量时,统计上应该会收敛于0。例如,尝试 mean(rnorm(10000))
; 它可能会比之前更接近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
mean
中加上 c
了。 - JasonAizkalnsmean(c(...))
和mean()
之间的差别,它们为什么不相等呢?难道我们不是在两种情况下都取5个数字的平均值吗? - Erdogan CEVHER这是由于噪音引起的。我建议尝试使用更大的数据集来接近目标,或更改种子以查看不同的结果。
rnorm
给出的是具有正态分布、均值为0、标准差为1的随机变量。 "随机" 意味着这些值是从分布中随机取出的,因此可能会有更大比例的值来自右侧而不是左侧(例如)。 但是,您的mean
和sd
非常接近。 根据LLN理论,数据集越大,它们就会越接近。 - David Arenburgplot(sapply(1L:1e4, function(x) mean(rnorm(x))))
或plot(sapply(1L:1e4, function(x) sd(rnorm(x))))
。 - David Arenburg