Mam nadzieję, że jest to pytanie, na które ktoś tutaj może mi odpowiedzieć na temat natury rozkładania sum kwadratów z dopasowanego modelu mieszanego lmer
(z pakietu lme4 R).
Po pierwsze powinienem powiedzieć, że jestem świadomy kontrowersji związanych z zastosowaniem tego podejścia, aw praktyce bardziej prawdopodobne byłoby użycie LRT z bootstrapem do porównywania modeli (jak sugeruje Faraway, 2006). Jednak zastanawiam się, jak odtworzyć wyniki, więc dla własnego zdrowia psychicznego pomyślałem, że zapytam tutaj.
Zasadniczo zajmuję się używaniem modeli z efektami mieszanymi dopasowanymi do lme4
pakietu. Wiem, że możesz użyćanova()
polecenia, aby uzyskać podsumowanie sekwencyjnego testowania efektów stałych w modelu. O ile wiem, to właśnie Faraway (2006) określa jako podejście „oczekiwanych średnich kwadratów”. Chcę wiedzieć, w jaki sposób obliczane są sumy kwadratów?
Wiem, że mogłem wziąć oszacowane wartości z konkretnego modelu (używając coef()
), założyć, że są one ustalone, a następnie wykonać testy z wykorzystaniem sum kwadratów reszt modelu z i bez czynników zainteresowania. To dobrze w przypadku modelu zawierającego pojedynczy czynnik wewnątrz podmiotu. Jednak przy wdrażaniu projektu podzielonego wykresu sumy wartości kwadratów, które otrzymuję, są równoważne wartości wytworzonej przez R przy użyciu aov()
odpowiedniego Error()
oznaczenia. Nie jest to jednak to samo, co suma kwadratów wyprodukowanych przezanova()
polecenie na obiekcie modelowym, mimo że współczynniki F są takie same.
Oczywiście ma to sens, ponieważ nie ma takiej potrzeby Error()
warstw w modelu mieszanym. Musi to jednak oznaczać, że sumy kwadratów są w jakiś sposób karane w modelu mieszanym, aby zapewnić odpowiednie współczynniki F. Jak to się osiąga? I w jaki sposób model w jakiś sposób koryguje sumę kwadratów między wykresami, ale nie koryguje sumy kwadratów wewnątrz wykresów. Najwyraźniej jest to coś, co jest konieczne w przypadku klasycznej analizy wariancji ANOVA, która została osiągnięta poprzez wyznaczenie różnych wartości błędów dla różnych efektów, więc w jaki sposób pozwala na to model mieszany?
Zasadniczo chcę być w stanie samodzielnie odtworzyć wyniki anova()
polecenia zastosowanego do obiektu modelu Lmer, aby zweryfikować wyniki i moje zrozumienie, ale obecnie mogę to osiągnąć dla normalnego projektu wewnątrz podmiotu, ale nie dla podziału projekt fabuły i nie mogę się dowiedzieć, dlaczego tak jest.
Jako przykład:
library(faraway)
library(lme4)
data(irrigation)
anova(lmer(yield ~ irrigation + variety + (1|field), data = irrigation))
Analysis of Variance Table
Df Sum Sq Mean Sq F value
irrigation 3 1.6605 0.5535 0.3882
variety 1 2.2500 2.2500 1.5782
summary(aov(yield ~ irrigation + variety + Error(field/irrigation), data = irrigation))
Error: field
Df Sum Sq Mean Sq F value Pr(>F)
irrigation 3 40.19 13.40 0.388 0.769
Residuals 4 138.03 34.51
Error: Within
Df Sum Sq Mean Sq F value Pr(>F)
variety 1 2.25 2.250 1.578 0.249
Residuals 7 9.98 1.426
Jak widać powyżej, wszystkie współczynniki F są zgodne. Sumy kwadratów dla różnorodności również się zgadzają. Jednak sumy kwadratów do nawadniania nie są zgodne, jednak wydaje się, że wydajność lmera jest skalowana. Co właściwie robi komenda anova ()?
źródło
mixed()
zafex
której oferuje to, czego chcesz (przezmethod = "PB"
). Ponieważ oczywiście wykonałeś już pewne testy z danymi zabawek, zdecydowanie pomocne byłoby pokazanie tych równoważności z danymi i kodem (stąd brak +1).Odpowiedzi:
Użyj źródła, Luke. W ten sposób możemy zajrzeć do funkcji ANOVA
getAnywhere(anova.Mermod)
. Pierwsza część tej funkcji polega na porównaniu dwóch różnych modeli. Anova na ustalone efekty pojawia się w dużymelse
bloku w drugiej połowie:object
jest wyjściem Lmer. Zaczynamy obliczać sumę kwadratów w linii 5:ss <- as.vector ...
Kod mnoży ustalone parametry (inbeta
) przez górną macierz trójkątną; następnie kwadraty dla każdego terminu. Oto górna trójkątna matryca dla przykładu nawadniania. Każdy rząd odpowiada jednemu z pięciu parametrów efektów stałych (punkt przecięcia, 3 stopnie swobody dla nawadniania, 1 df dla odmiany).Pierwszy rząd daje sumę kwadratów dla punktu przecięcia, a ostatni daje SS dla efektu różnorodności wewnątrz pola. Rzędy 2-4 dotyczą tylko 3 parametrów poziomów nawadniania, więc pomnożenie wstępne daje trzy części SS do nawadniania.
Kawałki te nie są same w sobie interesujące, ponieważ pochodzą z domyślnego kontrastu leczenia w R, ale w linii
ss <- unlist(lapply(split ....
Bates zbiera kawałki sum kwadratów zgodnie z liczbą poziomów i do jakich czynników się odnoszą. Tutaj dzieje się dużo księgowości. Otrzymujemy również stopnie swobody (które są 3 dla nawadniania). Następnie otrzymuje średnie kwadraty, które pojawiają się na wydrukuanova
. W końcu dzieli wszystkie jego środków przez kwadraty wewnątrz grup resztkowej wariancjisigma(object)^2
.lmer
aov
lmer
RX
Asymptotycznie szacunki ustalonych efektów mają rozkład:
Pamiętaj, że nie uzyskałbyś takich samych statystyk F, gdyby dane były niezrównoważone. Nie uzyskałbyś tych samych statystyk F, gdybyś użył ML zamiast REML.
aov
Co ciekawe, Bates i Pinheiro zalecają użycie ANOVA zamiast dopasowania dwóch modeli i wykonania testu współczynnika wiarygodności. Ten ostatni ma tendencję do zachowania konserwatywności.
Jak widać, sumy kwadratów dla parametrów irygacji zawierają teraz także pewien
variety
efekt.źródło