Saya mencoba menjalankan tindakan berulang Anova di R diikuti oleh beberapa kontras khusus pada dataset itu. Saya pikir pendekatan yang benar akan digunakan
Anova()
dari paket mobil.
Mari kita ilustrasikan pertanyaan saya dengan contoh yang diambil dari ?Anova
menggunakan
OBrienKaiser
data (Catatan: Saya menghilangkan faktor gender dari contoh):
Kami memiliki desain dengan satu antara faktor subjek, pengobatan (3 tingkat: kontrol, A, B), dan 2 diulang -Mengukur faktor (dalam mata pelajaran), fase (3 level: pretest, posttest, followup) dan jam (5 level: 1 hingga 5).
Tabel ANOVA standar diberikan oleh (berbeda dengan contoh (Anova) saya beralih ke Tipe 3 Jumlah Kuadrat, itulah yang diinginkan bidang saya):
require(car)
phase <- factor(rep(c("pretest", "posttest", "followup"), c(5, 5, 5)),
levels=c("pretest", "posttest", "followup"))
hour <- ordered(rep(1:5, 3))
idata <- data.frame(phase, hour)
mod.ok <- lm(cbind(pre.1, pre.2, pre.3, pre.4, pre.5, post.1, post.2, post.3, post.4, post.5, fup.1, fup.2, fup.3, fup.4, fup.5) ~ treatment, data=OBrienKaiser)
av.ok <- Anova(mod.ok, idata=idata, idesign=~phase*hour, type = 3)
summary(av.ok, multivariate=FALSE)
Sekarang, bayangkan interaksi urutan tertinggi akan menjadi signifikan (yang tidak terjadi) dan kami ingin mengeksplorasi lebih lanjut dengan kontras berikut:
Apakah ada perbedaan antara jam 1 & 2 versus jam 3 (kontras 1) dan antara jam 1 & 2 versus jam 4 & 5 (kontras 2) dalam kondisi perawatan (A&B bersama)?
Dengan kata lain, bagaimana cara menentukan kontras ini:
((treatment %in% c("A", "B")) & (hour %in% 1:2))
melawan((treatment %in% c("A", "B")) & (hour %in% 3))
((treatment %in% c("A", "B")) & (hour %in% 1:2))
melawan((treatment %in% c("A", "B")) & (hour %in% 4:5))
Ide saya adalah menjalankan ANOVA lain dengan kondisi perawatan yang tidak diperlukan (kontrol):
mod2 <- lm(cbind(pre.1, pre.2, pre.3, pre.4, pre.5, post.1, post.2, post.3, post.4, post.5, fup.1, fup.2, fup.3, fup.4, fup.5) ~ treatment, data=OBrienKaiser, subset = treatment != "control")
av2 <- Anova(mod2, idata=idata, idesign=~phase*hour, type = 3)
summary(av2, multivariate=FALSE)
Namun, saya masih tidak tahu bagaimana mengatur matriks kontras dalam-subjek yang sesuai membandingkan jam 1 & 2 dengan 3 dan 1 & 2 dengan 4 & 5. Dan saya tidak yakin apakah menghilangkan kelompok pengobatan yang tidak dibutuhkan memang ide yang baik karena mengubah keseluruhan istilah kesalahan.
Sebelum pergi untuk Anova()
saya juga berpikir untuk pergi lme
. Namun, ada perbedaan kecil dalam nilai F dan p antara buku teks ANOVA dan apa yang dikembalikan anove(lme)
karena kemungkinan variasi negatif dalam ANOVA standar (yang tidak diizinkan masuklme
). Terkait, seseorang menunjuk saya ke gls
yang memungkinkan untuk mengukur ANOVA tindakan yang berulang, namun, tidak memiliki argumen kontras.
Untuk memperjelas: Saya ingin uji F atau t (menggunakan jumlah kuadrat tipe III) yang menjawab apakah kontras yang diinginkan signifikan atau tidak.
Memperbarui:
Saya sudah mengajukan pertanyaan yang sangat mirip pada R-help, tidak ada jawaban .
Pertanyaan serupa diajukan pada R-help beberapa waktu lalu. Namun, jawabannya juga tidak menyelesaikan masalah.
Pembaruan (2015):
Karena pertanyaan ini masih menghasilkan beberapa kegiatan, menentukan tesis dan pada dasarnya semua kontras lainnya sekarang dapat dilakukan relatif mudah dengan afex
paket dalam kombinasi dengan lsmeans
paket seperti yang dijelaskan dalam sketsa afex .
treatment
, 3) untuk rata-rata setiap orang di atas levelprePostFup
, 4) untuk rata-rata setiap orang lebih dari jam 1,2 (= kelompok data 1) serta lebih dari jam 3,4 (= kelompok data 2), 5) jalankan uji-t untuk 2 kelompok dependen. Karena Maxwell & Delaney (2004) dan juga Kirk (1995) mencegah melakukan kontras dengan istilah kesalahan yang dikumpulkan dalam desain, ini bisa menjadi alternatif sederhana.Jawaban:
Metode ini umumnya dianggap "kuno" sehingga walaupun mungkin, sintaksinya sulit dan saya curiga lebih sedikit orang yang tahu bagaimana memanipulasi perintah anova untuk mendapatkan yang Anda inginkan. Metode yang lebih umum digunakan
glht
dengan model berbasis kemungkinan darinlme
ataulme4
. (Saya tentu saja dibuktikan salah dengan jawaban lain.)Yang mengatakan, jika saya perlu melakukan ini, saya tidak akan repot dengan perintah anova; Saya hanya cocok menggunakan model setara
lm
, memilih istilah kesalahan yang tepat untuk kontras ini, dan menghitung uji F sendiri (atau setara, uji t karena hanya ada 1 df). Ini mengharuskan semuanya seimbang dan memiliki kebulatan, tetapi jika Anda tidak memilikinya, Anda mungkin harus tetap menggunakan model berbasis kemungkinan. Anda mungkin dapat mengoreksi non-sphericity menggunakan Greenhouse-Geiser atau Huynh-Feldt koreksi yang (saya percaya) menggunakan statistik F yang sama tetapi memodifikasi df dari istilah kesalahan.Jika Anda benar-benar ingin menggunakannya
car
, Anda mungkin merasa sketsa heplot bermanfaat; mereka menggambarkan bagaimana matriks dalamcar
paket didefinisikan.Menggunakan metode caracal (untuk kontras 1 & 2 - 3 dan 1 & 2 - 4 & 5), saya mengerti
Inilah cara saya mendapatkan nilai-p yang sama:
Bentuk kembali data ke dalam format panjang dan jalankan
lm
untuk mendapatkan semua persyaratan SS.Buat matriks kontras alternatif untuk jangka waktu satu jam.
Periksa apakah kontras saya memberikan SS yang sama dengan kontras default (dan sama seperti dari model lengkap).
Dapatkan SS dan df hanya untuk dua kontras yang saya inginkan.
Dapatkan nilai-p.
Secara opsional sesuaikan untuk kebulatan.
sumber
heplots
sketsa, itu adalah ringkasan yang bagus tentang apa yang terjadi dalam hal model linear umum.Jika Anda ingin / harus menggunakan kontras dengan istilah kesalahan gabungan dari ANOVA yang sesuai, Anda dapat melakukan hal berikut. Sayangnya, ini akan lama, dan saya tidak tahu bagaimana melakukan ini dengan lebih nyaman. Namun, saya pikir hasilnya benar, karena diverifikasi terhadap Maxwell & Delaney (lihat di bawah).
Anda ingin membandingkan kelompok faktor dalam pertama Anda dalam
hour
desain SPF-p.qr (notasi dari Kirk (1995): Desain Split-Plot-Faktorial 1 antara faktortreatment
dengan kelompok p, faktor pertamahour
dengan faktor kelompok q, faktor keduaprePostFup
dengan faktor kelompok r grup). Berikut ini mengasumsikantreatment
kelompok dan kebulatan ukuran identik .Perhatikan pertama bahwa efek utama
hour
adalah sama setelah rata-rata berakhirprePostFup
, sehingga beralih ke desain SPF-pq sederhana yang hanya berisitreatment
danhour
sebagai infus.Sekarang perhatikan bahwa dalam SPF-pq ANOVA, efek untuk
hour
diuji terhadap interaksiid:hour
, yaitu interaksi ini memberikan istilah kesalahan untuk pengujian. Sekarang kontras untukhour
kelompok dapat diuji seperti di ANOVA antara subjek dengan hanya mengganti istilah kesalahan, dan derajat kebebasan yang sesuai. Cara mudah untuk mendapatkan SS dan df dari interaksi ini adalah menyesuaikan modellm()
.Tapi mari kita juga menghitung semuanya secara manual di sini.
Sekarang setelah kita memiliki istilah kesalahan yang benar, kita dapat membangun statistik pengujian yang biasa untuk perbandingan yang direncanakan: mana adalah vektor kontras,adalah panjangnya, adalah estimasi kontras, dan adalah rata-rata kuadrat untuk interaksi (istilah kesalahan yang sesuai). c| | c| | Ψ=qΣk=1ckM. kMSEt = ψ^- 0| | c | | M.SE√ c | | c | | ψ^= ∑k = 1qckM.. k MSE
hour:id
Untuk beberapa perbandingan, Anda harus berpikir tentang metode koreksi , misalnya, Bonferroni.α
Perhitungan yang sesuai untuk contoh Maxwell & Delaney (2004) pada hal. 599f dapat ditemukan di sini . Perhatikan bahwa M&D menghitung nilai-F, untuk melihat bahwa hasilnya identik, Anda harus kuadratkan nilai untuk t-statistik. Kode itu juga mencakup analisis yang dilakukan denganϵ^
Anova()
daricar
, serta perhitungan manual dari koreksi untuk efek utama faktor-dalam.sumber