модель glmer с начала 2013 года: предупреждающее сообщение о сходимости при повторном запуске

Более 1 года назад (февраль 2013 г.) я использовал 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   

Заранее благодарим вас за любую помощь, которую вы можете предложить.


person msoftrain    schedule 22.05.2014    source источник


Ответы (1)


(Обновлено из комментария)

  • класс объектов, производимых glmer, действительно изменился (с mer на merMod). Вы можете установить пакет обратной совместимости lme4.0 с http://lme4.r-forge.r-project.org/repos :
install.packages("lme4.0",repos="http://lme4.r-forge.r-project.org/repos")

и см. ?convert_old_lme4 вспомогательную функцию для преобразования сохраненной модели в соответствие, чтобы вы могли использовать ее в lme4.0.

  • Ваше предупреждение о конвергенции почти наверняка является ложным срабатыванием: см. эту ветку списка рассылки. или конец этой проблемы Github. Вы можете установить разрабатываемую версию с Github (через devtools::install_github("lme4","lme4")) или репозиторий, указанный выше, или просто попробовать это:
relgrad <- with(mixmod1@optinfo$derivs, solve(Hessian, gradient))
max(abs(relgrad))

и посмотрите, мал ли масштабированный градиент.

person Ben Bolker    schedule 24.05.2014
comment
Спасибо за convert_old_lme4 предложение. Я попробовал ваше предложение для второй проблемы и получил значение 0,109. Простите мое невежество, но я действительно не знаю, что такое масштабированный градиент, поэтому 0,109 кажется мне маленьким, но я не знаю, что было бы типичной величиной. - person msoftrain; 29.05.2014