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 subnumiç içe groupiken direction
ve group:directionbirlikte kesilmişlerdir subnum. Doğal hata terimi (örneğin sözde "kapatma hata tabaka") olup bu araçlar groupolduğ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 groupolduğu subnumve için pay df bu subnumpayda df eşittir group18'dir: 20 eksi 1 df groupve 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 subnumyerine MS ResidualsMS 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.lmile anova.lmerModLmerTestTamam, 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.lmve anova.lmerModLmerTestonlar 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 subnumve 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 ( subnumrastgele 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:directionilgili hata katmanı , ilgili tüm SSQ'ları subnumkaldırırsaksubnumsubnum:direction
model4 <- lmer(rt ~ group * direction +
(1 | subnum:direction), data = ANT.2)
Şimdi doğal hata terimi group, directionve group:directionolduğu
subnum:directionve 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 model2iç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, model2her şart koşmaktadır subnumrastlantı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 modelolduğ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 ( subnumtasarım ile iç içe) kalır, ancak directionve
group:directionDenDF 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 DenDFiçin directionve 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.
ezAnovaAslında verileriniz 2x2x2 tasarımından geliyorsa, 2x2 anova'yı çalıştırmamanız gerektiğinden uyarıyı anlıyorum .