Неизвестная причина Сингулярность в glmm - PullRequest
0 голосов
/ 30 марта 2020

Я использую следующую модель:

m1_DD2 <- glmer(GotoPB ~ Pb_type + ZF_Dest * ZF_Other + (1|Site), data = DF_DD_5, family = binomial(link = "logit"))

, в которой GotoPB - это коэффициент с двумя уровнями (Y / N), Pb_type - это коэффициент с 4 уровни. И ZF_Dest, и ZF_Other являются числовыми переменными (в диапазоне 0-50 / 48 соответственно). Site - случайный эффект с 13 уровнями. У меня есть 1560 строк данных на этих 13 уровнях. С для переменной ответа GotoPB 569 раз Y и 991 раз N.

Эта модель выдает предупреждение boundary (singular) fit: see ?isSingular. Сводка такова:

Generalized linear mixed model fit by maximum likelihood (Laplace Approximation) ['glmerMod']
 Family: binomial  ( logit )
Formula: GotoPB ~ Pb_type + ZF_Dest * ZF_Other + (1 | Site)
   Data: DF_DD_5

     AIC      BIC   logLik deviance df.resid 
  1458.2   1501.0   -721.1   1442.2     1552 

Scaled residuals: 
    Min      1Q  Median      3Q     Max 
-1.4258 -1.0128  0.0000  0.8856  1.0867 

Random effects:
 Groups Name        Variance  Std.Dev. 
 Site   (Intercept) 2.624e-15 5.122e-08
Number of obs: 1560, groups:  Site, 13

Fixed effects:
                   Estimate Std. Error z value Pr(>|z|)
(Intercept)       2.044e-02  1.362e-01   0.150    0.881
Pb_typeNG         1.590e-01  1.603e-01   0.992    0.321
Pb_typeSilence   -3.104e+01  2.376e+05   0.000    1.000
Pb_typeSong       2.325e-01  1.522e-01   1.528    0.126
ZF_Dest           1.178e-02  1.185e-02   0.994    0.320
ZF_Other         -5.658e-03  8.193e-03  -0.691    0.490
ZF_Dest:ZF_Other  3.174e-05  8.132e-04   0.039    0.969

Correlation of Fixed Effects:
            (Intr) Pb_tNG Pb_typSl Pb_typSn ZF_Dst ZF_Oth
Pb_typeNG   -0.574                                       
Pb_typeSlnc  0.000  0.000                                
Pb_typeSong -0.631  0.548  0.000                         
ZF_Dest     -0.372 -0.055  0.000   -0.005                
ZF_Other    -0.436 -0.075  0.000   -0.043    0.308       
ZF_Dst:ZF_O  0.210  0.089  0.000    0.053   -0.610 -0.508
convergence code: 0
boundary (singular) fit: see ?isSingular

Warning messages:
1: In vcov.merMod(object, use.hessian = use.hessian) :
  variance-covariance matrix computed from finite-difference Hessian is
not positive definite or contains NA values: falling back to var-cov estimated from RX
2: In vcov.merMod(object, correlation = correlation, sigm = sig) :
  variance-covariance matrix computed from finite-difference Hessian is
not positive definite or contains NA values: falling back to var-cov estimated from RX

Теперь из того, что я прочитал, предупреждение о единственном числе может быть вызвано различными проблемами.

  1. Переоснащение слишком сложной случайной структурой -> Структура очень проста.

  2. Случайный эффект со слишком малым количеством уровней - -> Обычно это означает <5 уровней, мой случайный эффект имеет 13 уровней. </p>

  3. Полная коллинеарность двух фиксированных эффектов. -> Это не должно относиться к любому из моих эффектов и не раскрывается функцией car :: vif или в сводке.

  4. Почти 0 дисперсия случайного члена. -> Я не знаю, где проходит эта линия. Считается ли моя дисперсия около 0 достаточной для единственной ошибки подбора?

Интересно, что предупреждение исчезает при двух обстоятельствах:

  1. Из-за низкой дисперсии Случайный термин, который я рассматривал, отбрасывая случайный термин и вместо этого запуская glm.

test <- glm(GotoPB ~ Pb_type + ZF_Dest * ZF_Other, data = DF_DD_5, family = binomial(link = "logit")) Однако, поскольку сайты на самом деле несколько отличались друг от друга, кажется неправильным просто исключать это из модели. С точки зрения метода мои данные (которые являются наблюдениями) определенно не были независимыми в пределах сайтов. Это разрешено / гарантировано в случае низкой дисперсии случайного эффекта согласно моим данным?

Если я уберу фактор Pb_type из модели. К сожалению, это основной фактор, в который я вмешиваюсь, и удаление как ZF_Dest, так и ZF_Other не дает желаемого эффекта. Хотя я очень смущен, почему это, кажется, внезапно останавливает ошибку. Может ли кто-нибудь предложить предложения относительно того, почему это может происходить?

Если бы кто-нибудь мог помочь мне ответить на эти два вопроса и дать совет о том, как действовать, это было бы очень признательно.

...