Genel olarak Ben'in analizine katılıyorum ama birkaç açıklama ve biraz sezgi eklememe izin verin.
İlk olarak, genel sonuçlar:
- lmerTatterthwaite yöntemini kullanarak test sonuçları doğrudur
- Kenward-Roger yöntemi de doğru ve Satterthwaite ile aynı fikirde
Ben hangi tasarımını özetliyor subnum
iç içe group
iken direction
ve group:direction
birlikte kesilmişlerdir subnum
. Doğal hata terimi (örneğin sözde "kapatma hata tabaka") olup bu araçlar group
olduğunu subnum
(diğer şartları için kapatma hata tabaka ise subnum
) kalıntilarıdır.
Bu yapı, faktör-yapı diyagramı olarak adlandırılabilir:
names <- c(expression("[I]"[5169]^{5191}),
expression("[subnum]"[18]^{20}), expression(grp:dir[1]^{4}),
expression(dir[1]^{2}), expression(grp[1]^{2}), expression(0[1]^{1}))
x <- c(2, 4, 4, 6, 6, 8)
y <- c(5, 7, 5, 3, 7, 5)
plot(NA, NA, xlim=c(2, 8), ylim=c(2, 8), type="n", axes=F, xlab="", ylab="")
text(x, y, names) # Add text according to ’names’ vector
# Define coordinates for start (x0, y0) and end (x1, y1) of arrows:
x0 <- c(1.8, 1.8, 4.2, 4.2, 4.2, 6, 6) + .5
y0 <- c(5, 5, 7, 5, 5, 3, 7)
x1 <- c(2.7, 2.7, 5, 5, 5, 7.2, 7.2) + .5
y1 <- c(5, 7, 7, 3, 7, 5, 5)
arrows(x0, y0, x1, y1, length=0.1)
Burada rastgele terimler parantez içine alınır 0
, genel ortalamayı (veya kesişmeyi) [I]
temsil eder, hata terimini temsil eder, süper komut dosyası sayıları düzey sayısı ve alt komut dosyası sayıları dengeli bir tasarım varsayıldığında serbestlik derecesi sayısıdır. Diyagram doğal hata terimi (hata stratum kapatma) gösterir group
olduğu subnum
ve için pay df bu subnum
payda df eşittir group
18'dir: 20 eksi 1 df group
ve genel ortalama 1 df. Faktör yapısı şemalarına daha kapsamlı bir giriş için bölüm 2'ye bakınız: https://02429.compute.dtu.dk/eBook .
Veriler tam olarak dengelenmiş olsaydı, F-testlerini, bir SSQ ayrışmasından sağlayabildiğimiz gibi yapabiliriz anova.lm
. Veri seti çok yakından dengelendiği için yaklaşık F testleri aşağıdaki gibi elde edilebilir:
ANT.2 <- subset(ANT, !error)
set.seed(101)
baseline.shift <- rnorm(length(unique(ANT.2$subnum)), 0, 50)
ANT.2$rt <- ANT.2$rt + baseline.shift[as.numeric(ANT.2$subnum)]
fm <- lm(rt ~ group * direction + subnum, data=ANT.2)
(an <- anova(fm))
Analysis of Variance Table
Response: rt
Df Sum Sq Mean Sq F value Pr(>F)
group 1 994365 994365 200.5461 <2e-16 ***
direction 1 1568 1568 0.3163 0.5739
subnum 18 7576606 420923 84.8927 <2e-16 ***
group:direction 1 11561 11561 2.3316 0.1268
Residuals 5169 25629383 4958
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Burada tüm F ve p değerleri, tüm terimlerin artık hatalarını çevreleyen hata tabakaları olarak kabul ettiği ve bu 'grup' dışındaki herkes için geçerli olduğu varsayılarak hesaplanır. Bunun yerine grup için 'dengeli-doğru' F- testi:
F_group <- an["group", "Mean Sq"] / an["subnum", "Mean Sq"]
c(Fvalue=F_group, pvalue=pf(F_group, 1, 18, lower.tail = FALSE))
Fvalue pvalue
2.3623466 0.1416875
nerede kullanacağımız subnum
yerine MS Residuals
MS F -değeri payda.
Bu değerlerin Satterthwaite sonuçlarıyla oldukça iyi uyduğunu unutmayın:
model <- lmer(rt ~ group * direction + (1 | subnum), data = ANT.2)
anova(model, type=1)
Type I Analysis of Variance Table with Satterthwaite's method
Sum Sq Mean Sq NumDF DenDF F value Pr(>F)
group 12065.3 12065.3 1 18 2.4334 0.1362
direction 1951.8 1951.8 1 5169 0.3936 0.5304
group:direction 11552.2 11552.2 1 5169 2.3299 0.1270
Kalan farklar verinin tam olarak dengelenmemesinden kaynaklanmaktadır.
OP karşılaştırır anova.lm
ile anova.lmerModLmerTest
Tamam, ama biz aynı tezat kullanmak zorunda gibi olduğu gibi karşılaştırmak için hangi. Bu durumda arasında bir fark yoktur anova.lm
ve anova.lmerModLmerTest
onlar sırasıyla varsayılan olarak Tip I ve III testleri üretmek ve bu veri kümesi için Tip I ve III tezat arasında (küçük) bir fark vardır çünkü:
show_tests(anova(model, type=1))$group
(Intercept) groupTreatment directionright groupTreatment:directionright
groupTreatment 0 1 0.005202759 0.5013477
show_tests(anova(model, type=3))$group # type=3 is default
(Intercept) groupTreatment directionright groupTreatment:directionright
groupTreatment 0 1 0 0.5
Veri seti tamamen dengelenmiş olsaydı, tip I kontrastlar tip III kontrastlarla aynı olurdu (gözlemlenen örnek sayısından etkilenmez).
Son bir açıklama, Kenward-Roger yönteminin 'yavaşlığının' modelin yeniden takılmasına bağlı olmadığı, ancak gözlemlerin / artıkların marjinal varyans-kovaryans matrisiyle (bu durumda 5191x5191) hesaplamaları içerdiği yönündedir. Satterthwaite yöntemi için durum.
İlgili model2
MODEL2 gelince durum daha karmaşık hale gelir ve bunu ben 'klasik' etkileşimi arasındaki dahil ettik başka model ile tartışma başlatmak için daha kolay olduğunu düşünüyorum subnum
ve direction
:
model3 <- lmer(rt ~ group * direction + (1 | subnum) +
(1 | subnum:direction), data = ANT.2)
VarCorr(model3)
Groups Name Std.Dev.
subnum:direction (Intercept) 1.7008e-06
subnum (Intercept) 4.0100e+01
Residual 7.0415e+01
Etkileşim ile ilişkili varyans esasen sıfır olduğundan ( subnum
rastgele ana etkinin varlığında ) etkileşim teriminin payda serbestlik dereceleri, F -değerleri ve p - değerlerinin hesaplanması üzerinde bir etkisi yoktur :
anova(model3, type=1)
Type I Analysis of Variance Table with Satterthwaite's method
Sum Sq Mean Sq NumDF DenDF F value Pr(>F)
group 12065.3 12065.3 1 18 2.4334 0.1362
direction 1951.8 1951.8 1 5169 0.3936 0.5304
group:direction 11552.2 11552.2 1 5169 2.3299 0.1270
Bununla birlikte, subnum:direction
ilgili hata katmanı , ilgili tüm SSQ'ları subnum
kaldırırsaksubnum
subnum:direction
model4 <- lmer(rt ~ group * direction +
(1 | subnum:direction), data = ANT.2)
Şimdi doğal hata terimi group
, direction
ve group:direction
olduğu
subnum:direction
ve birlikte nlevels(with(ANT.2, subnum:direction))
= 40 ve dört parametre bu terimler için serbestlik payda dereceleri 36 hakkında olmalıdır:
anova(model4, type=1)
Type I Analysis of Variance Table with Satterthwaite's method
Sum Sq Mean Sq NumDF DenDF F value Pr(>F)
group 24004.5 24004.5 1 35.994 4.8325 0.03444 *
direction 50.6 50.6 1 35.994 0.0102 0.92020
group:direction 273.4 273.4 1 35.994 0.0551 0.81583
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Bu F- testleri 'dengeli-doğru' F- testleri ile de yaklaştırılabilir:
an4 <- anova(lm(rt ~ group*direction + subnum:direction, data=ANT.2))
an4[1:3, "F value"] <- an4[1:3, "Mean Sq"] / an4[4, "Mean Sq"]
an4[1:3, "Pr(>F)"] <- pf(an4[1:3, "F value"], 1, 36, lower.tail = FALSE)
an4
Analysis of Variance Table
Response: rt
Df Sum Sq Mean Sq F value Pr(>F)
group 1 994365 994365 4.6976 0.0369 *
direction 1 1568 1568 0.0074 0.9319
group:direction 1 10795 10795 0.0510 0.8226
direction:subnum 36 7620271 211674 42.6137 <2e-16 ***
Residuals 5151 25586484 4967
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
şimdi model2'ye dönüyor:
model2 <- lmer(rt ~ group * direction + (direction | subnum), data = ANT.2)
Bu model, 2x2 varyans-kovaryans matrisi ile oldukça karmaşık rasgele etkili bir kovaryans yapısını tarif eder. Varsayılan parametrelendirmeyle başa çıkmak kolay değildir ve modelin yeniden parametrelendirilmesiyle daha iyidir:
model2 <- lmer(rt ~ group * direction + (0 + direction | subnum), data = ANT.2)
Biz karşılaştırırsanız model2
için model4
, bunlar eşit sayıda rastgele etkileri vardır; Her biri için 2 subnum
, yani toplamda 2 * 20 = 40. Da model4
öngörür 40 rastgele etkilerin tek varyans parametresi, model2
her şart koşmaktadır subnum
rastlantısal etkilerin çiftini içermeli parametreleri tarafından verilmektedir varyans-kovaryans matrisi, bir 2x2 bir çift değişkenli normal bir dağıtım
VarCorr(model2)
Groups Name Std.Dev. Corr
subnum directionleft 38.880
directionright 41.324 1.000
Residual 70.405
Bu aşırı uyumu gösterir, ancak bunu başka bir gün için saklayalım. Önemli olan nokta burada olmasıdır model4
özel bir durum olduğunu model2
ve bu model
olduğunu da özel bir durumudur model2
. Gevşek (ve sezgisel) konuşma (direction | subnum)
, ana etkinin subnum
yanı sıra etkileşimle ilişkili varyasyonu içerir veya yakalar direction:subnum
. Rastgele etkiler açısından, bu iki etki veya yapıyı sırasıyla satırlar ve satırlar arasındaki farklılıkları yakalamak olarak düşünebiliriz:
head(ranef(model2)$subnum)
directionleft directionright
1 -25.453576 -27.053697
2 16.446105 17.479977
3 -47.828568 -50.835277
4 -1.980433 -2.104932
5 5.647213 6.002221
6 41.493591 44.102056
Bu durumda, bu rastgele etki tahminlerinin yanı sıra varyans parametresi tahminlerinin her ikisi de, burada sadece rastgele bir ana etkiye subnum
(satırlar arasındaki varyasyon) sahip olduğumuzu gösterir . Tüm bunlar, Satterthwaite paydasının özgürlük derecelerinin
anova(model2, type=1)
Type I Analysis of Variance Table with Satterthwaite's method
Sum Sq Mean Sq NumDF DenDF F value Pr(>F)
group 12059.8 12059.8 1 17.998 2.4329 0.1362
direction 1803.6 1803.6 1 125.135 0.3638 0.5475
group:direction 10616.6 10616.6 1 125.136 2.1418 0.1458
bu ana etki ve etkileşim yapıları arasında bir uzlaşmadır: DenDF grubu 18'de ( subnum
tasarım ile iç içe) kalır, ancak direction
ve
group:direction
DenDF 36 ( model4
) ile 5169 ( model
) arasında uzlaşır .
Burada hiçbir şeyin Satterthwaite yaklaşımının (veya lmerTest'te uygulanmasının ) hatalı olduğunu göstermediğini düşünmüyorum .
Kenward-Roger yöntemi ile eşdeğer tablo
anova(model2, type=1, ddf="Ken")
Type I Analysis of Variance Table with Kenward-Roger's method
Sum Sq Mean Sq NumDF DenDF F value Pr(>F)
group 12059.8 12059.8 1 18.000 2.4329 0.1362
direction 1803.2 1803.2 1 17.987 0.3638 0.5539
group:direction 10614.7 10614.7 1 17.987 2.1414 0.1606
KR ve Satterthwaite'in farklı olması şaşırtıcı değildir, ancak tüm pratik amaçlar için p -değerlerindeki fark çok azdır. Yukarıda Benim analizi gösterir DenDF
için direction
ve group:direction
~ 36 daha küçük ve temelde sadece rastgele ana etkiye sahip olduğu göz önüne alındığında daha büyük olasılıkla daha büyük olmamalı direction
, şu şey eğer öyleyse bu KR yöntemi alır bir gösterge olduğunu düşünüyorum DenDF
çok düşük bu durumda. Ancak, verilerin (group | direction)
yapıyı gerçekten desteklemediğini unutmayın, bu nedenle karşılaştırma biraz yapaydır - modelin gerçekten desteklenmesi daha ilginç olacaktır.
ezAnova
Aslında verileriniz 2x2x2 tasarımından geliyorsa, 2x2 anova'yı çalıştırmamanız gerektiğinden uyarıyı anlıyorum .