안녕하세요?
오랜만에 글 쓰는데 또 질문이네요.
먼저 새해 복 많이 받으십시오!
책을 읽다가 뭔가 잘못된게 있어서 예제 자료를 이용하여 다층모형 혼합모형 등등에 쓰이는 lme와 lmer를 이용하여 직접
추정해보니 결과차이가 있어서 질문드리고자 합니다. 추정한 모형은 가장 단순한 확률절편 모형이고 설명변수로는 x 하나가 들어있고 결과 변수는 연속 변수 입니다 (예제 자료도 첨부하였습니다).
x의 계수가 방향까지 다르고 무작위 효과 추정값도 다릅니다.
아래 화면을 보시고 혹시 제가 잘 못한 것이 있는지 확인부탁드립니다. 아니면 명령어 lmer에 제가 알지 못하는 오류가 있는지요(업데이트도 최신으로 했습니다)? 그룹변수는 gid 입니다.
감사합니다.
1-1. lme로 추정
> lme(y~x, random=~1|gid,data=multi,method="REML")
Linear mixed-effects model fit by REML
Data: multi
Log-restricted-likelihood: 41.76745
Fixed: y ~ x
(Intercept) x
4.1846756 -0.1928357
Random effects:
Formula: ~1 | gid
(Intercept) Residual
StdDev: 7.800953e-07 0.03376871
Number of Observations: 25
Number of Groups: 5
1-2 lmer로 추정
> lmer(y~x+(1|(gid)), data=multi, REML=T)
Linear mixed model fit by REML ['lmerMod']
Formula: y ~ x + (1 | (gid))
Data: multi
REML criterion at convergence: -78.4862
Random effects:
Groups Name Std.Dev.
(gid) (Intercept) 0.70325
Residual 0.02031
Number of obs: 25, groups: (gid), 5
Fixed Effects:
(Intercept) x
2.8152 0.2638
추가적으로 설명변수를 아무것도 집어 넣지 않은 귀무모형도 적합시킨 경우 결과가 일치는 것으로 보입니다.
2-1 lme로 추정
> lme(y~1, random=~1|gid,data=multi,method="REML")
Linear mixed-effects model fit by REML
Data: multi
Log-restricted-likelihood: 38.11745
Fixed: y ~ 1
(Intercept)
3.6064
Random effects:
Formula: ~1 | gid
(Intercept) Residual
StdDev: 0.2938405 0.02718088
Number of Observations: 25
Number of Groups: 5
2-2 lmer로 추정
> lmer(y~1+(1|(gid)), data=multi, REML=T)
Linear mixed model fit by REML ['lmerMod']
Formula: y ~ 1 + (1 | (gid))
Data: multi
REML criterion at convergence: -76.2349
Random effects:
Groups Name Std.Dev.
(gid) (Intercept) 0.29384
Residual 0.02718
Number of obs: 25, groups: (gid), 5
Fixed Effects:
(Intercept)
3.606
첫댓글 잘 하신 것같은데 희안하네요. 같은 데이터로 SAS나 Stata로 돌려보기 전에는 알 수 없는데요. 한번 데이터도 올려보시죠. nlme:lme는 오래된 패키지입니다. 둘 중 하나를 선택하라면 저라면 lme4:lmer을 더 믿을듯합니다.
아직 SAS로는 못돌려봤습니다. 내일쯤 회사 컴으로 해봐야겠습니다. 그런데 random effect를 무시한 lm(y~x)에서 나온 intercept와 slope가 nlme:lme하고 비슷한걸 보면 lme4:lmer에 문제가 있는듯합니다. standard deviation들의 값들이 무지 작은걸보면 추정과정에서 iteration하다가 삼천포로 빠진듯합니다.
SAS는 nlme:lme에 가까운 값이 나오는데 intercept=4.1761, slope=-0.1886이고 variance estimates도 좀 차이가 있습니다. iteration으로 해를 구하는데 데이터 상태가 별로 안좋은듯합니다.