2 개의 개체-내 요인에 대해 R에서 lme / lmer로 반복 측정 ANOVA 어려움을 겪고

반복 측정 ANOVA에 대한 결과를 복제하기 lme위해 nlme패키지 를 사용하려고합니다 aov. 단일 요인 반복 측정 실험과 대상 간 요인 하나와 대상 내 요인 하나를 사용하는 2 요인 실험에 대해이 작업을 수행했지만 2 요인 실험을 수행하는 데 어려움을 겪고 있습니다. -인자를 고려한다.

아래에 예가 나와 있습니다. AB고정 효과 계수이고 subject랜덤 영향 인자이다.

set.seed(1)
d <- data.frame(
    Y = rnorm(48),
    subject = factor(rep(1:12, 4)),
    A = factor(rep(1:2, each=24)),
    B = factor(rep(rep(1:2, each=12), 2)))

summary(aov(Y ~ A*B + Error(subject/(A*B)), data=d))  # Standard repeated measures ANOVA

library(nlme)
# Attempts:
anova(lme(Y ~ A*B, data=d, random = ~ 1 | subject))  # not same as above
anova(lme(Y ~ A*B, data=d, random = ~ 1 | subject/(A+B)))  # gives error

Pinheiro and Bates 책에서 이에 대한 설명을 볼 수 없었지만 간과했을 수도 있습니다.



답변

피팅 aov하는 것을 스트립 플롯이라고 하며 랜덤 효과 와 랜덤 효과가 교차 lme되기 때문에 맞추기가 까다 롭습니다 .subject:Asubject:B

첫 번째 시도는와 동일하며 aov(Y ~ A*B + Error(subject), data=d)모든 무작위 효과를 포함하지는 않습니다. 두 번째 시도는 옳은 생각이지만 lme을 사용한 교차 임의 효과의 구문은 매우 까다 롭습니다.

사용 lme으로부터 nlme패키지하는 코드는 것

lme(Y ~ A*B, random=list(subject=pdBlocked(list(~1, pdIdent(~A-1), pdIdent(~B-1)))), data=d)

사용 lmer으로부터 lme4패키지, 코드 같은 것

lmer(Y ~ A*B + (1|subject) + (1|A:subject) + (1|B:subject), data=d)    

R-help의 스레드는 도움이 될 수 있습니다 (그리고 nlme코드를 얻은 곳 ).

http://www.biostat.wustl.edu/archives/html/s-news/2005-01/msg00091.html

http://permalink.gmane.org/gmane.comp.lang.r.lme4.devel/3328

http://www.mail-archive.com/r-help@stat.math.ethz.ch/msg10843.html

이 마지막 링크는 Pinheiro / Bates의 p.165; 도움이 될 수도 있습니다.

편집 : 또한 데이터 세트에서 일부 분산 성분이 음수이므로 lme에 임의 효과를 사용할 수 없으므로 결과가 다릅니다. 모든 양의 분산 성분이있는 데이터 세트는 8의 시드를 사용하여 만들 수 있습니다. 결과는 동의합니다. 자세한 내용은 이 답변 을 참조하십시오.

또한주의 lme에서 nlme올바르게 자유의 분모도를 계산하지 않는 F-통계의 p 값을 동의하지만, 그래서,과 lmer에서는 lme4이 불균형 교차 임의 효과의 존재에 매우 까다로운 때문에 너무하지,하지 않을 수 않습니다 심지어 현명한 일을해야합니다. 그러나 그것은 내가 여기에 들어가고 싶은 것 이상입니다.


답변

당신이하려는 모든 것이 첫 번째 시도가 정답입니다. nlme ()는 컴포넌트 사이와 컴포넌트 내에서 작동하므로 따로 지정할 필요가 없습니다.

당신이 겪고있는 문제는 모델을 지정하는 방법을 모르기 때문에가 아닙니다. 반복 측정 ANOVA와 혼합 효과가 동일하지 않기 때문입니다. 때때로 ANOVA와 혼합 효과 모델의 결과가 일치합니다. 이는 분산 분석에서와 같이 데이터를 집계하고이 둘을 모두 계산할 때 특히 그렇습니다. 그러나 일반적으로 올바르게 수행하면 결론은 비슷하지만 결과는 거의 동일하지 않습니다. 예제 데이터는 S 내에서 각 측정 값을 자주 복제하는 실제 반복 측정 값과 다릅니다. 분산 분석을 수행 할 때 일반적으로 각 복제에 대해 집계하여 각 주제에 대한 영향을 추정합니다. 혼합 효과 모델링에서는 그런 일이 없습니다. 원시 데이터로 작업합니다. 그렇게하면

[제외 적으로, lme () 대신 lmer () (lme4 패키지에서)를 사용하면 예제의 효과에 대한 ANOVA와 정확히 일치하는 SS 및 MS 값을 얻을 수 있습니다.


답변