Chciałbym użyć, lme4
aby dopasować regresję efektów mieszanych i multcomp
obliczyć porównania parami. Mam złożony zestaw danych z wieloma ciągłymi i kategorycznymi predyktorami, ale moje pytanie można zademonstrować na podstawie wbudowanego ChickWeight
zestawu danych jako przykładu:
m <- lmer(weight ~ Time * Diet + (1 | Chick), data=ChickWeight, REML=F)
Time
jest ciągły i Diet
ma charakter kategoryczny (4 poziomy), a na dietę przypada wiele piskląt. Wszystkie pisklęta zaczynały mniej więcej taką samą wagę, ale ich dieta (może) wpływać na tempo wzrostu, więc Diet
przechwytywanie powinno być (mniej więcej) takie samo, ale nachylenie może być inne. Mogę uzyskać porównania par dla efektu przechwytywania w Diet
następujący sposób:
summary(glht(m, linfct=mcp(Diet = "Tukey")))
i rzeczywiście nie różnią się one znacząco, ale jak mogę wykonać analogiczny test Time:Diet
efektu? Samo wstawienie terminu interakcji mcp
powoduje błąd:
summary(glht(m, linfct=mcp('Time:Diet' = "Tukey")))
Error in summary(glht(m, linfct = mcp(`Time:Diet` = "Tukey"))) :
error in evaluating the argument 'object' in selecting a method for function
'summary': Error in mcp2matrix(model, linfct = linfct) :
Variable(s) ‘Time:Diet’ have been specified in ‘linfct’ but cannot be found in ‘model’!
źródło
Time*Diet
, co jest tylko uproszczeniemTime + Diet + Time:Diet
. Użycieanova(m)
lubsummary(m)
potwierdza, że termin interakcji znajduje się w modelu.Odpowiedzi:
Domyślnie
lmer
traktuje poziom odniesienia predyktora jakościowego jako wartość bazową i szacuje parametry dla innych poziomów. Otrzymujesz więc parę porównań w domyślnym wyjściu i możesz uzyskać inne, używającrelevel
do zdefiniowania nowego poziomu odniesienia i ponownego dopasowania modelu. Ma to tę zaletę, że pozwala korzystać z porównań modeli lub MCMC w celu uzyskania wartości p, ale nie poprawia wielu porównań (chociaż można później zastosować własną korektę).Aby użyć
multcomp
, musisz zdefiniować matrycę kontrastu. Każdy wiersz w macierzy kontrastu reprezentuje wagi efektów, które otrzymujesz w domyślnym wyjściu modelu, zaczynając od punktu przecięcia. Jeśli więc chcesz uzyskać efekt, który jest już zawarty w podstawowym wyjściu, po prostu umieść „1” w pozycji odpowiadającej temu efektowi. Ponieważ oszacowania parametrów odnoszą się do wspólnego poziomu odniesienia, można uzyskać porównania między dowolnymi dwoma innymi poziomami, ustawiając wagę jednego na „-1”, a drugiego „1”. Oto, jak to by działało dlaTime:Diet
warunków wChickWeight
przykładzie:Zastrzegający emptor: To podejście wydaje się wykorzystywać normalne przybliżenie, aby uzyskać wartości p, co jest nieco antykonserwatywne, a następnie stosuje pewną korektę dla wielu porównań. Rezultatem jest to, że ta metoda zapewnia łatwy dostęp do tylu oszacowań parametrów par i błędów standardowych, ile chcesz, ale wartości p mogą być lub nie być takie, jakie chcesz.
(Dzięki Scott Jackson z r-ling-lang-L za pomoc w tym)
źródło