Powiedziałbym, że są nieco zbyt zaniepokojony z komunikatem ostrzegawczym:
stałej efekt modelu matryca jest ranga niedoborem więc upuszczenie 7 kolumn/współczynników.
To tylko ostrzeżenie, a nie błąd. Nie ma tu niewłaściwego użycia "lmera" ani niewłaściwej specyfikacji formuły modelu, dlatego otrzymasz oszacowany model. Ale ponieważ zapytałeś, postaram się jak najlepiej wyjaśnić tę historię.
Podczas wykonywania lmer
, oryginalny wzór formuła jest podzielony na na części: Poprawiono efekt formula i efekt losowy wzór. Dla każdej części skonstruowana jest macierz modelu . Konstrukcja dla części stałej jest przekazywana do standardowego konstruktora macierzy modelu model.matrix
, podczas gdy konstrukcja dla części losowej jest nieco bardziej skomplikowana, ale niezwiązana z twoim pytaniem, więc pomijam ją.
Do modelu można sprawdzić, jakie stały matryca efekt modelu wygląda przez:
fix.formula <- F2_difference ~ sex + nasal + type + vowelLabel +
type * vowelLabel + nasal * type
X <- model.matrix (fix.formula, data.df)
Wszystkie twoje zmienne są czynnikiem tak X
będzie binarny. Chociaż model.matrix
dotyczy contrasts
dla każdego czynnika i jego interakcji, nadal jest prawdopodobne, że X
nie zakończy się pełnym rankingiem kolumn, ponieważ niektóre kolumny mogą być skorelowane liniowo. W twoim przypadku niektóre poziomy jednego czynnika mogą być zagnieżdżone na pewnym poziomie innego czynnika. Chociaż dobry modelarz powinien postarać się jak najlepiej, aby uniknąć takiego problemu przed dopasowaniem modelu, nie zawsze można mieć pełną kontrolę nad tym, ponieważ korelacja między zmiennymi zbyt często występuje w modelowaniu statystycznym w świecie rzeczywistym.
Zatem każdy dobrze napisany modelu montażu rutynowe, jak lm
, glm
, mgcv::gam
, będą miały zastosowanie dekompozycji QR dla X
używać tylko jej pełnego rzędu podprzestrzeń dla modelu okucia, kurczy inne współczynniki 0 lub NA
. Komunikat ostrzegawczy, który otrzymasz, jest sygnałem tego. Pierwotnie są to współczynniki, które można oszacować, ale ze względu na niedostatek rangowy szacowany będzie tylko ncol(X) - 7
, a reszta to 0 lub NA
. Taki skurcz jest dobrym znakiem, ponieważ zapewnia stabilność numeryczną w rozwiązywaniu równań szacunkowych. Więc nie powinieneś się tym przejmować.
Aby pomóc lepiej widzieć, użyjmy funkcji lm
, by sprawdzić, co się stanie, jeśli pasuje do modelu liniowego z fix.formula
:
fix.fit <- lm (fix.formula, data.df, method = "qr", singular.ok = TRUE)
method = "qr"
i singular.ok = TRUE
są domyślne, więc faktycznie możemy don” t potrzebujesz go ustawić. Z drugiej strony, jeśli ustawiony singular.ok = FALSE
:
oo <- lm (fix.formula, data.df, method = "qr", singular.ok = FALSE)
lm
zatrzyma się i narzekają szeregowych niedoboru.
Teraz sprawdźmy zwrócone wartości w fix.fit
.
coef <- fix.fit$coef
p <- length(coef)
Gwarantuje się, że p = ncol(X)
. Jeśli jednak sprawdzić coef
przez
no.NA <- sum(is.na(coef))
powinieneś zobaczyć 7 NA
. Zaskakujący? Teraz sprawdź postój
rank <- fix.fit$rank
Jest to pozycja numeryczna dla X
. Powinieneś zweryfikować, że rank + no.NA = p
.
Dokładnie to samo dzieje się wewnątrz lmer
. lm
nie zgłasza niedostatków rangi, podczas gdy robi to lmer
. Jest to w rzeczywistości informacyjne. Zbyt często widzę ludzi, którzy pytają, dlaczego lm
powracają dla niektórych współczynników.
Update 1 (7.05.2016):
nie martw się o wykorzystaniu anova
lub BIC
funkcja pakiet zajmie się nimi prawidłowo.
edytowany oryginalny post, dodając znaczniki [lme4], [regresja liniowym], [regresja] i przemianowany na tytuł, aby być bardziej pouczające. Mamy nadzieję, że osoby z takimi samymi wątpliwościami łatwo znajdą Twój post.
Update 2 (06.11.2016):
Załóżmy też usłyszeć, co pakiet autor lme4
powiedziałby: rank deficiency warning mixed model lmer. Ben Bolker wspomniał także o caret::findLinearCombos
, w szczególności dlatego, że OP chce samodzielnie rozwiązać problem braku.
Dzisiaj pojawia się jeszcze jedno pytanie na ten temat: rank defficient model reports an error when doing post hoc analysis. A mój komentarz tam:
Look, ponieważ masz zmuszany zarówno POS
i DISTANCE
do czynnika, istnieje wysokie prawdopodobieństwo, że pewien poziom POS
jest zagnieżdżony w jakimś poziomie DISTANCE
. Jeśli weźmiesz pod uwagę model liniowy w części o stałym efekcie fit <- lm(total ~ DISTANCE + POS, data = dat)
(użyłem zmiennej dat dla twoich danych), zobaczysz 2 NA
współczynników!
To mówiąc, że zachodzi podział na zero lub rejestracja liczby ujemnej lub innego matematycznie patologicznego stanu. Bez kodu i danych jest mało prawdopodobne, aby ktokolwiek mógł wyrazić sensowne komentarze. –
Przykro mi, ale nie wiem, jak mogę podać moje dane, ponieważ pochodzą one z wielu plików tekstowych, które są połączone w R. Zmienna zależna, 'F2_difference' może być ujemna. Czy to jest problem? Jeśli tak, czy mogę dodać pewną liczbę do wszystkich zmiennych, aby nic nie było negatywne? – Lisa
To nie to. Niedostatek rangowy matrycy modelu jest oznaką trudności w RHS modelu ("zmiennych niezależnych"). –