Używanie lmera do przewidywania

18

Witaj Mam dwa problemy, które brzmią jak naturalni kandydaci na modele wielopoziomowe / mieszane, których nigdy nie używałem. Prostszy i taki, który mam nadzieję wypróbować jako wprowadzenie, wygląda następująco: Dane wyglądają jak wiele wierszy formularza

x y innergroup outergroup

gdzie x jest zmienną liczbową, na której chcę regresować y (inna zmienna liczbowa), każde y należy do grupy wewnętrznej, a każda grupa wewnętrzna jest zagnieżdżona w grupie zewnętrznej (tj. wszystkie y w danej grupie wewnętrznej należą do tej samej grupy zewnętrznej) . Niestety, grupa wewnątrzgrupowa ma wiele poziomów (wiele tysięcy), a każdy poziom ma stosunkowo niewiele obserwacji y, więc pomyślałem, że ten rodzaj modelu może być odpowiedni. Moje pytania są

  1. Jak napisać ten rodzaj wielopoziomowej formuły?

  2. Kiedy lmer pasuje do modelu, jak można zacząć przewidywać z niego? Dopasowałem kilka prostszych przykładów zabawek, ale nie znalazłem funkcji predykcji (). Większość ludzi wydaje się bardziej zainteresowana wnioskowaniem niż przewidywaniem przy użyciu tego rodzaju techniki. Mam kilka milionów wierszy, więc obliczenia mogą stanowić problem, ale zawsze mogę je odpowiednio wyciąć.

Przez jakiś czas nie będę musiał robić drugiego, ale równie dobrze mogę zacząć o tym myśleć i bawić się nim. Mam podobne dane jak poprzednio, ale bez x, a y jest teraz zmienną dwumianową formy . y również wykazuje dużą naddyspersję, nawet w grupach wewnętrznych. Większość nie więcej niż 2 lub 3 (lub mniej), a więc w celu uzyskania oszacowania wskaźników powodzenia każdej I zostały za pomocą beta-dwumianowego skurczu estymatora , gdzie i(n,nk)nyi(α+ki)/(α+β+ni)αβsą szacowane przez MLE dla każdej grupy osobno. Jest to dość adekwatne, ale rzadkość danych wciąż mnie nęka, dlatego chciałbym wykorzystać wszystkie dostępne dane. Z jednej perspektywy problem ten jest łatwiejszy, ponieważ nie ma współzmiennej, ale z drugiej strony dwumianowa natura utrudnia. Czy ktoś ma jakieś wytyczne na wysokim (lub niskim!) Poziomie?

grg s
źródło
Sprawdź, czy nawiasy, które wstawiłem do formuły skurczu, są tam, gdzie chcesz.
whuber
1
Czy druga część twojego pytania (ze zmienną binarną) nie powinna być osobnym pytaniem?
chl

Odpowiedzi:

17

Wyrażanie zależności czynników za pomocą wzorów R wynika z notacji Wilkinsona, gdzie „*” oznacza skrzyżowanie i „/” zagnieżdżenie, ale istnieją pewne szczególne cechy sposobu, w jaki formuła dla modeli z efektami mieszanymi lub bardziej ogólnie efektów losowych, jest obsługiwana. Na przykład dwa skrzyżowane efekty losowe mogą być reprezentowane jako (1|x1)+(1|x2). Zinterpretowałem twój opis jako przypadek zagnieżdżenia, podobnie jak klasy są zagnieżdżone w szkołach (zagnieżdżone w stanach itp.), Więc podstawowa formuła lmerwyglądałaby tak (chyba że zaznaczono inaczej, gaussiandomyślnie używana jest rodzina):

y ~ x + (1|A:B) + (1|A)

gdzie A i B odpowiadają odpowiednio twoim czynnikom wewnętrznym i zewnętrznym. B jest zagnieżdżone w obrębie A i oba są traktowane jako czynniki losowe. W starszym pakiecie nlme odpowiada to coś podobnego lme(y ~ x, random=~ 1 | A/B). Jeśli A miałoby być uważane za stały czynnik, wzór powinien brzmieć y ~ x + A + (1|A:B).

Warto jednak dokładniej sprawdzić specyfikacje D. Batesa dla pakietu lme4 , np. W jego nadchodzącym podręczniku, lme4: Modelowanie mieszane z R lub wiele materiałów informacyjnych dostępnych na tej samej stronie. W szczególności, nie jest przykładem dla takich stosunków w lęgowych Montaż Linear Mixed efekty modele pakiet lme4 w badania . Samouczek Johna Maindonalda zawiera także ładny przegląd: Anatomia analizy modelu mieszanego z pakietem R. lme4 . Wreszcie, sekcja 3 winiety R na temat implikacji Lme4 zawiera przykład analizy zagnieżdżonej struktury.

W lme4 nie ma żadnej predict()funkcji(ta funkcja już istnieje, patrz komentarz poniżej), i musisz obliczyć sobie przewidywane indywidualne wartości, używając oszacowanych stałych (patrz ?fixef) i losowych (patrz ?ranef) efektów, ale zobacz także ten wątek dotyczący braku funkcji przewidywania w lme4 . Możesz również wygenerować próbkę z rozkładu tylnego za pomocą mcmcsamp()funkcji. Czasami może się jednak kolidować. Zobacz aktualną listę mailingową sig-me .

chl
źródło
3
Aby zaktualizować: lme4teraz zawiera funkcję przewidywania inside-r.org/packages/cran/lme4/docs/predict.mermod
Bar
Dokumentacja Prognoz.merMod jest teraz dostępna tutaj: rdocumentation.org/packages/lme4/versions/1.1-12/topics/…
DirtStats
10

Ez pakiet zawiera funkcję ezPredict (), która uzyskuje przewidywań lmer modeli gdzie prognoza jest oparta tylko na stałych efektów. To naprawdę tylko opakowanie wokół podejścia opisanego na wiki glmm .

Mike Lawrence
źródło
5

Chciałbym użyć funkcji „logit.mixed” w Zelig , która jest opakowaniem dla lime4 i sprawia, że ​​bardzo wygodnie jest przewidywać i symulować.

Shige
źródło
Wydaje się, że nie ma metody predcit () dla logit.mixed w zelig ..
nassimhddd
3

Wersja rozwojowa lme4 ma wbudowaną funkcję przewidywania (przewidywana.merMod). Można go znaleźć na https://github.com/lme4/lme4/ .

Kod do zainstalowania „Prawie aktualnych plików binarnych programowania z repozytorium lme4 r-forge” można znaleźć na powyższej stronie i jest on:

install.packages("lme4", repos=c("http://lme4.r-forge.r-project.org/repos", getOption("repos")["CRAN"]))
Martin P.
źródło
1
uwaga: nie jest to już wersja rozwojowa, predictdostępna od kilku lat.
Ben Bolker
1

Stephen Raudenbush ma rozdział książkowy w Podręczniku analizy wielopoziomowej na temat „ Wiele małych grup ”. Jeśli interesują cię tylko efekty x na y i nie interesujesz się efektami wyższego poziomu, jego sugestią jest po prostu oszacowanie modelu efektów stałych (tj. Zmiennej zastępczej dla wszystkich możliwych grup wyższych poziomów).

Nie wiem, jak ma to zastosowanie do przewidywania, ale wyobrażam sobie, że niektóre z jego tekstów odnoszą się do tego, co próbujesz osiągnąć.

Andy W.
źródło