R中的标准差使用什么公式?

机器算法验证 r 标准差
2022-01-30 04:55:14

R中的标准差函数使用什么公式sd

2个回答

正如@Gschneider 所指出的,它计算样本标准偏差

i=1n(xix¯)2n1

您可以轻松检查如下:

> #generate a random vector
> x <- rnorm(n=5, mean=3, sd=1.5)
> n <- length(x)
> 
> #sd in R
> sd1 <- sd(x)
> 
> #self-written sd
> sd2 <- sqrt(sum((x - mean(x))^2) / (n - 1))
>  
> #comparison
> c(sd1, sd2)   #:-)
[1] 0.6054196 0.6054196

是的。从技术上讲,它计算样本方差,然后取平方根:

> sd
function (x, na.rm = FALSE) 
{
if (is.matrix(x)) 
    apply(x, 2, sd, na.rm = na.rm)
else if (is.vector(x)) 
    sqrt(var(x, na.rm = na.rm))
else if (is.data.frame(x)) 
    sapply(x, sd, na.rm = na.rm)
else sqrt(var(as.vector(x), na.rm = na.rm))
}