안녕하세요. 안재형 박사님 책으로 R에 입문하여 R로 통계를 돌리고 있는 연구자입니다.
제가 진행한 연구를 분석하다 많은 책을 찾아보아도 알 수 없는 점이 있어 이렇게 질문 드립니다.
제가 진행한 연구는 2개 group(control과 intervention)에 대해 outcome을 시간에 따라 반복측정한 자료이고, missing data도 일부 있습니다.
missing data를 포함한 repeated measure data여서, linear mixed model을 적용하려고 해서, 관련 내용을 공부 중인데요.
제가 사용한 패키지는 lme4:lmer이고 수식은 다음과 같습니다.
lmer(Outcome ~ Group+Time+Group*Time+(1|subject), data = df_stat_long)
몇가지 질문사항이 있는데 우리 까페 밖에 물어볼 곳이 없어 이렇게 질문드립니다.
1. missing data를 위한 option
lmer documentation을 보면, na.action의 default가 na.oimt인 것 같은데요.
https://www.rdocumentation.org/packages/lme4/versions/1.1-27.1/topics/lmer
설명을 보니
na.action: a function that indicates what should happen when the data contain NAs. The default action (na.omit, inherited from the 'factory fresh' value of getOption("na.action")) strips any observations with any missing values in any variables.
인데, na.omit은 missing data가 있는 행 자체를 날려버리는 것 같은데요.
이렇게 해도 되는지가 의문입니다.
missing data가 있는 경우 lmer(Outcome ~ Group+Time+Group*Time+(1|subject), data = df_stat_long) 이 수식에 추가해줘야 할 옵션이 있을까요?
2. 공분산 구조 설정
그런데 책들을 보니, 자료를 시간에 따라 반복측정한 경우에는 공분산구조를 자기회귀 구조(AR(1))를 많이 가정한다고 하는데요.
lmer은 공분산구조를 따로 지정해 줄 수 없는 것으로 나옵니다.
그럼 이러한 repeated measure data를 LMM 할때는 lmer이 아닌 lme를 사용해야 할까요?
예전 안재형 선생님 댓글을 보니 nlme:lme는 옛날에 나온 패키지고 업데이트도 되고 있지 않아 lme4:lmer을 더 추천하신다고 본 적이 있어 고민이 됩니다.
3. 사후 분석
lmm이후 사후 분석은 더더욱 내용을 찾아보기가 힘들어서, 어찌어찌 구글링을 통해 다음과 같이 분석하고 있는데요.
제가 구하고자 하는 것은
각 시간별, 각 group 별 outcome의 estimated mean with C.I.와
각 시간별 outcome의 group간 estimated difference with C.I.입니다.
즉, 다음과 같은 표를 만들고자 합니다.
이를 위해
LME=lmer(Outcome ~ Group+Time+Group*Time+(1|subject), data = df_stat_long)
emm=emmeans(LME, ~Group+Time+Group*Time)
emm # 각 시간별, 각 group 별 outcome의 estimated mean with C.I. 출력됨.
pairs(emm, simple="Group") : # 각 시간별 outcome의 group간 estimated difference with C.I.의 P-value
confint(pairs(emm, simple="Group")) # 각 시간별 outcome의 group간 estimated difference with C.I 출력됨
구글링을 통해 찾은 내용으로 이와같이 분석하고 있는데요.
journal에 submission하려면 큰 흠은 없는 통계분석이야 할 것 같은데, 사실 위의 코딩의 수학적이나 통계적인 지식 없이 구글링을 통해 하고 있는 것이라, 이렇게만 하면 되는 것인지 확신이 없어 까페에 조언을 구해봅니다.
혹시 제가 위에 기술한 수식에 추가해야할 옵션 등이 있을까요?
사실 제가 이 통계분석에 배경에 깔린 통계적, 수학적 내용을 이해하기는 거의 불가능할 것 같고,
임상의사 수준에서 논문 출간에 문제가 없을 정도로 통계를 돌릴 수만 있었으면 하는 바람인데...제게는 너무 고수준의 통계인지라 그마저도 어렵네요ㅠㅠ 도움을 구할 곳이 이곳 까페 밖에 없어 도움을 구해봅니다.
R로 연구를 진행하는데 있어서 항상 까페의 많은 도움을 받고 있습니다.
도움에 항상 감사드리고 행복한 일들만 가득하시길 바랍니다.^^
댓글
댓글 리스트-
작성자안재형 작성시간 21.07.24 1. missing이 있는 record를 다 날리는 수밖에 없습니다. 그걸 추정해 넣는 imputation 분야가 있는데 채워넣어봐야 별 차이도 없더군요.
2. random부분을 넣으면 random에 있는 term들로 covariance structure가 생깁니다. ar(1), unstructured같은거 넣어주는건 임의로 지정해주는건데 딱히 이론적으로 정당화하기 힘들고 lmer에서는 지원안할겁니다.
3. lsmeans 패키지가 있을텐데요. -
답댓글 작성자김찬식 작성자 본인 여부 작성자 작성시간 21.07.24 댓글 감사합니다.^^
통계비전공자에게 안재형 박사님의 조언이 큰 도움이 됩니다ㅠㅠ
3.에서 본문에 emmeans 패키지가 lsmeans 패키지의 new version인것 같습니다.
The lsmeans package is being deprecated and further development will take place in its successor, emmeans. Users may use emmeans in almost exactly the same way as lsmeans, but a few function names and internal details are changed.
- crqn에서 lsmeans package설명하는 pdf에서 퍼왔습니다.
emmeans나 lsmeans나 사용법은 비슷하다고 package developer가 이야기하는 것 같은데, 제가 적어놓은 emmeans를 lsmeans라 생각하면, 저렇게 하면 사후분석에 큰 결점은 없을까요?