혼합 효과 모델을 위해 nlme 또는 lme4 R 라이브러리를 선택하는 방법은 무엇입니까?


85

내가 사용하는 몇 가지 혼합 효과 모델 (특히 세로 모델)에 맞게이 lme4에서를 R하지만 정말 모델과 그들과 함께가는 코드를 마스터하고 싶습니다.

그러나 두 발로 다이빙하기 전에 (그리고 책을 사기 전에) 올바른 라이브러리를 배우고 있는지 확인하고 싶습니다. lme4방금보다 쉽게 ​​발견했기 때문에 지금까지 사용 nlme했지만 nlme내 목적에 더 좋으면 사용해야한다고 생각합니다.

나는 단순한 방법으로 "더 나은"것이 아니라고 생각하지만 의견이나 생각을 소중하게 생각합니다. 내 주요 기준은 다음과 같습니다

  1. 사용하기 쉬움 (훈련을 통해 심리학자이고 통계 나 코딩에 정통하지는 않지만 배우고 있습니다)
  2. 종단 데이터를 맞추기위한 좋은 기능 (차이가 있지만 이것이 주로 사용하는 경우)
  3. 좋은 (해석하기 쉬운) 그래픽 요약, 다시 여기에 차이가 있는지 확실하지 않지만 종종 나보다 기술이 적은 사람들을위한 그래프를 생성하므로 멋진 플롯이 항상 좋습니다 (격자에서 xyplot 함수를 매우 좋아합니다) 이런 이유로).

평소처럼,이 질문이 너무 모호하지 않기를 바랍니다. 어떤 지혜에 대해서도 미리 감사드립니다!

답변:


68

두 패키지 모두 Lattice백엔드로 사용 되지만 (IMO) 에는 부족 하고 nlme좋은 기능 이 있습니다 . 그러나 실용적인 관점에서 가장 중요한 두 가지 기준은groupedData()lmList()lme4

  1. lme4nlme다른 링크 함수로 확장 :에서 nlme, 가우스 분포가 아닌 결과에 적합 할 수 없으며 lme4, 예를 들어 혼합 효과 로지스틱 회귀에 적합하도록 사용할 수 있습니다.
  2. 에서 nlme랜덤 효과에 대한 분산 공분산 행렬을 지정할 수 있습니다 (예 : AR (1)). 에서 가능하지 않습니다 lme4.

이제 lme4C 부분과 희소 행렬을 사용하여 매우 많은 수의 무작위 효과 (따라서 주어진 연구에서 개인 수)를 쉽게 처리 할 수 ​​있습니다. nlme패키지는 다소에 의해 대체되었습니다 lme4나는 사람들이 추가 기능의 상단에 개발에 많은 시간을 소비 기대하지 않습니다 그래서 nlme. 개인적으로, 모델에서 지속적으로 응답 할 때 두 패키지를 모두 사용하는 경향이 있지만 이제 lme4GLMM을 맞추는 방법에 정통합니다 .

R-forge : lme4 : R을 사용한 혼합 효과 모델링 에 대한 Doug Bates의 초안을 먼저 보지 말고 책을 구입하십시오 .


5
@ 2)보다 정확하게 lme4는 대각선 공분산 구조 (예 : 독립적 인 랜덤 효과) 또는 구조화되지 않은 공분산 행렬 (즉, 모든 상관 관계를 추정해야 함) 또는 무작위 효과에 대해 부분적으로 대각선이 아닌 부분적으로 구조화되지 않은 공분산 행렬을 지정할 수 있습니다. 또한 많은 종단 데이터 상황과 관련이있을 수있는 기능의 세 번째 차이를 추가합니다 nlme. 잔차에 대한 분산 공분산 구조 (예 : 공간적 또는 시간적 자기 상관 또는 이분산성)를 지정하도록하겠습니다 lme4.
fabians

@fabians (+1) 아, 감사합니다! lme4다른 VC 구조를 선택할 수 있다는 것을 깨닫지 못했습니다 . 다른 아이디어와 함께 자신의 답변에 추가하는 것이 좋습니다. 공감하겠습니다. BTW, 나는 또한 lmList()사용할 수 있음을 깨달았 lme4습니다. R-sig-ME에 대한 토론을 기억하는 것 같습니다.
chl

더 빠른 대안이 있습니까? 대용량 데이터 세트가있는 모델에 적합하고 컴퓨터에서 거의 1 시간 반이 소요됩니다. 많은 빠른 회귀 패키지가 있지만 임의의 효과를 처리 할 수있는 것으로 보이지는 않습니다.
스칸

52

chl이 지적했듯이 주요 차이점은 랜덤 효과에 대해 지정할 수있는 분산 공분산 구조의 종류입니다. 다음 lme4중 하나를 지정할 수 있습니다.

  • 대각선 공분산 구조 (예 :와 같은 구문을 통해 상호 관련이없는 임의 효과 적용 ~ (1 | group)+ (0 + x1 | group) + (0 + x2 | group))
  • 또는 구조화되지 않은 공분산 행렬 (즉, 모든 상관 관계가 추정 됨 ~ (1 + x1 + x2 | group))
  • 또는 (부분적으로 대각선, 부분적으로 구조화되지 않은 공분산 y ~ (1 + x1 | group) + (0 + x2 | group)당신이 임의 절편 및 랜덤 기울기 사이의 상관 관계 추정 것입니다, x1하지만에 대한 임의의 기울기 사이에 상관 관계 x2및 임의 절편과의 임의의 기울기 사이의 x2랜덤 기울기를 들어 x1).

nlme랜덤 효과에 대해 훨씬 광범위한 공분산 구조를 제공합니다. lme4그러나 대부분의 응용 프로그램 에는 유연성 이 충분합니다.

나는 또한 많은 종의 데이터 상황에 더 관련이있을 수 기능에있는 제 3의 차이를 추가 할 것입니다 : nlme 당신이 잔차에 대한 분산 공분산 구조를 지정의 (즉, 공간적 또는 시간적 자기 상관 또는 이분 또는 공 변수에 의존 다양성)하자 weights(CF 인수 ?varFunc), lme4관측 값에 대해 고정 된 사전 가중치 만 허용합니다.

네 번째 차이점은 nlme(일부) 교차 임의 효과를 맞추기 가 어려울 수 있지만 의 문제는 아닙니다 lme4.

를 고집하면 아마 괜찮을 것입니다 lme4.


1
lme4가 아닌 nlme에 시간적 자기 상관을 포함시킬 수있는 예외 (당신이 지적했듯이). 데이터 세트가 충분히 크고 데이터가 이런 종류의 구조를 가지고 있다면 nlme의 큰 이점이 될 수 있습니다.
Ben Bolker

22

다른 사람들은 그 차이점을 아주 잘 요약했습니다. 내 인상은 lme4특히 교차 임의 효과를 사용해야 할 때 클러스터 데이터 세트에 더 적합 하다는 것 입니다. 그러나 반복 측정 설계 (많은 종 방향 설계 포함)의 경우 잔차에 대한 상관 구조 지정 nlmenlme지원하므로 도구 입니다. 객체 와 함께 correlations또는 cor인수를 사용하여 수행 corStruct합니다. 또한 varFunc객체를 사용하여 이분산성을 모델링 할 수 있습니다 .


13

피팅 혼합 효과 이상 모델에 대한 R의 패키지의 숫자 실제로있다 lme4nlme. 혼합 모델에 대해 R 특별 관심 그룹이 운영 하는 멋진 위키가 있습니다. 여기에는 매우 멋진 FAQ다양한 패키지를 비교 하는 페이지가 있습니다.

실제로 lme4and 에 대한 내 의견은 nlme: lme4기본 R 수식 구문의 직접적인 확장으로 인해 일반적으로 사용하기가 더 쉽다는 것을 알았 습니다. 일반화 된 덧셈 모델로 작업해야하는 경우 gamm4패키지는이 구문을 한 단계 더 확장하므로 훌륭한 학습 곡선을 얻을 수 있습니다. 다른 사람들이 언급했듯이 lme4일반화 된 모델 (다른 링크 함수 및 오류 분포)을 처리 할 수 ​​있습니다. nlme가우스 링크 함수에 중점을두면 일반적인 경우에 매우 어려운 몇 가지 일을 할 수 있습니다 (공분산 구조 지정 및 p- 값과 같은 자유도 계산에 의존하는 특정 일, 후자는 이동하도록 권장합니다) 멀리 떨어져!).

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.