분할 도표 분산 분석 : R의 모형 비교 테스트


12

R에서 XM인수 와 함께 사용하기에 적합한 모델 비교를 사용하여 Split-Plot ANOVA에서 효과를 테스트하려면 anova.mlm()어떻게해야합니까? 저는 ?anova.mlmDalgaard (2007)에 익숙합니다 [1]. 불행히도 Split-Plot Design 만 브러시합니다. 이를 위해 두 가지 개체-내 요인이있는 완전 무작위 설계에서이를 수행합니다.

N  <- 20  # 20 subjects total
P  <- 3   # levels within-factor 1
Q  <- 3   # levels within-factor 2
DV <- matrix(rnorm(N* P*Q), ncol=P*Q)           # random data in wide format
id <- expand.grid(IVw1=gl(P, 1), IVw2=gl(Q, 1)) # intra-subjects layout of data matrix

library(car)        # for Anova()
fitA <- lm(DV ~ 1)  # between-subjects design: here no between factor
resA <- Anova(fitA, idata=id, idesign=~IVw1*IVw2)
summary(resA, multivariate=FALSE, univariate=TRUE)  # all tests ...

다음 모델 비교는 동일한 결과로 이어집니다. 제한된 모델에는 해당 효과가 포함되지 않지만 같은 순서 이하의 다른 모든 효과는 전체 모델이 해당 효과를 추가합니다.

anova(fitA, idata=id, M=~IVw1 + IVw2, X=~IVw2, test="Spherical") # IVw1
anova(fitA, idata=id, M=~IVw1 + IVw2, X=~IVw1, test="Spherical") # IVw2
anova(fitA, idata=id, M=~IVw1 + IVw2 + IVw1:IVw2,
                      X=~IVw1 + IVw2, test="Spherical")          # IVw1:IVw2

하나의 내부 및 하나의 개체 간 계수를 가진 스플릿 스플릿 설계 :

idB  <- subset(id, IVw2==1, select="IVw1")          # use only first within factor
IVb  <- gl(2, 10, labels=c("A", "B"))               # between-subjects factor
fitB <- lm(DV[ , 1:P] ~ IVb)                        # between-subjects design
resB <- Anova(fitB, idata=idB, idesign=~IVw1)
summary(resB, multivariate=FALSE, univariate=TRUE)  # all tests ...

이것들은 anova()테스트를 복제 하는 명령이지만 왜 작동하는지 모르겠습니다. 다음 모델 비교 테스트에서 동일한 결과가 나타나는 이유는 무엇입니까?

anova(fitB, idata=idB, X=~1, test="Spherical") # IVw1, IVw1:IVb
anova(fitB, idata=idB, M=~1, test="Spherical") # IVb

2 개의 개체-내 요인과 1 개의 개체-간 요인 :

fitC <- lm(DV ~ IVb)  # between-subjects design
resC <- Anova(fitC, idata=id, idesign=~IVw1*IVw2)
summary(resC, multivariate=FALSE, univariate=TRUE)  # all tests ...

XM인수 와 함께 사용하기 위해 해당 모델 비교를 사용하여 위에 제공된 결과를 어떻게 복제 anova.mlm()합니까? 이 모델 비교의 논리는 무엇입니까?

편집 : suncoolsu는 모든 실제 목적을 위해 이러한 설계의 데이터를 혼합 모델을 사용하여 분석해야한다고 지적했습니다. 그러나, 나는 아직 결과를 복제하는 방법을 이해하고 싶습니다 summary(Anova())과를 anova.mlm(..., X=?, M=?).

[1] : Dalgaard, P. 2007. 다변량 분석을위한 새로운 기능. R 뉴스, 7 (2), 2-7.


@caracal, "Split-Plot Design"을 사용하는 방식이 Casella와 같은 방식이 아니라고 생각합니다. George는 그의 저서 인 Statistical Design에서이를 정의했습니다. Split Plot은 중첩에 대해 분명히 이야기하지만 상관 관계 구조를 부과하는 특별한 방법입니다. 그리고 대부분의 경우 lme4패키지를 사용 하여 모델에 맞지 않을 것 lm입니다. 그러나 이것은 매우 구체적인 책 기반 견해 일 수 있습니다. 나는 그것에 대해 다른 사람의 의견을 드리겠습니다. 나는 당신과 다른 해석 방법을 기반으로 예를 줄 수 있습니다.
suncoolsu

2
@suncoolsu 사회 과학에서 사용되는 용어는 다를 수 있지만 Kirk (1995, p512)와 Maxwell & Delaney (2004, p592)는 팩터 간 "분할 플롯 (split-plot)"사이에 하나의 모델을 호출합니다. 요인 간은 "농장"과 유사한 "플로트"를 제공합니다.
caracal

나는 지금 내 접시에 많은 것들을 가지고 있습니다. 귀하의 질문에보다 구체적으로 답변을 확대하겠습니다. 귀하의 질문을 작성하는 데 많은 노력을 기울였습니다. 고마워
suncoolsu

답변:


10

XM기본적으로하지만, 단지 피험자 내 효과의 측면에서, 당신은 비교하려는 두 가지 모델을 지정; 그러므로 사이에서 변경하는 피험자 내 효과 (절편 포함) 사이의 모든 피험자 효과의 상호 작용에 대한 결과를 도시 X하고 M.

귀하의 예에서 fitB우리가 기본값을 추가하면 이해하기 쉽다 XM:

anova(fitB, idata=idB, M=~1, X=~0, test="Spherical") # IVb
anova(fitB, idata=idB, M=diag(3), X=~1, test="Spherical") # IVw1, IVw1:IVb

첫 번째 모델은 피험자 내 효과 없음 (모두 같은 평균을 가짐)에서 다른 평균으로 변경하는 것이므로 id무작위 효과를 추가 했습니다.이 효과는 전체 요격과 피험자 효과 사이의 전체를 테스트하는 것이 옳습니다. 의 위에.

두 번째 모델은 id:IVw1상호 작용을 광고하는데 , 이는 테스트하기에 적합한 용어와 반대 IVw1되는 IVw1:IVb용어입니다. 대상 내 효과 (3 가지 레벨)가 하나뿐이므로 diag(3)두 번째 모델 의 기본값이 이를 설명합니다. 그것은 실행하는 것과 같습니다

anova(fitB, idata=idB, M=~IVw1, X=~1, test="Spherical") # IVw1, IVw1:IVb

귀하의 fitC경우 이러한 명령이 Anova요약 을 다시 작성한다고 생각합니다 .

anova(fitC, idata=id, M=~1, X=~0, test="Spherical") #IVb
anova(fitC, idata=id, M=~IVw1 + IVw2, X=~IVw2, test="Spherical") # IVw1
anova(fitC, idata=id, M=~IVw1 + IVw2, X=~IVw1, test="Spherical") # IVw2
anova(fitC, idata=id, M=~IVw1 + IVw2 + IVw1:IVw2,
                  X=~IVw1 + IVw2, test="Spherical")          # IVw1:IVw2

이제, 당신이 발견 한 것처럼,이 명령들은 정말 까다 롭습니다. 고맙게도 더 이상 사용할 이유가 없습니다. 구 형성을 가정하고 싶다면을 사용 aov하거나 구문을 더 쉽게 사용 lm하려면 올바른 F- 검정을 직접 사용 하고 계산하십시오. 구형을 가정하지 않으 lme려면 GG 및 HF 보정보다 유연성이 훨씬 높아짐에 따라 실제로 사용하는 것이 좋습니다.

예를 들어의 aovlm코드는 다음과 같습니다 fitA. 먼저 긴 형식의 데이터가 필요합니다. 이를 수행하는 한 가지 방법이 있습니다.

library(reshape)
d0 <- data.frame(id=1:nrow(DV), DV)
d0$IVb <- IVb
d0 <- melt(d0, id.vars=c(1,11), measure.vars=2:10)
id0 <- id
id0$variable <- factor(levels(d0$variable), levels=levels(d0$variable))
d <- merge(d0, id0)
d$id <- factor(d$id)

그리고 여기 lm andaov` 코드가 있습니다 :

anova(lm(value ~ IVw1*IVw2*id, data=d))
summary(aov(value ~ IVw1*IVw2 + Error(id/(IVw1*IVw2)), data=d))

정말 고마워요. 바로 내가 찾던 것입니다! 나는 여기anova()Anova()설명 된 문제 때문에 여전히 관심이 있었습니다 . 그러나 마지막 제안은 잘 작동하며 더 간단합니다. (사소한 일 : 마지막 두 줄에 각각 1 개의 괄호가 빠져 있다고 생각하며 읽어야합니다. Error(id/(IVw1*IVw2)))
caracal

8

스플릿 플롯 디자인은 농업에서 시작되었으므로 이름입니다. 그러나 그들은 종종 발생하며 대부분의 임상 시험의 주력 자입니다. 주 그림은 한 요인 수준으로 처리되는 반면 다른 요인의 수준은 하위 그림에 따라 달라질 수 있습니다. 디자인은 완전 무작위 화에 대한 제한의 결과로 발생합니다. 예를 들어, 필드는 4 개의 서브 플롯으로 나 may 수 있습니다. 서브 플롯에 다른 품종을 심는 것이 가능할 수 있지만, 한 분야의 관개 만이 전 분야에 사용될 수 있습니다. 스플릿블록 의 구분이 아님. 블록은 실험 단위의 기능이며 실험 설계에서 활용할 수있는 옵션이 있습니다. 반면에 분할은 가능한 요인 할당에 제한을 부과합니다. 그들은 디자인에 완전한 무작위 화를 막는 요구 사항을 부과합니다.

하나의 요소가 변경되기 쉬운 반면 다른 요소는 변경하는 데 훨씬 많은 시간이 걸리는 임상 시험에서 많이 사용됩니다. 실험자가 변경하기 어려운 요인의 각 수준에 대해 모든 런을 연속적으로 수행해야하는 경우, 분할 플롯 설계는 전체 플롯 요인을 나타내는 변경하기 어려운 요인으로 나타납니다.

예를 들면 다음과 같습니다. 농업 현장 시험에서 목표는 두 가지 농작물 품종과 네 가지 다른 관개 방법의 효과를 결정하는 것이 었습니다. 8 개의 필드를 사용할 수 있지만 각 필드에는 한 가지 유형의 관개 만 적용 할 수 있습니다. 필드는 각 파트마다 다른 다양성으로 두 부분으로 나눌 수 있습니다. 전체 플롯 계수는 관개이며, 임의로 필드에 할당되어야합니다. 각 필드 내에서 다양성이 할당됩니다.

이것이 당신이 이것을하는 방법입니다 R:

install.packages("faraway")
data(irrigation)
summary(irrigation)

library(lme4)

R> (lmer(yield ~ irrigation * variety + (1|field), data = irrigation))
Linear mixed model fit by REML 
Formula: yield ~ irrigation * variety + (1 | field) 
   Data: irrigation 
  AIC  BIC logLik deviance REMLdev
 65.4 73.1  -22.7     68.6    45.4
Random effects:
 Groups   Name        Variance Std.Dev.
 field    (Intercept) 16.20    4.02    
 Residual              2.11    1.45    
Number of obs: 16, groups: field, 8

Fixed effects:
                       Estimate Std. Error t value
(Intercept)               38.50       3.02   12.73
irrigationi2               1.20       4.28    0.28
irrigationi3               0.70       4.28    0.16
irrigationi4               3.50       4.28    0.82
varietyv2                  0.60       1.45    0.41
irrigationi2:varietyv2    -0.40       2.05   -0.19
irrigationi3:varietyv2    -0.20       2.05   -0.10
irrigationi4:varietyv2     1.20       2.05    0.58

Correlation of Fixed Effects:
            (Intr) irrgt2 irrgt3 irrgt4 vrtyv2 irr2:2 irr3:2
irrigation2 -0.707                                          
irrigation3 -0.707  0.500                                   
irrigation4 -0.707  0.500  0.500                            
varietyv2   -0.240  0.170  0.170  0.170                     
irrgtn2:vr2  0.170 -0.240 -0.120 -0.120 -0.707              
irrgtn3:vr2  0.170 -0.120 -0.240 -0.120 -0.707  0.500       
irrgtn4:vr2  0.170 -0.120 -0.120 -0.240 -0.707  0.500  0.500

기본적으로이 모델은 관개 및 다양성은 고정 된 효과이며 다양성은 관개 내에 내포되어 있습니다. 필드는 임의의 효과이며 그림과 같이

I_1 | I_2 | I_3 | I_4

V_1 V_2 | V_1 V_2 | V_1 V_2 | V_1 V_2

But this was a special variant with fixed whole plot effect and subplot effect. There can be variants in which one or more are random. There can be more complicated designs like split-split .. plot designs. Basically, you can go wild and crazy. But given the underlying structure and distribution ( ie fixed or random, nested or crossed, .. ) is clearly understood, a lmer-Ninja will have no troubles in modeling. May be interpretation will be a mess.

Regarding comparisons, say you have lmer1 and lmer2:

anova(lmer1, lmer2)

will give you the appropriate test based on the chi-sq test statistic with degrees of freedom equal to the difference of parameters.

cf: Faraway, J., Extending Linear Models with R.

Casella, G., Statistical Design


I appreciate the intro to analyzing split-splot designs with mixed-effects models and further background info! It certainly is the preferred way to carry out the analysis. I've updated my question to emphasize that I'd still like to know how to do this "the old way".
caracal
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.