전체 성공을 가진 범주 형 변수가있는 이항 glmm


11

이항 반응 변수와 범주 형 예측 변수로 glmm을 실행하고 있습니다. 무작위 효과는 데이터 수집에 사용 된 중첩 디자인에 의해 제공됩니다. 데이터는 다음과 같습니다.

m.gen1$treatment
 [1] sucrose      control      protein      control      no_injection .....
Levels: no_injection control sucrose protein
m.gen1$emergence 
 [1]  1  0  0  1  0  1  1  1  1  1  1  0  0....
> m.gen1$nest
 [1] 1  1  1  2  2  3  3  3  3  4  4  4  .....
Levels: 1 2 3 4 5 6 8 10 11 13 15 16 17 18 20 22 24

내가 처음 실행하는 모델은 다음과 같습니다

m.glmm.em.<-glmer(emergence~treatment + (1|nest),family=binomial,data=m.gen1)

다음과 같은 두 가지 경고가 나타납니다.

Warning messages:
1: In checkConv(attr(opt, "derivs"), opt$par, ctrl = control$checkConv,  :
  Model failed to converge with max|grad| = 0.0240654 (tol = 0.001, component 4)
2: In checkConv(attr(opt, "derivs"), opt$par, ctrl = control$checkConv,  :
  Model is nearly unidentifiable: large eigenvalue ratio
 - Rescale variables?

모델 요약은 처리 중 하나에 비정상적으로 큰 표준 오류가 있으며 여기에서 볼 수 있습니다.

Fixed effects:
                 Estimate Std. Error z value Pr(>|z|)  
(Intercept)         2.565      1.038   2.472   0.0134 *
treatmentcontrol   -1.718      1.246  -1.378   0.1681  
treatmentsucrose   16.863   2048.000   0.008   0.9934  
treatmentprotein   -1.718      1.246  -1.378   0.1681 

나는 glmer control과 다른 패키지의 함수에서 다른 옵티 마이저를 시도했지만 비슷한 결과를 얻었습니다. 임의 효과를 무시하고 glm을 사용하여 모델을 실행했는데 문제가 지속됩니다. 데이터를 탐색하면서 나는 높은 Std로 치료한다는 것을 깨달았습니다. 오류는 응답 변수에서만 성공합니다. 이것이 문제를 일으킬 수 있는지 확인하기 위해 해당 처리에 "실패"한 가짜 데이터 포인트를 추가했으며 모델이 원활하게 실행되고 합리적인 표준 오류가 발생합니다. 여기에서 볼 수 있습니다.

Fixed effects:
                 Estimate Std. Error z value Pr(>|z|)  
(Intercept)        3.4090     1.6712   2.040   0.0414 *
treatmentcontrol  -1.8405     1.4290  -1.288   0.1978  
treatmentsucrose  -0.2582     1.6263  -0.159   0.8738  
treatmentprotein  -2.6530     1.5904  -1.668   0.0953 .

나는 그 치료에 대한 실패가 부족하여 좋은 추정을 방해하는지에 대한 직관이 옳은지 궁금하고,이 문제를 어떻게 해결할 수 있습니까?

미리 감사드립니다!

답변:


15

직감이 정확합니다. 이 현상을 완전 분리 라고 합니다. 당신은 꽤 많은 것을 찾을 수 있습니다 (지금 당신은 그 이름을 알고 있습니다) 인터넷 검색 ... 그것은 일반적인 맥락GLMM의 맥락에서 여기에 상당히 철저히 논의 됩니다 . 이 문제에 대한 표준 솔루션은 매개 변수를 0으로 되 돌리는 작은 용어를 추가하는 것입니다. 빈번한 상황에서는이를 불이익 또는 편향 수정 방법 이라고합니다 . 표준 알고리즘은 Firth (1993, "최대 가능성 추정치의 바이어스 감소" Biometrika 80, 27-38)에 기인 하며 logistf 패키지로 구현됩니다.CRAN. 베이지안 문맥에서 이것은 고정 효과 매개 변수 이전에 약점을 추가하는 것으로 구성됩니다.

내 지식으로는 Firth의 알고리즘은 GLMM으로 확장되지 않았지만 blme 패키지 를 사용하여 베이지안 트릭을 사용할 수 있습니다.이 패키지는 얇은 베이지안 레이어를 lme4패키지 맨 위에 놓습니다 . 위에 링크 된 GLMM 토론의 예는 다음과 같습니다.

cmod_blme_L2 <- bglmer(predation~ttt+(1|block),data=newdat,
                   family=binomial,
                   fixef.prior = normal(cov = diag(9,4)))

이 예제에서 처음 두 줄은 표준 glmer모델 에서 사용하는 것과 정확히 동일 합니다. last는 고정 효과의 선행이 대각선 분산-공분산 행렬을 사용한 다변량 정규 분포임을 지정합니다. 행렬은 4x4이며 (이 예에서는 4 개의 고정 효과 매개 변수가 있기 때문에) 각 매개 변수의 이전 분산은 9 (표준 편차 3에 해당함)는 약합니다. 이는 +/- 2SD가 ( -6,6), 로짓 스케일에서 매우 큰 범위입니다).

예제에서 매개 변수의 매우 큰 표준 오류는 Hauck-Donner effect 라는 완전 분리 (로지스틱 모델에서 극단적 인 매개 변수 값을 얻을 때마다 발생)와 밀접한 관련이있는 현상의 예입니다 .

잠재적으로 유용한 두 가지 참조 (아직 나 자신을 파헤 치지 않았습니다) :

  • Gelman A, Jakulin A, Pittau MG 및 Su TS (2008) 로지스틱 및 기타 회귀 모형에 대한 약한 기본 사전 분포입니다. 응용 통계 연보 , 2, 1360–383.
  • José Cortiñas Abrahantes 및 Marc Aerts (2012) 군집 이진 데이터를위한 분리 솔루션 통계 모델링 12 (1) : 3–27 doi : 10.1177 / 1471082X1001200102

"bglmer 'complete Separation"에 대한 최신 Google 학술 검색 검색 :

  • Quiñones, AE 및 WT Wcislo. “ 유익한 사회 복지 땀벌 Megalopta genalis에서 암호화 된 확장 된 종아리 관리 .” 곤충 Sociaux 62.3 (2015) : 307–313.

와 정말 고마워요 !! 이것은 완벽하게 이해되며 모델은 이제 bglmer와 함께 원활하게 실행됩니다. lme4에서와 같은 방법을 사용하여 임의의 효과와 고정 효과를 평가할 수 있습니까? 즉, 다른 모델을 비교할 수 있습니까?

2
나는 그렇게 말할 것이지만, 내 의견에 대한 공식적 및 / 또는 동료 검토 지원이
있는지 모르겠다

감사! 이것은 정확히 내 문제이기도합니다. 빠른 후속 조치 : 귀하의 예와 달리 4 레벨을 가진 하나의 요소가있는 각 요소가 2 개의 레벨을 갖는 2 x 2 디자인을 가지고 있습니다 (따라서 총계는 여전히 4 단계입니다). 모델에 diag (9,4) 를 사용할 수 있습니까 ? 행렬에 정통하지 않아서 다시 확인하고 싶었습니다. 관련하여 내 논문 에서이 솔루션을 정당화하기 위해 Firth (1993)를 인용해야합니까, 아니면 bglmer ()를 사용하여 솔루션을 구현 한 더 직접적인 관련 논문이 있습니까?
Sol

2
업데이트 된 답변을 참조하십시오.
Ben Bolker

2
나는 그렇게 생각합니다-총 고정 효과 매개 변수의 수는 중요합니다.
벤 볼커
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.