web-dev-qa-db-ja.com

Rの標準偏差は間違った答えを返すようです-私は何か間違ったことをしていますか?

標準デバイスを計算する簡単な例:

d <- c(2,4,4,4,5,5,7,9)
sd(d)

収量

[1] 2.13809

手動で行う の場合、答えは2です。ここで何が欠けていますか?

26
Travis Rodman

これを試して

R> sd(c(2,4,4,4,5,5,7,9)) * sqrt(7/8)
[1] 2
R> 

標準偏差の推定については、残りの Wikipediaの記事 を参照してください。 「手動」で採用された式を使用すると、偏った推定値が導き出されるため、sqrt((N-1)/ N)が修正されます。ここに重要な引用があります:

サンプルの標準偏差という用語は、未補正の推定量(Nを使用)に使用され、サンプルの標準偏差という用語は、補正された推定量(N − 1を使用)に使用されます。分母N − 1は、残差ベクトルの自由度の数です。

36

Rは分母で(n-1)を想定しているように見えますが、nではありません。

9
duffymo

population分散または標準偏差(分母としてn)が必要な場合、これら2つのベクトル化された関数を定義します。

  pop.var <- function(x) var(x) * (length(x)-1) / length(x)

  pop.sd <- function(x) sqrt(pop.var(x))

ところで、カーンアカデミーはpopulationsample標準偏差 here について良い議論をしています。

6
Ken Lin