R 中的标准差似乎返回了错误的答案 - 我做错了什么吗?
A simple example of calculating standard dev:
d <- c(2,4,4,4,5,5,7,9)
sd(d)
yields
[1] 2.13809
but when done by hand, the answer is 2. What am I missing here?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
尝试一下
,并查看维基百科文章的其余部分,了解有关标准差估计的讨论。使用“手动”使用的公式会导致估计有偏差,因此需要校正 sqrt((N-1)/N)。这是一个关键引用:
Try this
and see the rest of the Wikipedia article for the discussion about estimation of standard deviations. Using the formula employed 'by hand' leads to a biased estimate, hence the correction of sqrt((N-1)/N). Here is a key quote:
看起来 R 假设分母是 (n-1),而不是 n。
Looks like R is assuming (n-1) in the denominator, not n.
当我想要总体方差或标准差(n 作为分母)时,我定义这两个向量化函数。
顺便说一句,可汗学院对总体和样本标准差进行了很好的讨论此处。
When I want the population variance or standard deviation (n as denominator), I define these two vectorized functions.
BTW, Khan Academy has a good discussion of population and sample standard deviation here.
请注意,在 R Studio 中运行该命令
会显示该函数的帮助页面。在详细信息部分它指出
Note that running the command
in R Studio displays the help page for the function. In the details section it states