Saya biasanya setuju dengan analisis Ben, tetapi izinkan saya menambahkan beberapa komentar dan sedikit intuisi.
Pertama, hasil keseluruhan:
- Hasil lmerTest menggunakan metode Satterthwaite sudah benar
- Metode Kenward-Roger juga benar dan setuju dengan Satterthwaite
Ben menguraikan desain yang subnum
bersarang group
sementara direction
dan group:direction
disilangkan subnum
. Ini berarti bahwa istilah kesalahan alami (yaitu yang disebut "melampirkan kesalahan strata") untuk group
adalah subnum
sedangkan strata kesalahan melampirkan untuk istilah lain (termasuk subnum
) adalah residual.
Struktur ini dapat direpresentasikan dalam diagram struktur-faktor:
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)
Di sini istilah acak terlampir dalam tanda kurung, 0
mewakili keseluruhan rata-rata (atau mencegat), [I]
mewakili istilah kesalahan, angka super-skrip adalah jumlah level dan nomor sub-skrip adalah jumlah derajat kebebasan dengan asumsi desain seimbang. Diagram menunjukkan bahwa istilah kesalahan alami (melampirkan strata kesalahan) untuk group
adalah subnum
dan pembilang df untuk subnum
, yang sama dengan penyebut df untuk group
, adalah 18: 20 dikurangi 1 df untuk group
dan 1 df untuk rata-rata keseluruhan. Pengantar yang lebih komprehensif untuk diagram struktur faktor tersedia di bab 2 di sini: https://02429.compute.dtu.dk/eBook .
Jika data benar-benar seimbang, kami akan dapat membuat uji-F dari dekomposisi SSQ seperti yang disediakan oleh anova.lm
. Karena dataset sangat seimbang, kami dapat memperoleh perkiraan F-tes sebagai berikut:
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
Di sini semua nilai F dan p dihitung dengan asumsi bahwa semua istilah memiliki residual sebagai strata kesalahan terlampirnya, dan itu berlaku untuk semua kecuali 'grup'. Sebaliknya, F -test 'seimbang-benar' untuk grup adalah:
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
di mana kita menggunakan subnum
MS sebagai ganti Residuals
MS dalam penyebut nilai- F .
Perhatikan bahwa nilai-nilai ini sangat cocok dengan hasil Satterthwaite:
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
Perbedaan yang tersisa disebabkan oleh data yang tidak seimbang.
OP membandingkan anova.lm
dengan anova.lmerModLmerTest
, yang ok, tetapi untuk membandingkan suka dengan seperti kita harus menggunakan kontras yang sama. Dalam hal ini ada perbedaan antara anova.lm
dan anova.lmerModLmerTest
karena mereka menghasilkan tes Tipe I dan III secara default masing-masing, dan untuk dataset ini terdapat perbedaan (kecil) antara kontras Tipe I dan III:
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
Jika set data benar-benar seimbang, kontras tipe I akan sama dengan kontras tipe III (yang tidak terpengaruh oleh jumlah sampel yang diamati).
Satu komentar terakhir adalah bahwa 'kelambatan' dari metode Kenward-Roger bukan karena model pemasangan kembali, tetapi karena melibatkan perhitungan dengan matriks varians-kovarians marginal dari pengamatan / residu (5191x5191 dalam kasus ini) yang tidak kasus untuk metode Satterthwaite.
Mengenai model2
Adapun model2 situasinya menjadi lebih kompleks dan saya pikir lebih mudah untuk memulai diskusi dengan model lain di mana saya telah memasukkan interaksi 'klasik' antara subnum
dan 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
Karena varians yang terkait dengan interaksi pada dasarnya nol (dengan adanya subnum
efek utama acak), istilah interaksi tidak berpengaruh pada perhitungan derajat kebebasan, nilai- F dan nilai- p :
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
Namun, subnum:direction
adalah strata kesalahan melampirkan untuk subnum
jadi jika kita menghapus subnum
semua SSQ terkait kembali kesubnum:direction
model4 <- lmer(rt ~ group * direction +
(1 | subnum:direction), data = ANT.2)
Sekarang istilah kesalahan alami untuk group
, direction
dan group:direction
adalah
subnum:direction
dan dengan nlevels(with(ANT.2, subnum:direction))
= 40 dan empat parameter, derajat kebebasan penyebut untuk istilah-istilah tersebut seharusnya sekitar 36:
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
Ini F -tests juga dapat didekati dengan 'seimbang-benar' F -tests:
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
sekarang beralih ke model2:
model2 <- lmer(rt ~ group * direction + (direction | subnum), data = ANT.2)
Model ini menggambarkan struktur kovarians efek-acak yang agak rumit dengan matriks varians-kovarians 2x2. Parameterisasi default tidak mudah untuk ditangani dan kami lebih baik dengan parameterisasi ulang model:
model2 <- lmer(rt ~ group * direction + (0 + direction | subnum), data = ANT.2)
Jika kita membandingkan model2
dengan model4
, mereka memiliki sama banyak acak-efek; 2 untuk masing-masing subnum
, yaitu 2 * 20 = 40 total. Sementara model4
menetapkan parameter varians tunggal untuk semua 40 efek acak, model2
menetapkan bahwa setiap subnum
pasangan efek acak memiliki distribusi normal bi-variate dengan matriks varians-kovarians 2x2 yang parameternya diberikan oleh
VarCorr(model2)
Groups Name Std.Dev. Corr
subnum directionleft 38.880
directionright 41.324 1.000
Residual 70.405
Ini menunjukkan terlalu pas, tapi mari kita simpan itu untuk hari lain. Yang penting di sini adalah bahwa model4
adalah kasus khusus model2
dan yang model
adalah juga kasus khusus dari model2
. Berbicara secara longgar (dan secara intuitif) (direction | subnum)
mengandung atau menangkap variasi yang terkait dengan efek utama subnum
serta interaksi direction:subnum
. Dalam hal efek acak kita dapat menganggap dua efek atau struktur ini sebagai menangkap variasi antara baris dan baris-demi-kolom masing-masing:
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
Dalam hal ini, perkiraan efek acak ini serta estimasi parameter varians keduanya menunjukkan bahwa kami benar-benar hanya memiliki efek utama acak subnum
(variasi antara baris) yang ada di sini. Apa yang menyebabkan semua ini adalah bahwa tingkat kebebasan Denominate Satterthwaite masuk
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
adalah kompromi antara efek-utama dan struktur interaksi ini: Kelompok DenDF tetap di 18 (bersarang subnum
oleh desain) tetapi direction
dan
group:direction
DenDF adalah kompromi antara 36 ( model4
) dan 5169 ( model
).
Saya tidak berpikir apa pun di sini menunjukkan bahwa perkiraan Satterthwaite (atau implementasinya di lmerTest ) salah.
Tabel setara dengan metode Kenward-Roger memberi
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
Tidak mengherankan bahwa KR dan Satterthwaite dapat berbeda tetapi untuk semua tujuan praktis perbedaan dalam nilai- p adalah kecil. Analisis saya di atas menunjukkan bahwa DenDF
untuk direction
dan group:direction
tidak boleh lebih kecil dari ~ 36 dan mungkin lebih besar dari yang diberikan bahwa kita pada dasarnya hanya memiliki efek utama acak direction
saat ini, jadi jika saya pikir ini merupakan indikasi bahwa metode KR mendapatkan DenDF
terlalu rendah pada kasus ini. Tetapi perlu diingat bahwa data tidak benar-benar mendukung (group | direction)
struktur sehingga perbandingannya sedikit buatan - akan lebih menarik jika model tersebut benar-benar didukung.
ezAnova
peringatan tersebut karena Anda tidak boleh menjalankan 2x2 anova jika sebenarnya data Anda berasal dari desain 2x2x2.