广义线性混合模型误差(二元响应)

时间:2014-09-23 02:31:41

标签: r error-handling binary lme4

我在R中为二进制响应变量运行一个广义线性混合模型,我收到一条错误信息。

我的代码是:

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

其中REPORDUCE =二进制,F1TREAT和SO =因子各有2个级别。这将返回警告:

Warning messages:
   1: In checkConv(attr(opt, "derivs"), opt$par, ctrl = control$checkConv,  :
     unable to evaluate scaled gradient
   2: In checkConv(attr(opt, "derivs"), opt$par, ctrl = control$checkConv,  :
     Hessian is numerically singular: parameters are not uniquely determined

然而,对象&#39; m1&#39;仍出现在我的值列表中。打字:

summary(m1)

返回错误:

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

有谁知道这是什么问题?有趣的是,如果我排除变量&#39; SO&#39;我可以运行模型。

编辑:

  

与(MYDATA,表(复制,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

glm的结果是:     呼叫:     glm(公式= REPRODUCE~F1TREAT * SO,family =二项式,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

1 个答案:

答案 0 :(得分: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

有人向我建议我的问题是由于某些组合不存在(complete separation)。你可以看到所有的植物都在&#39;类别开花,因此SO = s,如果完美地提出REPRODUCE。如果我改变了几行,那么一个人控制植物开花了#39;一种压力的植物开花了#39;然后我能够运行模型并获得summary()输出(虽然仍然带有警告消息,可能是由于部分分离)。 gl中SO的非重要性归因于Hauck-Donner phenomenon

我不知道该如何处理