종단 데이터 셋을 분석 할 때 aov ()와 lme ()를 사용하는 것의 차이점은 무엇입니까?


14

누구든지 종단 데이터 사용 aov()lme()분석 의 차이점 과이 두 가지 방법의 결과를 해석하는 방법을 구별 할 수 있습니까 ?

다음, 나는 같은 사용하여 데이터 세트 분석 aov()lme()2 개 다른 결과를 얻었다. 를 사용하면 aov()치료 상호 작용으로 시간에 중요한 결과를 얻었지만 선형 혼합 모델을 피팅하면 치료 상호 작용으로 시간이 중요하지 않습니다.

> UOP.kg.aov <- aov(UOP.kg~time*treat+Error(id), raw3.42)
> summary(UOP.kg.aov)

Error: id
          Df  Sum Sq Mean Sq F value Pr(>F)
treat      1   0.142  0.1421  0.0377 0.8471
Residuals 39 147.129  3.7725               

Error: Within
            Df  Sum Sq Mean Sq  F value  Pr(>F)    
time         1 194.087 194.087 534.3542 < 2e-16 ***
time:treat   1   2.077   2.077   5.7197 0.01792 *  
Residuals  162  58.841   0.363                     
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1   1

> UOP.kg.lme <- lme(UOP.kg~time*treat, random=list(id=pdDiag(~time)), 
                    na.action=na.omit, raw3.42)
> summary(UOP.kg.lme)
Linear mixed-effects model fit by REML
 Data: raw3.42 
       AIC      BIC    logLik
  225.7806 248.9037 -105.8903

Random effects:
 Formula: ~time | id
 Structure: Diagonal
        (Intercept)      time  Residual
StdDev:   0.6817425 0.5121545 0.1780466

Fixed effects: UOP.kg ~ time + treat + time:treat 
                 Value Std.Error  DF   t-value p-value
(Intercept)  0.5901420 0.1480515 162  3.986059  0.0001
time         0.8623864 0.1104533 162  7.807701  0.0000
treat       -0.2144487 0.2174843  39 -0.986042  0.3302
time:treat   0.1979578 0.1622534 162  1.220053  0.2242
 Correlation: 
           (Intr) time   treat 
time       -0.023              
treat      -0.681  0.016       
time:treat  0.016 -0.681 -0.023

Standardized Within-Group Residuals:
         Min           Q1          Med           Q3          Max 
-3.198315285 -0.384858426  0.002705899  0.404637305  2.049705655 

Number of Observations: 205
Number of Groups: 41 

답변:


19

설명에 따르면 단일 처리 계수를 가진 반복 측정 모델이있는 것 같습니다. 데이터 세트 ( raw3.42)에 액세스 할 수 없으므로 nlme패키지 의 Orthodont 데이터를 사용하여 여기에서 무슨 일이 일어나고 있는지 설명합니다. 데이터 구조는 동일합니다 (이 경우 남성과 여성의 두 그룹에 대한 반복 측정).

다음 코드를 실행하면

library(nlme)
data(Orthodont)

res <- lme(distance ~ age*Sex, random = ~ 1 | Subject, data = Orthodont)
anova(res)

다음과 같은 결과가 나타납니다.

            numDF denDF  F-value p-value
(Intercept)     1    79 4123.156  <.0001
age             1    79  122.450  <.0001
Sex             1    25    9.292  0.0054
age:Sex         1    79    6.303  0.0141

당신이 실행하는 경우 :

res <- aov(distance ~ age*Sex + Error(Subject), data = Orthodont)
summary(res)

당신은 얻을 것이다 :

Error: Subject
          Df Sum Sq Mean Sq F value   Pr(>F)   
Sex        1 140.46 140.465  9.2921 0.005375 **
Residuals 25 377.91  15.117                    

Error: Within
          Df  Sum Sq Mean Sq  F value  Pr(>F)    
age        1 235.356 235.356 122.4502 < 2e-16 ***
age:Sex    1  12.114  12.114   6.3027 0.01410 *  
Residuals 79 151.842   1.922                     

F- 검정은 정확히 동일합니다.

를 들어 lme(), 당신이 사용 list(id=pdDiag(~time))뿐만 아니라 모델에 임의의 절편뿐만 아니라 임의의 기울기를 추가한다. 또한을 사용 pdDiag하여 임의 절편과 기울기 사이의 상관 관계를 0으로 설정합니다. 이것은 지정한 모델과 다른 모델 aov()이므로 다른 결과를 얻습니다.


감사합니다 @Wolfgang; 당신의 설명은 많은 도움이됩니다. 내가 가지고있는 후속 질문은 이것입니다. 실제로 단일 처리 계수로 반복 측정 모델을 분석하고 있습니다. 각 피험자는 치료 A 또는 B에 무작위로 배정되었다. 그런 다음 0 분, 15 분, 30 분, 60 분, 120 분 및 180 분에서 측정된다. 내 이해에서 시간은 시간 0에서 180 분의 샘플이기 때문에 임의의 요소가되어야합니다. 그래서 내가해야합니까 : lme (UOP.kg ~ time * treat, random = ~ time | id, raw3.42)?
biostat_newbie 2012

네,하지만 이런 식으로 생각할 것입니다 : 당신은 본질적으로 같은 치료 그룹 내에서 피험자들 사이에 회귀선의 절편과 기울기 (시간에 따라 UOP.kg)가 달라 지도록 (임의로) 허용합니다. 이것이 random = ~ time | id가하는 일입니다. 모델이 알려줄 것은 절편과 기울기의 추정 변동량입니다. 또한, 시간 : 치료 상호 작용 항은 평균 기울기가 A와 B에 대해 다른지 여부를 나타냅니다 .
Wolfgang

감사합니다 @ 울프 강! 내가 사용할 수 Error(Subject/age)내가 말하는 몇 가지 튜토리얼을보고 있기 때문에, /age수단이 그 요인에 따라 측정을 반복? 이것은 당신과 같은가요 Error(Subject)? 불균형 데이터 : 또 다른 질문은 aovlme권리, 다른 결과를 가질 수있다?
breezeintopl

1

난 그냥 당신이 설치하고자하는 수도 추가 할 car패키지와 사용 Anova()이 패키지 대신 제공 anova()을 위해 때문 aov()lm()객체, 바닐라가 anova()에있는 동안 불평등 표본 크기에 대한 잘못된 결과를 제공 사각형의 연속 합계를 사용 lme()은 어느 유형을 사용 type인수 에 따라 -I 또는 제 III 형 제곱합 이지만 제 III 형 제곱합은 한계를 위반합니다. 즉, 주 효과와 다르게 상호 작용을 처리합니다.

R-help리스트는 type-I 및 type-III 제곱합에 대해 말할 수있는 것은 없지만, 이것이 유일한 옵션입니다! 그림을 이동.

편집 : 실제로 중요한 상호 작용 용어가있는 경우 유형 II가 유효하지 않은 것처럼 보이며 상호 작용이있을 때 누구나 III을 사용하는 것이 가장 좋습니다. 나는에 의해 그것을 밀고있어 내 자신의 질문 중 하나에 대답 차례로 저를 지적하는 것이 이 게시물 .


0

매번 각 ID에 대해 여러 측정 값이있는 것 같습니다. 해당 분석에서 부당하게 전력을 증가시키기 때문에 aov에 대해 이들을 집계해야합니다. 나는 집계를 수행하면 결과가 동일하게 될 것이라고 말하지는 않지만 더 비슷하게 만들어야합니다.

dat.agg <- aggregate(UOP.kg ~ time + treat + id, raw3.42, mean)

그런 다음 데이터를 dat.agg로 바꾸기 전에 aov 모델을 실행하십시오.

또한 anova (lme)가 결과를 비교하기 위해하고 싶은 일이라고 생각합니다. 효과의 방향과 크기는 모형 분산 대 오차의 비율과 다릅니다.

(BTW, 집계 데이터에 대해 lme 분석을 수행하지 않아야하며 anova (lme)를 확인하면 aov와 거의 동일한 결과를 얻을 수 있습니다)

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