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)
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 现象。
我不知道该怎么办
归档时间: |
|
查看次数: |
6339 次 |
最近记录: |