一年多以前(2013年2月),我使用lmer运行包含以下项的包含二项式结果的混合效应模型:

nl3.lmer <- glmer( cul.bi ~ food.act + where + intlan + inter.cul + via.m + via.h + (1|Id), data=drm, family=binomial)


一切工作正常,没有任何错误或警告消息,我介绍了我的结果。今天,当尝试查看它时,我遇到了两个问题:

1)

summary(nl3.lmer)
Length  Class   Mode
     1    mer     S4


...而不是通常的摘要。
是因为类从mer对象更改为merMod对象吗?我在lme4软件包更新的说明中读到了有关此更改的内容,但我想再次检查是否确实是这种情况...。如果是,summary是否有一种简单的方法可以读取mer对象?

2)(我对此更加关注)

因为我再也不能使用旧的nl3.lmer对象,所以我决定重新运行同一模型。

mod <- glmer( cul.bi ~ food.act + where + intlan + inter.cul + via.m + via.h + (1|id), data=drm, family=binomial)
Warning message:
In checkConv(attr(opt, "derivs"), opt$par, ctrl = control$checkConv,  :
  Model failed to converge with max|grad| = 1.09141 (tol = 0.001)


我有点惊慌。这是否意味着我去年报告的模型实际上不是“好”的(抱歉,缺少更好的统计限定词)?简单来说,实际上是什么意思?
这是该模型的summary

Generalized linear mixed model fit by maximum likelihood (Laplace Approximation) ['glmerMod']
 Family: binomial ( logit )
Formula: cul.bi ~ food.act + where + intlan + inter.cul + via.m + via.h +      (1 | id)
   Data: drm

     AIC      BIC   logLik deviance df.resid
   522.0    582.3   -247.0    494.0      537

Scaled residuals:
    Min      1Q  Median      3Q     Max
-3.6076 -0.4533  0.1179  0.4038  4.4283

Random effects:
 Groups Name        Variance Std.Dev.
 id     (Intercept) 2.626    1.62
Number of obs: 551, groups: id, 101

Fixed effects:
                  Estimate Std. Error z value Pr(>|z|)
(Intercept)         1.9401     1.6664   1.164 0.244317
food.actYes         0.7533     0.3250   2.318 0.020455 *
whereschool        -1.5370     0.4127  -3.724 0.000196 ***
wherework          -1.2763     0.7957  -1.604 0.108701
whereother         -1.1453     0.3749  -3.055 0.002249 **
intlanher           3.1935     0.8812   3.624 0.000290 ***
intlanbil           0.9765     0.5805   1.682 0.092555 .
intlanno int       -0.6395     0.5910  -1.082 0.279268
inter.culher        2.5482     0.5020   5.076 3.86e-07 ***
inter.culher-main   1.2225     0.4588   2.664 0.007713 **
inter.culno int     1.2966     0.6076   2.134 0.032845 *
via.m              -0.8063     0.2441  -3.304 0.000954 ***
via.h               0.4862     0.2003   2.428 0.015183 *
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Correlation of Fixed Effects:
            (Intr) fd.ctY whrsch whrwrk whrthr intlnh intlnb intlni intr.c intr.- intr.i via.m
food.actYes -0.091
whereschool -0.100  0.143
wherework   -0.050  0.103  0.233
whereother  -0.129  0.179  0.420  0.256
intlanher   -0.065  0.078  0.019  0.052 -0.037
intlanbil   -0.053  0.086  0.061 -0.068  0.046  0.072
intlannoint -0.055 -0.012  0.104  0.055  0.137  0.051  0.073
inter.culhr -0.120  0.063 -0.017  0.050  0.022  0.017  0.048  0.024
intr.clhr-m -0.118  0.079 -0.155 -0.193 -0.094 -0.011 -0.040 -0.027  0.432
intr.clnint -0.049  0.103  0.047  0.036 -0.010  0.048  0.046 -0.745  0.335  0.361
via.m       -0.596 -0.103  0.083 -0.010  0.084 -0.074  0.037  0.056 -0.034 -0.024 -0.065
via.h       -0.391  0.119 -0.104  0.006 -0.075  0.126 -0.036 -0.038  0.033  0.031  0.015 -0.469


我很乐意提供一个可重复的示例,但恐怕它并不能真正反映我的问题。
并且在有用的情况下:

sessionInfo()
R version 3.1.0 (2014-04-10)
Platform: i686-pc-linux-gnu (32-bit)

locale:
 [1] LC_CTYPE=en_CA.UTF-8       LC_NUMERIC=C               LC_TIME=en_CA.UTF-8
 [4] LC_COLLATE=en_CA.UTF-8     LC_MONETARY=en_CA.UTF-8    LC_MESSAGES=en_CA.UTF-8
 [7] LC_PAPER=en_CA.UTF-8       LC_NAME=C                  LC_ADDRESS=C
[10] LC_TELEPHONE=C             LC_MEASUREMENT=en_CA.UTF-8 LC_IDENTIFICATION=C

attached base packages:
 [1] parallel  splines   grid      stats     graphics  grDevices utils     datasets  methods   base

other attached packages:
 [1] RColorBrewer_1.0-5 glmmML_1.0         ggplot2_0.9.3.1    pbkrtest_0.3-8     mvoutlier_2.0.4
 [6] sgeostat_1.0-25    HLMdiag_0.2.5      plyr_1.8.1         prettyR_2.0-7      languageR_1.4.1
[11] msm_1.3            e1071_1.6-3        nlme_3.1-117       MASS_7.3-33        nnet_7.3-8
[16] car_2.0-19         effects_3.0-0      colorspace_1.2-4   Hmisc_3.14-4       Formula_1.1-1
[21] survival_2.37-7    lattice_0.20-29    lmerTest_2.0-6     lme4_1.1-6         Rcpp_0.11.1
[26] Matrix_1.1-3

loaded via a namespace (and not attached):
 [1] bitops_1.0-6          caTools_1.17          class_7.3-10          cluster_1.15.2
 [5] DEoptimR_1.0-1        dichromat_2.0-0       digest_0.6.4          expm_0.99-1.1
 [9] gdata_2.13.3          gplots_2.13.0         gtable_0.1.2          gtools_3.4.0
[13] KernSmooth_2.23-12    labeling_0.2          latticeExtra_0.6-24   minqa_1.2.3
[17] munsell_0.4.2         mvtnorm_0.9-99992     numDeriv_2012.9-1     pcaPP_1.9-49
[21] pls_2.4-3             proto_0.3-10          RcppEigen_0.3.2.1.2   reshape2_1.2.2
[25] robCompositions_1.8.0 robustbase_0.91-1     rrcov_1.3-4           scales_0.2.3
[29] stats4_3.1.0          stringr_0.6.2         tools_3.1.0


预先感谢您提供的任何帮助。

最佳答案

(从评论升级)


glmer生成的对象的类别确实已更改(从mermerMod)。您可以从http://lme4.r-forge.r-project.org/repos安装向后兼容lme4.0软件包:




install.packages("lme4.0",repos="http://lme4.r-forge.r-project.org/repos")


并请参见?convert_old_lme4获取转换保存的模型适合度的实用程序功能,以便可以在lme4.0中使用它。


您的收敛警告几乎肯定是假阳性:请参见this mailing list threadthis Github issue的尾部。您可以从Github(通过devtools::install_github("lme4","lme4"))或上面列出的存储库安装开发版本,也可以尝试以下操作:




relgrad <- with(mixmod1@optinfo$derivs, solve(Hessian, gradient))
max(abs(relgrad))


看看缩放的梯度是否很小。

关于r - 2013年初的glmer模型:重新运行时有关收敛的警告消息,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23814130/

10-09 03:42