Стандартное отклонение в R, кажется, возвращает неправильный ответ - я делаю что-то не так? - PullRequest
24 голосов
/ 23 июня 2011

Простой пример расчета стандартного устройства:

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

урожайность

[1] 2.13809

но когда сделано вручную , ответ будет 2. Чего мне здесь не хватает?

Ответы [ 4 ]

35 голосов
/ 23 июня 2011

Попробуйте это

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

и см. Остальную часть статьи Википедии для обсуждения оценки стандартных отклонений. Использование формулы, использованной «вручную», приводит к необъективной оценке, следовательно, корректировка sqrt ((N-1) / N) Вот ключевая цитата:

Термин стандартное отклонение образец используется для неоткорректированного Оценка (с использованием N) в то время как термин стандартное отклонение образца используется для скорректированная оценка (с использованием N - 1). Знаменатель N - 1 - это число степеней свободы в векторе остатки,

9 голосов
/ 23 июня 2011

Похоже, что R принимает (n-1) в знаменателе, а не n.

4 голосов
/ 13 июня 2015

Когда мне нужна дисперсия населения или стандартное отклонение (n как знаменатель), я определяю эти две векторизованные функции.1006 * население и выборка стандартное отклонение здесь .

0 голосов
/ 15 августа 2017

Обратите внимание, что при запуске команды

?sd 

в R Studio отображается страница справки для функции.В разделе подробностей говорится:

Как и var, здесь используется знаменатель n - 1.

...