R을 사용하여 개체 간 및 개체 내 대비를 사용하여 4 x 4 혼합 분산 분석을 수행하는 방법은 무엇입니까?


11

R의 초보자는 반복 측정 ANOVA로 어려움을 겪고 있습니다.

4 단계 ( '그룹'이라는 단일 변수로 코딩 됨)와 4 단계 (4 개의 개별 변수 'DV1', 'DV2', 'DV3으로 코딩 된 주제 요소)로 구성된 데이터 세트가 있습니다. ','DV4 ').

다음과 같은 목표가 있습니다.

  1. 전체 반복 측정 ANOVA를 실행하십시오.
  2. SPSS의 LMATRIX 명령에서와 같이 사용자 정의 대비를 사용하여 그룹을 비교하십시오.
  3. SPSS의 MMATRIX 명령에서와 같이 사용자 정의 대비를 사용하여 여러 레벨의 DV를 비교하십시오.
  4. 2)와 3)의 조합을 동시에 수행하여 특정 수준의 개체 내 요인에서 특정 그룹 만 비교합니다.
  5. 합계가 0이 아닌 대비 세트를 실행하십시오.

SPSS에서 많은 문제 없이이 작업을 수행 할 수 있다는 것을 알고 있지만 R 에서이 작업을 수행하는 방법에 대한 명확한 아이디어를 얻을 수는 없습니다.이 부분이 다른 패키지에서 어떻게 작동하는지 보았습니다. 이것이 R의 하나의 절차 또는 일련의 관련 절차 내에서 어떻게 작동 하는지를 보았습니다.

답변:


18

한 솔루션의 스케치 (다른 솔루션은 아래 참조) :

  1. 데이터는 SPSS (즉, 행당 하나의 주제)와 같이 와이드 형식이 아닌 긴 형식 (즉, 행당 값)이어야합니다 (개별 패키지 참조) 또는 ?reshape. 주체 식별자 (즉, 주체 ID)를 나타내는 변수가 필요하다는 것도 포함한다.
  2. 주제 식별자를 포함한 모든 요소는 클래스 요소 여야합니다 ( str이를 확인하려면 데이터 프레임에서 실행 ). 이 작업을 수행하지 않으면 결과가 잘못됩니다.
  3. III 형 제곱합을 얻으려면 코딩에 영향을주는 기본 대비를 설정하십시오.
    options(contrasts=c("contr.sum","contr.poly"))
  4. 으로 원하는 모델을 지정 lme로부터 nlme패키지 (설치를 통해 패키지 beforehands을로드 install.packages("nlme")하고 library(nlme))을 compund 대칭 상관 관계 구조를 사용하여. 이 질문에 대한 답변에 대한 답변과 특히 나의 의견을 참조하십시오. 귀하의 경우에는 다음과 같을 수 있습니다 (샘플 데이터를 제공했을 경우 강력히 권장되는 경우 올바른 코드를 받았을 것입니다).
    my.anova <- lme(dv ~ group*within, data = your.df, random = ~1|id, correlation = corCompSymm(form = ~1|id))
  5. 일반 anova함수를 사용하여 anova 테이블을 얻습니다 (참조 ?anova.lme).
    anova(my.anova)
    III 형 제곱합을 얻으려면 anova인수를 typeset로 설정 하여 명령을 사용하십시오 "marginal"(대비가 효과 코딩으로 설정된 경우에만 작동합니다 (포인트 3 참조)).
    anova(my.anova, type = "marginal")
  6. 장착 된 유형의 객체는 lme이제 다양한 기능으로 대비를 수행 할 수 있습니다. 가장 유연한 솔루션 (그러나 다소 불편한 솔루션)은 L호출에 대한 인수입니다 anova.lme(다시 참조 ?anova.lme).
    다른 솔루션들도 lme인수로서 적합 화 된 객체를 필요 로한다 :
    또한 gmodels 패키지 의 estimable기능 이 매우 유연하다 . 이 패키지는 기능 도 제공합니다 . multcomp의 패키지는 사용 (하지만 당신은 당신의 요인 중 하나를 사용하여 대조를 수행 할 수 있습니다) 알파 - 오류 조정을 사용하여 대조를 할 수 있습니다 기능. 새롭고 유망한 접근 방식은 대비 패키지이지만 지금까지 가능한 모든 대비를 보장하지는 않습니다.fit.contrasts
    glht

대안적인 솔루션은의 조합을 통해 표준 ANOVA를 사용하는 것 afexlsmeans에 명시된 afex-vignette .


(+1) 위대하고 매우 유익한 반응. 블로그 게시물을 기다리는 중 ...
chl

?anova.lme나를 위해 작동하지 않으며 methods(anova)보이지 않는 기능으로 나열합니다.
John

@John nlme이전에 로드 했습니까 ? 그렇지 않으면을 실행 library(nlme)하면 작동합니다. 그래도 작동하지 않으면 install.packages("nlme")먼저
Henrik

아 ... 나는 분명히 lme4가 아니었다
John

@ Henrick, 나는 5 단계로 올라갈 수 있지만 특정 개체 내 요인 수준에서 특정 개체 간 요인을 비교하는 대비를 설정할 수 없습니다. 내가 본 모든 온라인 문서는 다른 수준의 개체 간 요소에서 차이를 테스트하는 것과 관련이 있습니다. 예제 코드가 있습니까? 블로그 게시물을 다룰 때까지 기다릴 수 있습니다.
aquadhere
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.