R version 3.1.1 (2014-07-10) -- "Sock it to Me"
> bl <- c(140, 138, 150, 148, 135)
> fu <- c(138, 136, 148, 146, 133)
> t.test(fu, bl, alternative = "two.sided", paired = TRUE)
Error in t.test.default(fu, bl, alternative = "two.sided", paired = TRUE) :
data are essentially constant
Затем я изменяю только один символ в моем наборе данных fu:
> fu <- c(138, 136, 148, 146, 132)
и это работает ...
> t.test(fu, bl, alternative = "two.sided", paired = TRUE)
Paired t-test
Что мне здесь не хватает?
bl-fu
. Теперьsd(bl-fu)
. Если это не очевидно, все же сделайте это:dif=bl-fu
тогдаn=length(dif)
тогдаmean(dif)/(sd(dif)/sqrt(n))
... вы видите сейчас?Ответы:
Как отмечалось в комментариях, проблема заключалась в том, что все различия были 2 (или -2, в зависимости от того, как вы пишете пары).
Отвечая на вопрос в комментариях:
Ну, это зависит.
Если распределение различий действительно было нормальным, это был бы вывод, но, возможно, допущение о нормальности неверно, а распределение различий в измерениях на самом деле дискретно (возможно, в популяции, которую вы хотите сделать вывод, обычно это -2 но иногда отличается от -2).
Фактически, видя, что все числа являются целыми числами, кажется, что дискретность, вероятно, имеет место.
... в этом случае нет такой уверенности в том, что в популяции все различия будут равны -2, а в том, что в выборке различие в популяции означает, что разница отличается от -2.
(Например, если бы 87% различий в популяции составляли -2, есть только вероятность 50-50, что любая из 5 разниц в выборке будет отличаться от -2. Таким образом, выборка вполне согласуется с тем, что отклонения от -2 в популяции)
Но вас также могут поставить под сомнение пригодность предположений для t-теста - особенно в такой небольшой выборке.
источник