Стандартное отклонение в R, кажется, возвращает неправильный ответ - я что-то делаю неправильно?
Простой пример вычисления стандартного dev:
d <- c(2,4,4,4,5,5,7,9)
sd(d)
дает
[1] 2.13809
но когда сделано вручную, ответ будет 2. Что мне здесь не хватает?
Ответ 1
Попробуйте это
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 - это число степеней свободы в векторе остатки,.
Ответ 2
Похоже, что R принимает (n-1) в знаменателе, а не n.
Ответ 3
Когда мне нужна дисперсия население или стандартное отклонение (n как знаменатель), я определяю эти две векторизованные функции.