我想通过R
计算40个数据点的标准差。我无法做到这一点......
我试过了:
> sd{1, 2, 3}
Error: unexpected '{' in "sd{"
> sd(1, 2, 3)
Error in sd(1, 2, 3) : unused argument (3)
并尝试过:
> x <- c(1, 2, 3)
> sd(x)
[1] 1
它给出输出'1'但我相信标准差为1,2和3而不是1.
我在这里做错了什么?原谅我,我是初学者
答案 0 :(得分:12)
您必须在c
内使用sd
:
sd(c(1, 2, 3))
# [1] 1
返回1
。这是 示例 标准差,是基于n - 1
分母的总体标准差的估算值。这是Rs sd
函数的默认行为。
如果您想计算 人口 (分母n
)的标准偏差,您可以使用:
x <- c(1, 2, 3)
sqrt(mean(x ^ 2) - mean(x)^2)
# [1] 0.8164966
如果您知道样本标准差和向量长度(即元素数量),您可以使用此方法计算总体标准差:
n <- length(x) # number of values
std <- sd(x) # sample standard deviation
sqrt((std ^ 2) * ((n - 1) / n))
# [1] 0.8164966