2014-09-23 2 views
5

Ich führe ein verallgemeinertes lineares gemischtes Modell in R für eine binäre Antwortvariable und erhalte eine Fehlermeldung.Verallgemeinerter linearer gemischter Modellfehler (binäre Antwort)

Mein Code ist:

library('lme4') 
m1<-glmer(data=mydata, REPRODUCE~F1TREAT*SO+(1|LINE/MATERNAL_ID), family=binomial) 

Wo REPORDUCE = binär, F1TREAT und SO = Faktor jeweils mit 2 Ebenen. Dies gibt die Warnung zurück:

Das Objekt 'm1' erscheint jedoch immer noch in meiner Werteliste. Typisierung:

summary(m1) 

gibt den Fehler:

Error in diag(vcov(object, use.hessian = use.hessian)) : 
    error in evaluating the argument 'x' in selecting a method for function 'diag': 
Error in solve.default(h) : 
    Lapack routine dgesv: system is exactly singular: U[5,5] = 0 

Hat jemand eine Idee, was das Problem ist? Lustigerweise kann ich das Modell gut laufen lassen, wenn ich die Variable 'SO' ausschließe.

Edit:

with(mydata,table(REPRODUCE,F1TREAT,SO))

, , SO = o 

    F1TREAT 
REPRODUCE control stress 
    0  61 167 
    1  125  8 

, , SO = s 

    F1TREAT 
REPRODUCE control stress 
    0  0  0 
    1  186 172 

Die Ergebnisse eines GLM sind: Call: glm (Formel = REPRODUZIEREN ~ F1TREAT * SO, Familie = binomische, data = mydata)

Deviance Residuals: 
Min  1Q Median  3Q  Max 
-1.49323 -0.30592 0.00005 0.00005 2.48409 

Coefficients: 
        Estimate Std. Error z value Pr(>|z|)  
(Intercept)   0.7174  0.1562 4.594 4.36e-06 *** 
F1TREATstress  -3.7560  0.3942 -9.529 < 2e-16 *** 
SOs     19.8486 1300.0538 0.015 0.988  
F1TREATstress:SOs 3.7560 1875.5931 0.002 0.998  
--- 
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 

(Dispersion parameter for binomial family taken to be 1) 

Null deviance: 898.27 on 718 degrees of freedom 
Residual deviance: 300.37 on 715 degrees of freedom 
AIC: 308.37 

Number of Fisher Scoring iterations: 19 
+2

zu tun 'SO' kollinear mit einer der anderen Variablen im Modell. Ich schlage vor, (1) das Internet nach etwas wie "check for collinearity" (2) zu suchen, stellen Sie Ihre Frage (mit vollem Datensatz) auf http://stats.stackexchange.com/. – bdemarest

+0

meine festen Effekte sind beide Faktoren mit 2 Ebenen. Ich bin mir nicht sicher, ob ich Kollinearität mit Faktoren haben kann? Genauso, wenn ich F1TREAT entferne, ist SO der einzige verbleibende feste Effekt. Das Modell wird immer noch nicht ausgeführt und ich erhalte die gleichen Fehlermeldungen –

+1

Es ist ein wenig schwierig, das Problem zu erraten, ohne die Daten zu sehen. Was sind die Ergebnisse von 'mit (Mydata, Tabelle (REPRODUCE, F1TREAT, SO))'? –

Antwort

1
with(mydata,table(REPRODUCE,F1TREAT,SO)) 

, , SO = o 

    F1TREAT 
REPRODUCE control stress 
0  61 167 
1  125  8 

, , SO = s 

    F1TREAT 
REPRODUCE control stress 
0  0  0 
1  186 172 

Es wurde mir vorgeschlagen, dass mein Problem durch die Tatsache verursacht wird, dass einige Kombinationen nicht existieren (complete separation). Sie können sehen, dass ALLE Pflanzen in der 's'-Kategorie geblüht haben, daher SO = s, wenn REPRODUCE perfekt vorbehandelt wird. Wenn ich ein paar Zeilen ändere, so dass eine Kontrollpflanze "geblüht" und eine Stresspflanze "geblüht" ist, kann ich das Modell ausführen und die summary() Ausgabe erhalten (wenn auch immer noch mit Warnmeldungen, wahrscheinlich wegen teilweise Trennung). Die Nichtbedeutung von SO in der GLM ist auf die Hauck-Donner phenomenon zurückzuführen.

Ich bin nicht sicher, was möglicherweise zu diesem

+1

Diese Antwort könnte nützlich sein: http: //stats.stackexchange com/questions/45803/logistic-regression-in-r-results-in-hauck-donner-phenomence-now-what – bdemarest

+1

Sie können mit Hauck-Donner umgehen, indem Sie Likelihood-Quotient-Tests (zB 'drop1') anstelle von Wald berechnen Tests. Sie können mit der vollständigen Separation umgehen, indem Sie einen vorher festgelegten Effekt über 'blme' oder' MCMCglmm' setzen: siehe http://rpubs.com/bbolker/glmmchapter und suchen Sie nach "vollständige Separation" für mehr Informationen ... –

+1

Ich habe das Modell mit dem 'blme' Paket ausgeführt, das normale priors auf die fixierten Effekte anwendet' m1 <-bglmer (data = mimulus, REPRODUCE ~ F1TREAT * SO + (1 | LINIE/MATERNAL_ID), family = binomial, cov.prior = NULL, fixef.prior = normal) 'Soll ich dieses Modell weiter analysieren, als würde ich ein Modell verwenden, das mit glmer erstellt wurde: indem man feste Effekte ausschließt und das neue Modell mit dem vollständigen Modell mit' lrtest' vergleicht? Oder gibt es eine bessere Möglichkeit, die fixen Auswirkungen dieses Modells zu melden? –