Dopasowuję model efektów losowych glmer
do niektórych danych biznesowych. Celem jest analiza wyników sprzedaży przez dystrybutora, z uwzględnieniem różnic regionalnych. Mam następujące zmienne:
distcode
: identyfikator dystrybutora z około 800 poziomamiregion
: identyfikator geograficzny najwyższego poziomu (północ, południe, wschód, zachód)zone
: zagnieżdżona geografia średniego poziomuregion
, w sumie około 30 poziomówterritory
: zagnieżdżona geografia niskiego poziomuzone
, około 150 poziomów
Każdy dystrybutor działa tylko na jednym terytorium. Problem polega na tym, że są to podsumowane dane, z jednym punktem danych na dystrybutora. Mam więc 800 punktów danych i staram się dopasować (co najmniej) 800 parametrów, choć w regularny sposób.
Zamontowałem model w następujący sposób:
glmer(ninv ~ 1 + (1|region/zone/territory) + (1|distcode), family=poisson)
Działa to bez problemu, chociaż drukuje notatkę:
Liczba poziomów współczynnika grupowania dla efektów losowych jest równa n, liczbie obserwacji
Czy to rozsądne? Otrzymuję skończone oszacowania wszystkich współczynników, a AIC również nie jest nieracjonalne. Jeśli spróbuję poissona GLMM z łączem tożsamości, AIC jest znacznie gorszy, więc łącze dziennika jest co najmniej dobrym punktem wyjścia.
Jeśli wykreślę dopasowane wartości względem odpowiedzi, otrzymam to, co jest zasadniczo idealne dopasowanie, co wydaje mi się, ponieważ mam jeden punkt danych na dystrybutora. Czy to rozsądne, czy robię coś całkowicie głupiego?
To używa danych przez jeden miesiąc. Mogę uzyskiwać dane przez wiele miesięcy i w ten sposób uzyskać trochę replikacji, ale musiałbym dodać nowe warunki dotyczące zmienności z miesiąca na miesiąc i możliwych interakcji, prawda?
ETA: Ponownie uruchomiłem powyższy model, ale bez family
argumentu (więc tylko gaussowski LMM zamiast GLMM). Teraz lmer
dał mi następujący błąd:
Błąd w (funkcja (fr, FL, start, REML, verbose): liczba poziomów czynnika grupującego dla efektów losowych musi być mniejsza niż liczba obserwacji
Sądzę więc, że nie robię czegoś sensownego, ponieważ zmiana rodziny nie powinna mieć wpływu. Ale teraz pytanie brzmi: dlaczego to zadziałało?
źródło
glmer
każdym razie (mimo że nie jestem z tego zbyt zadowolony).Jeden poziom na obserwację może być bardzo przydatny, jeśli przesadziłeś dane zliczeń jako zmienną odpowiedzi. Jest to równoznaczne z powiedzeniem, że oczekujesz, że twoje dane zliczania będą pochodzić z rozkładu logarytmicznego Poissona, tzn. Że parametr lambda twojego rozkładu Poissona nie jest w pełni określony przez zmienne predykcyjne w twoim modelu i że możliwości są rozkładane logarytmicznie.
Ben Bolker, jeden z programistów lme4, zrobił z tym dwa przykłady podobne do samouczków. Pierwszy z syntetycznymi danymi zawiera nieco więcej szczegółów. Można znaleźć pdf tutaj . Przeszedł także przez analizę danych eksploracyjnych z prawdziwymi danymi dotyczącymi sów (pdf i kod R dostępny tutaj ).
źródło
glmer
pojęć.distributor
jest to efekt zainteresowania: chcę zobaczyć, jak dystrybutorzy działają względem siebie, dopuszczając inne zmienne. Dlatego jest bardziej porównywalny do konwencjonalnego liniowego modelu mieszanego, w którym nadmierne dopasowanie jest prawdziwym problemem.