У меня есть образец набора данных с 31 значениями. Я выполнил двусторонний t-тест, используя R, чтобы проверить, равно ли истинное среднее значение 10:
t.test(x=data, mu=10, conf.level=0.95)
Выход:
t = 11.244, df = 30, p-value = 2.786e-12
alternative hypothesis: true mean is not equal to 10
95 percent confidence interval:
19.18980 23.26907
sample estimates:
mean of x
21.22944
Сейчас я пытаюсь сделать то же самое вручную:
t.value = (mean(data) - 10) / (sd(data) / sqrt(length(data)))
p.value = dt(t.value, df=length(lengths-1))
Значение t, рассчитанное с использованием этого метода, совпадает с выходным значением функции t-критерия R. Однако значение р составляет 3,025803e-12.
Есть идеи, что я делаю не так?
Спасибо!
РЕДАКТИРОВАТЬ
Вот полный код R, включая мой набор данных:
# Raw dataset -- 32 observations
data = c(21.75, 18.0875, 18.75, 23.5, 14.125, 16.75, 11.125, 11.125, 14.875, 15.5, 20.875,
17.125, 19.075, 25.125, 27.75, 29.825, 17.825, 28.375, 22.625, 28.75, 27, 12.825,
26, 32.825, 25.375, 24.825, 25.825, 15.625, 26.825, 24.625, 26.625, 19.625)
# Student t-Test
t.test(x=data, mu=10, conf.level=0.95)
# Manually calculate p-value
t.value = (mean(data) - 10) / (sd(data) / sqrt(length(data)))
p.value = dt(t.value, df=length(data) - 1)
r
statistical-significance
t-test
p-value
herbps10
источник
источник
abs
.Я опубликовал это как комментарий, но когда мне захотелось добавить немного больше правки, это стало слишком длинным, поэтому я переместил его сюда.
Редактировать : Ваша тестовая статистика и df верны. Другой ответ отмечает проблему с вычислением области хвоста в вызове
pt()
и удвоением для двух хвостов, которая решает вашу разницу. Тем не менее, я оставлю свое предыдущее обсуждение / комментарий, потому что это делает более релевантными замечания о p-значениях в экстремальных хвостах:Вполне возможно, что вы ничего не делаете неправильно и все же получаете разницу, но если вы разместите воспроизводимый пример, возможно, можно будет продолжить расследование, есть ли у вас какая-либо ошибка (скажем, в df).
Эти вещи рассчитаны из приближений, которые могут быть не совсем точными в очень крайнем хвосте.
Если эти две вещи не используют идентичные приближения, они могут не совпадать близко, но это отсутствие согласия не должно иметь значения (для точной области хвоста, которая настолько значительна, требуемые предположения должны были бы придерживаться поразительных степеней точность). Вы действительно имеете точную нормальность, точную независимость, точно постоянную дисперсию?
источник
Лучший способ рассчитать это вручную:
источник
Мне очень нравится ответ @Aaron, а также
abs
комментарии. Я нашел удобное подтверждение, чтобы запуститьpt(1.96, 1000000, lower.tail = F) * 2
который дает
0.04999607
.Здесь мы используем общеизвестное свойство, что 95% площади при нормальном распределении происходит при ~ 1,96 стандартных отклонений, таким образом, выход ~ 0,05 дает наше значение р. Я использовал 1000000, поскольку, когда N огромно, распределение t почти такое же, как нормальное распределение. Запуск этого дал мне утешение в решении @ Аарона.
источник