2014-06-13 34 views
5

Zbudowałem i uruchomiłem model regresji logistycznej efektów mieszanych w pakiecie lme4 dla r, aby oszacować prawdopodobieństwo obłożenia ryb w różnych lokalizacjach (komórki/siedliska). Ramka danych składa się z 1 207 140 obserwacji 68 pojedynczych ryb. Dla każdej osoby (dziennie przez ~ 1 rok) opisuje ona liczbę zdarzeń w każdej unikalnej lokalizacji w stosunku do całkowitej liczby zdarzeń we wszystkich lokalizacjach.Zrozumieć komunikaty ostrzegawcze dla modelu mieszanego w r lme4

Oto model podstawowy:

m.base = glmer(cbind(N,t.move-N) ~ jdate + snSurface.Area + Restoration..P.A. +  
    Release.Location+ Sex + (1|Station) + (0 + jdate|ID), data=allfishdat, family=binomial) 
where N=# unique positions, t.move=total positions, jdate=julian date, Station=locations, ID=fish ID 

pojawia się następujący komunikat ostrzegawczy:

Warning messages: 
1: In checkConv(attr(opt, "derivs"), opt$par, ctrl = control$checkConv, : 
       Model failed to converge with max|grad| = 3349.26 (tol = 0.001) 
2: In if (resHess$code != 0) { : 
the condition has length > 1 and only the first element will be used 
3: In checkConv(attr(opt, "derivs"), opt$par, ctrl = control$checkConv, : 
Model is nearly unidentifiable: very large eigenvalue 
- Rescale variables?;Model is nearly unidentifiable: large eigenvalue ratio 
- Rescale variables? 

zrobiłem kilka wyszukiwania, aby spróbować zrozumieć, co te komunikaty oznaczają i ich konsekwencje na modelu, ale jeszcze nie zrozumieli ostrzeżenia.

+2

Czy możesz powiedzieć, co pan spojrzał na już, a to, co robisz i nie rozumieją? Czytałeś https://github.com/lme4/lme4/blob/master/README.md? http://stackoverflow.com/questions/23814130/glmer-model-from-early-2013-warning-message-about-convergence-when-re-running-i/23839952#23839952? http://stackoverflow.com/questions/21344555/convergence-error-for-development-version-of-lme4? –

+0

Bump. Pomogłoby Ci to, gdybyś mógł powiedzieć, co masz i czego nie zrozumiałeś - cieszę się, że mogę Ci pomóc, ale nie mam ochoty powtarzać informacji, które już tam są ... –

+0

Guz wypukłości ..... –

Odpowiedz

2

Jeśli pierwszy problem dotyczy R, który musi przejść więcej iteracji, aby osiągnąć konwergencję, poniższy kod może pomóc. Zastąp symbol "20000" dowolną maksymalną liczbą iteracji dla danego modelu. (Zauważ, że oryginalny kod modelu został zmodyfikowany w końcu włączyć „kontrola = my.control”.)

my.control=lmerControl(optCtrl=list(maxfun=20000); my.control 

m.base = glmer(cbind(N,t.move-N) ~ jdate + snSurface.Area + Restoration..P.A. + Release.Location+ Sex + (1|Station) + (0 + jdate|ID), data=allfishdat, family=binomial, control = my.control) 

Może być również przydatna, aby przejrzeć bieżące lmeControls za pomocą następującego polecenia:

str(lmerControl()) 

Ponadto, ta poprzednia odpowiedź może być pomocne dla Ciebie: increase iterations for new version of lmer?

+4

I don ' t zobaczyć dowody ostrzeżeń o niedostatecznej iteracji tutaj. Na przykład 'library (lme4); fm1 <- lmer (Reakcja ~ Dni + (Dni | Temat), sleepstudy, control = lmerControl (optCtrl = lista (maxfun = 5))) "wyraźnie stwierdza" przekroczona została maksymalna liczba ocen funkcji ", czego nie widzę powyżej . –