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

Sha*_*ges 6 binary error-handling r lme4

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

我的代码是:

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

其中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
Run Code Online (Sandbox Code Playgroud)

但是,对象'm1'仍会出现在我的值列表中.打字:

summary(m1)
Run Code Online (Sandbox Code Playgroud)

返回错误:

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
Run Code Online (Sandbox Code Playgroud)

有谁知道问题是什么?有趣的是,如果我排除变量'SO',我可以运行模型.

编辑:

与(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
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

Sha*_*ges 2

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
Run Code Online (Sandbox Code Playgroud)

有人向我建议,我的问题是由于某些组合不存在(完全分离)而引起的。您可以看到 's' 类别中的所有植物都开花了,因此如果完美地保护 REPRODUCE,那么 SO=s。如果我更改几行,以便一个控制植物“开花”,一个胁迫植物“开花”,那么我就可以运行模型并获得摘要()输出(尽管仍然带有警告消息,可能是由于部分分离)。SO 在glm 中不显着是由于Hauck-Donner 现象

我不知道该怎么办