Split-Plot ANOVA: R'de model karşılaştırma testleri


12

R'deki Xve Margümanlarıyla kullanım için uygun model karşılaştırmaları kullanarak Split-Plot ANOVA'daki efektleri nasıl test edebilirim anova.mlm()? Bildiğim kadar ?anova.mlmve Dalgaard (2007) [1]. Ne yazık ki sadece Split-Plot Tasarımları fırçalar. Bunu iki denek faktörü ile tamamen rastgele bir tasarımda yapmak:

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 ...

Aşağıdaki model karşılaştırmaları aynı sonuçlara yol açar. Kısıtlı model söz konusu efekti içermez, ancak aynı sıradaki veya daha düşük tüm diğer efektleri, tam model söz konusu efekti ekler.

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

İçinde bir, denekler arasında bir faktör olan Split-Splot tasarımı:

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 ...

Bunlar anova()testleri çoğaltma komutları, ama neden çalıştıklarını bilmiyorum. Aşağıdaki model karşılaştırmalarının testleri neden aynı sonuçlara yol açıyor?

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

İki özne içi faktör ve bir özne arasındaki faktör:

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

Yukarıda verilen sonuçları, Xve Margümanlarıyla kullanım için karşılık gelen model karşılaştırmalarıyla nasıl çoğaltırım anova.mlm()? Bu model karşılaştırmaların ardındaki mantık nedir?

EDIT: suncoolsu, tüm pratik amaçlar için, bu tasarımlardan elde edilen verilerin karışık modeller kullanılarak analiz edilmesi gerektiğine dikkat çekti. Ancak, ben yine de sonuçlarını çoğaltmak için nasıl anlamak istiyoruz summary(Anova())ile anova.mlm(..., X=?, M=?).

[1]: Dalgaard, P. 2007. Çok Değişkenli Analizde Yeni Fonksiyonlar. R News, 7 (2), 2-7.


Hey @caracal, Sanırım "Split-Plot Design" ı kullanma şekliniz Casella gibi değil, George bunu İstatistiksel Tasarım kitabında tanımlar. Split Plot kesinlikle yuvalamadan bahseder, ancak korelasyon yapısını dayatmanın özel bir yoludur. Ve çoğu zaman lme4modele uyması için paketi kullanacaksınız ve DEĞİL lm. Ancak bu çok özel bir kitap temelli görüş olabilir. Başkalarının yorum yapmasına izin vereceğim. Sizinkinden farklı olarak nasıl yorumladığımı temel alarak bir örnek verebilirim.
suncoolsu

2
@suncoolsu Sosyal bilimlerdeki terminoloji farklı olabilir, ancak hem Kirk (1995, p512) hem de Maxwell & Delaney (2004, p592), faktörler arasında bir ve bir faktör içeren "bölünmüş arsa" olan modelleri çağırır. Faktörler arası "araziler" (tarımsal kökene benzer) sağlar.
caracal

Şu anda tabağımda çok şey var. Sorunuza daha spesifik olacak şekilde cevabımı genişleteceğim. Sorunuzu çerçevelemek için çok çaba harcadığınızı görüyorum. Bunun için teşekkürler.
suncoolsu

Yanıtlar:


10

XVe Mtemelde sadece içinde-öznenin etkileri açısından, karşılaştırmak istediğiniz iki model belirtin; o zaman arasında değiştiği içinde-konu etkilerle (kesişim noktası dahil olmak üzere) arasında-konu etkilerinin etkileşim için sonuçları göstermektedir Xve M.

Sizin örnekler üzerinde fitBbiz varsayılan eklerseniz daha kolay anlamak Xve M:

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

İlk model, özne etkilerinden yoksun (hepsi aynı ortalamaya sahiptir) her biri için farklı bir ortalamaya değişikliktir, bu nedenle idrastgele etkiyi ekledik , bu da genel kesimi ve özne etkisi arasındaki toplamı test etmek için doğru olan şey üzerinde.

İkinci model id:IVw1, test edilecek doğru şey IVw1ve IVw1:IVbterimlere karşı olan etkileşimi reklamlar . Konu içinde sadece bir tane (üç seviyeli) etki diag(3)olduğu için ikinci modeldeki varsayılan değer bunu açıklayacaktır; koşmaya eşdeğer olurdu

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

Senin için fitC, bu komutların Anovaözeti yeniden oluşturacağına inanıyorum .

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

Şimdi, keşfettiğiniz gibi, bu komutlar gerçekten zor. Neyse ki, artık onları kullanmak için fazla bir neden yok. Küresellik kazanmaya istekli iseniz, sadece kullanmanız aovveya daha da kolay bir sözdizimi lmiçin doğru F testlerini kendiniz kullanmanız ve hesaplamanız gerekir. Küresellik varsaymak lmeistemiyorsanız, GG ve HF düzeltmelerinden çok daha fazla esneklik elde ettiğiniz için kullanmak gerçekten yoludur.

Örneğin, burada aovve lmşunlara ait kod fitA. Öncelikle verilerin uzun formatta olması gerekir; İşte bunu yapmanın bir yolu:

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)

Ve işte lm andaov` kodu:

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

Çok teşekkür ederim, tam da aradığım şey bu! Burada açıklanan anova()sorun nedeniyle hala ilgileniyordum . Ancak son öneriniz de işe yarıyor ve daha basit. (Minor şey: Bence son 2 satırın her biri 1 kapanış parantezi eksik ve okumalı )Anova()Error(id/(IVw1*IVw2))
caracal

8

Bölünmüş arsa tasarımları tarımdan kaynaklanmıştır, dolayısıyla adı. Ancak sık sık ortaya çıkarlar ve söyleyebilirim - klinik çalışmaların çoğunun beyni. Ana arsa bir faktör seviyesi ile tedavi edilirken, diğer bazı faktörlerin seviyelerinin alt grafiklerle değişmesine izin verilir. Tasarım, tam bir randomizasyon üzerindeki kısıtlamaların bir sonucu olarak ortaya çıkar. Örneğin: bir alan dört alt alana bölünebilir. Alt arazilerde farklı çeşitler dikmek mümkün olabilir, ancak tüm alan için sadece bir tip sulama kullanılabilir. Bölmeler ve bloklar arasındaki ayrım değil. Bloklar, deney tasarımında yararlanma seçeneğine sahip olduğumuz deney birimlerinin özellikleridir, çünkü orada olduklarını biliyoruz. Bölmeler ise, hangi faktör atamalarının mümkün olduğuna kısıtlama getirmektedir. Tam bir randomizasyonu önleyen tasarım üzerine gereksinimler uygularlar.

Bir faktörün değişmesi kolayken, başka bir faktörün değişmesi çok daha fazla zaman aldığı klinik çalışmalarda çok kullanılırlar. Deneyci değişmesi zor faktörün her seviyesi için tüm çalışmaları ardışık olarak yapmak zorundaysa, bölünmüş bir komplo tasarımı tüm komplo faktörünü temsil eden değişmesi zor faktörle sonuçlanır.

İşte bir örnek: Bir tarım alanı denemesinde amaç, iki bitki çeşidinin ve dört farklı sulama yönteminin etkilerini belirlemekti. Sekiz tarla mevcuttu, ancak her tarlaya sadece bir tip sulama uygulanabilir. Alanlar, her kısımda farklı çeşitlilik gösteren iki kısma ayrılabilir. Tüm arsa faktörü, tarlalara rastgele atanması gereken sulamadır. Her alanda çeşitlilik atanır.

Bunu şu şekilde yaparsınız 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

Temel olarak, bu modelin söylediği gibi, sulama ve çeşit sabit etkilerdir ve çeşitlilik sulama içinde iç içe geçer. Alanlar rastgele etkilerdir ve resimsel olarak

I_1 | I_2 | I_3 | I_4

V_1 V_2 | V_1 V_2 | V_1 V_2 | V_1 V_2

Ancak bu, sabit tüm arsa etkisi ve alt arsa etkisi olan özel bir varyanttı. Bir veya daha fazlasının rastgele olduğu varyantlar olabilir. Split-split .. arsa tasarımları gibi daha karmaşık tasarımlar olabilir. Temel olarak, vahşi ve çılgınca gidebilirsiniz . Ancak altta yatan yapı ve dağılım (yani sabit veya rasgele, iç içe veya çapraz, ...) açıkça anlaşıldığında, lmer-Ninjamodellemede herhangi bir sıkıntı yaşanmayacaktır. Yorum bir karmaşa olacaktır.

Karşılaştırmalar ile ilgili olarak, sen söylüyorlar lmer1ve lmer2:

anova(lmer1, lmer2)

parametrelerin farkına eşit serbestlik derecelerine sahip ki-sq test istatistiğine dayanan uygun testi verecektir .

cf: Faraway, J., Doğrusal Modellerin R ile Genişletilmesi.

Casella, G., İstatistiksel Tasarım


Split-splot tasarımlarını karışık efekt modelleri ve daha fazla arka plan bilgisi ile analiz etme girişini takdir ediyorum! Analizin gerçekleştirilmesi kesinlikle tercih edilen yoldur. Sorumu, bunun "eski yol" un nasıl yapılacağını bilmek istediğimi vurgulamak için güncelledim.
caracal
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.