Próbuję analizować niektóre dane przy użyciu modelu efektu mieszanego. Zebrane przeze mnie dane przedstawiają masę niektórych młodych zwierząt o różnym genotypie w czasie.
Korzystam z zaproponowanego tutaj podejścia: https://gribblelab.wordpress.com/2009/03/09/repeated-measures-anova-using-r/
W szczególności używam rozwiązania nr 2
Więc mam coś takiego
require(nlme)
model <- lme(weight ~ time * Genotype, random = ~1|Animal/time,
data=weights)
av <- anova(model)
Teraz chciałbym mieć kilka porównań. Za pomocą multcomp
mogę zrobić:
require(multcomp)
comp.geno <- glht(model, linfct=mcp(Genotype="Tukey"))
print(summary(comp.geno))
I oczywiście mogłem zrobić to samo z czasem.
Mam dwa pytania:
- Jak mogę
mcp
zobaczyć interakcję między czasem a genotypem? Po uruchomieniu
glht
pojawia się następujące ostrzeżenie:covariate interactions found -- default contrast might be inappropriate
Co to znaczy? Czy mogę to bezpiecznie zignorować? Lub co powinienem zrobić, aby tego uniknąć?
EDYCJA: Znalazłem ten plik PDF, który mówi:
Ponieważ w tym przypadku niemożliwe jest automatyczne określenie parametrów będących przedmiotem zainteresowania, mcp () w multcomp domyślnie generuje porównania tylko dla głównych efektów, ignorując zmienne towarzyszące i interakcje . Od wersji 1.1-2 można określić średnią dla warunków interakcji i zmiennych towarzyszących, używając odpowiednio argumentów: interakcji_średnia = PRAWDA i zmienna_obiektywna = PRAWDA, natomiast wersje starsze niż 1.0-0 są automatycznie uśredniane względem warunków interakcji. Sugerujemy jednak użytkownikom, aby zapisali ręcznie zestaw kontrastów, których chcą.Należy to zrobić, gdy istnieją wątpliwości co do tego, co mierzą domyślne kontrasty, co zwykle dzieje się w modelach z warunkami interakcji wyższego rzędu. Odnosimy się do Hsu (1996), rozdział ~ 7 i Searle (1971), rozdział ~ 7.3, w celu dalszych dyskusji i przykładów na ten temat.
Nie mam dostępu do tych książek, ale może ktoś tu ma?
Odpowiedzi:
Jeśli
time
iGenotype
są predyktorami jakościowymi, i wydają się zainteresowane porównywaniem wszystkich par czas / genotyp, możesz po prostu utworzyć jedną zmienną interakcji i użyć na niej kontrastów Tukeya:Jeśli interesują Cię inne kontrasty, możesz skorzystać z faktu, że
linfct
argument może przyjąć macierz współczynników dla kontrastów - w ten sposób możesz ustawić dokładnie takie porównania, jakie chcesz.EDYTOWAĆ
W uwagach pojawia się obawa, że model wyposażony w
TimeGeno
predyktor różni się od modelu oryginalnego wyposażonego wTime * Genotype
predyktor. Tak nie jest , modele są równoważne. Jedyną różnicą jest parametryzacja stałych efektów, która jest skonfigurowana w celu ułatwienia korzystania zglht
funkcji.Użyłem jednego z wbudowanych zestawów danych (ma dietę zamiast genotypu), aby wykazać, że oba podejścia mają takie samo prawdopodobieństwo, przewidywane wartości itp .:
Jedyną różnicą jest to, że hipotezy są łatwe do przetestowania. Na przykład w pierwszym modelu łatwo jest sprawdzić, czy dwa predyktory oddziałują na siebie, w drugim modelu nie ma na to wyraźnego testu. Z drugiej strony, łączny efekt dwóch predyktorów jest łatwy do przetestowania w drugim modelu, ale nie w pierwszym. Pozostałe hipotezy są testowalne, ich konfiguracja jest po prostu więcej pracy.
źródło
glht
używa stopni swobody podanych w modelu Lme. Nie jestem pewien, czy te stopnie swobody są odpowiednie ...?Animal/time
który trzymasz, który teraz nie jest jednym z czynników. Czy to naprawdęunderstand
?all.equal(resid(model1), resid(model2))
przekonać się, że są takie same, zanim zgadniesz inaczej? Jedynie parametryzacja efektów stałych jest inna.TimeDiet
nie jest czystym pojęciem interakcji i nie jest równoważneTime:Diet
, ale raczejTime + Diet + Time:Diet
.