4

与 R 中的标准函数var()sd()相比,根据Wikipedia描述计算方差和标准差会给出不同的结果。

方差:4 对 4.571429。标准差:2 对 2.13809。

任何建议或解释?

> df <- c(2,4,4,4,5,5,7,9)
> df.length <- length(df)
> df.length
[1] 8

> df.mean <- sum(df) / df.length
> df.mean
[1] 5

> df.difference <- (df - df.mean)**2
> df.difference
[1]  9  1  1  1  0  0  4 16

> sum(df.difference)
[1] 32

> df.variance <- sum(df.difference) / df.length
> df.variance
[1] 4

> df.standard.deviation <- sqrt(df.variance)
> df.standard.deviation
[1] 2

> # mean, var and sd (default R)

> mean(df)
[1] 5

> var(df)
[1] 4.571429

> sd(df)
[1] 2.13809
4

1 回答 1

2

这是除以n(n-1)自由度之间的差异。

>df <- c(2,4,4,4,5,5,7,9)
> var(df)
[1] 4.571429


> sum((df-mean(df))^2/length(df))
[1] 4

> sum((df-mean(df))^2/(length(df)-1))
[1] 4.571429

这是因为......直接从维基百科(链接n-1复制

考虑自由度的一种常见方法是可用于估计另一条信息的独立信息的数量。更具体地说,自由度的数量是数据样本中独立观测值的数量,这些观测值可用于估计从中抽取样本的总体参数。例如,如果我们有两个观测值,那么在计算平均值时,我们有两个独立的观测值;然而,在计算方差时,我们只有一个独立的观测值,因为这两个观测值与平均值的距离相等。

于 2013-12-21T11:15:22.887 回答