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
Następnie zmieniam tylko jeden znak w moim zestawie danych fu:
> fu <- c(138, 136, 148, 146, 132)
i działa ...
> t.test(fu, bl, alternative = "two.sided", paired = TRUE)
Paired t-test
Czego tu brakuje?
bl-fu
. Terazsd(bl-fu)
. Jeśli to nie jest oczywiste, a jednak zrobić to:dif=bl-fu
czymn=length(dif)
wtedymean(dif)/(sd(dif)/sqrt(n))
... widzisz teraz?Odpowiedzi:
Jak opisano w komentarzach, problem polegał na tym, że wszystkie różnice wynosiły 2 (lub -2, w zależności od tego, w jaki sposób piszemy pary).
Odpowiadając na pytanie w komentarzach:
To zależy.
Jeśli rozkład różnic byłby naprawdę normalny, byłby to wniosek, ale może być tak, że założenie normalności jest błędne, a rozkład różnic w pomiarach jest w rzeczywistości dyskretny (być może w populacji, którą chcesz wnioskować na temat, jest zwykle -2 ale czasami różni się od -2).
W rzeczywistości, biorąc pod uwagę, że wszystkie liczby są liczbami całkowitymi, wydaje się, że dyskrecja jest prawdopodobnie prawdą.
... w którym to przypadku nie ma takiej pewności, że wszystkie różnice będą wynosić -2 w populacji - tym bardziej, że brak jest dowodów w próbie różnicy w populacji, która różni się od -2.
(Na przykład, jeśli 87% różnic w populacji wynosiło -2, istnieje tylko 50-50 szans, że każda z 5 różnic w próbce byłaby inna niż -2. Więc próbka jest całkiem zgodna z odchyleniem od -2 w populacji)
Zostaniesz jednak poproszony o zakwestionowanie przydatności założeń do testu t - szczególnie w tak małej próbce.
źródło