Split-Plot ANOVA: tes perbandingan model dalam R

12

Bagaimana saya bisa menguji efek dalam ANOVA Split-Plot menggunakan perbandingan model yang sesuai untuk digunakan dengan Xdan Margumen anova.mlm()dalam R? Saya kenal ?anova.mlmdan Dalgaard (2007) [1]. Sayangnya itu hanya menyikat Desain Split-Plot. Melakukan ini dalam desain acak lengkap dengan dua faktor dalam-mata pelajaran:

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

Perbandingan model berikut mengarah ke hasil yang sama. Model terbatas tidak menyertakan efek yang dipermasalahkan tetapi semua efek lain dari urutan yang sama atau lebih rendah, model lengkap menambahkan efek yang dipermasalahkan.

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

Desain Split-Splot dengan satu faktor di dalam dan satu di antara subjek:

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

Ini adalah anova()perintah untuk mereplikasi tes, tetapi saya tidak tahu mengapa itu bekerja. Mengapa tes perbandingan model berikut mengarah ke hasil yang sama?

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

Dua faktor dalam mata pelajaran dan satu faktor antara mata pelajaran:

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

Bagaimana cara mereplikasi hasil yang diberikan di atas dengan perbandingan model yang sesuai untuk digunakan dengan Xdan Margumen anova.mlm()? Apa logika di balik perbandingan model ini?

EDIT: suncoolsu menunjukkan bahwa untuk semua tujuan praktis, data dari desain ini harus dianalisis menggunakan model campuran. Namun, saya masih ingin mengerti bagaimana mereplikasi hasil summary(Anova())dengan anova.mlm(..., X=?, M=?).

[1]: Dalgaard, P. 2007. Fungsi Baru untuk Analisis Multivariat. R News, 7 (2), 2-7.

caracal
sumber
Hei @caracal, saya pikir cara Anda menggunakan "Desain Plot-Split" tidak seperti Casella, George mendefinisikannya dalam bukunya, Desain Statistik. Split Plot jelas berbicara tentang bersarang, tetapi merupakan cara khusus untuk memaksakan struktur korelasinya. Dan sebagian besar waktu Anda akan berakhir menggunakan lme4paket yang sesuai dengan model DAN TIDAK lm. Tapi ini mungkin tampilan berbasis buku yang sangat spesifik. Saya akan membiarkan komentar orang lain di atasnya. Saya dapat memberikan contoh berdasarkan bagaimana saya menafsirkannya yang berbeda dari milik Anda.
suncoolsu
2
@suncoolsu Terminologi dalam ilmu-ilmu sosial mungkin berbeda, tetapi baik Kirk (1995, p512) dan Maxwell & Delaney (2004, p592) menyebut model-model dengan satu di antara dan satu "faktor-plot" dalam-faktor dan dalam-faktor. Faktor antar menyediakan "plot" (analog dengan asal pertanian).
caracal
Saya punya banyak hal di piring saya saat ini. Saya akan memperluas jawaban saya menjadi lebih spesifik untuk pertanyaan Anda. Saya melihat Anda telah menginvestasikan banyak upaya dalam menyusun pertanyaan Anda. Terima kasih untuk itu.
suncoolsu

Jawaban:

10

The Xdan Mpada dasarnya menentukan dua model yang ingin Anda bandingkan, tetapi hanya dalam hal efek dalam subyek; kemudian menunjukkan hasil untuk interaksi semua efek antar-subjek (termasuk intersepsi) dengan efek dalam-subjek yang berubah antara Xdan M.

Contoh Anda di fitBlebih mudah dimengerti jika kami menambahkan default untuk Xdan 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

Model pertama adalah perubahan dari tidak dalam efek subjek (semua memiliki rata-rata yang sama) ke rata-rata yang berbeda untuk masing-masing, jadi kami telah menambahkan idefek acak, yang merupakan hal yang benar untuk menguji keseluruhan intersep dan keseluruhan antara efek subjek di.

Model kedua mengiklankan id:IVw1interaksi, yang merupakan hal yang benar untuk diuji IVw1dan IVw1:IVbsyarat - syarat yang dilawan. Karena hanya ada satu efek di dalam subjek (dengan tiga level), default diag(3)dalam model kedua akan menjelaskannya; itu akan setara dengan dijalankan

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

Untuk Anda fitC, saya percaya perintah ini akan membuat ulang Anovaringkasan.

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

Sekarang, ketika Anda menemukan, perintah-perintah ini sangat rumit. Untungnya, tidak ada banyak alasan untuk menggunakannya lagi. Jika Anda ingin menganggap kebulatan, Anda harus menggunakan aov, atau untuk sintaks yang lebih mudah, gunakan saja lmdan hitung sendiri uji-F yang benar. Jika Anda tidak mau menganggap kebulatan, menggunakan lmeadalah cara yang tepat karena Anda mendapatkan fleksibilitas yang jauh lebih banyak daripada yang Anda lakukan dengan koreksi GG dan HF.

Misalnya, inilah kode aovdan lmuntuk Anda fitA. Anda harus memiliki data dalam format panjang terlebih dahulu; inilah salah satu cara untuk melakukan itu:

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)

Dan ini lm andkode aov`:

anova(lm(value ~ IVw1*IVw2*id, data=d))
summary(aov(value ~ IVw1*IVw2 + Error(id/(IVw1*IVw2)), data=d))
Aaron meninggalkan Stack Overflow
sumber
Terima kasih banyak, itulah tepatnya yang saya cari! Saya masih tertarik anova()karena masalah dengan yang Anova()dijelaskan di sini . Tetapi saran terakhir Anda bekerja dengan baik dan lebih sederhana. (Hal kecil: Saya pikir 2 baris terakhir masing-masing hilang 1 kurung penutup, dan seharusnya berbunyi Error(id/(IVw1*IVw2)))
caracal
8

Desain petak-petak berasal dari pertanian, karenanya namanya. Tetapi mereka sering terjadi dan saya akan mengatakan - pekerja keras dari sebagian besar uji klinis. Plot utama diperlakukan dengan level satu faktor sedangkan level beberapa faktor lain dibiarkan bervariasi dengan subplot. Desain muncul sebagai akibat dari pembatasan pengacakan penuh. Misalnya: suatu bidang dapat dibagi menjadi empat subplot. Dimungkinkan untuk menanam varietas yang berbeda di subplot, tetapi hanya satu jenis irigasi yang dapat digunakan untuk seluruh lahan. Bukan perbedaan antara pemisahan dan blok. Blok adalah fitur dari unit eksperimental yang kami memiliki opsi untuk memanfaatkan dalam desain eksperimental, karena kami tahu mereka ada di sana. Split, di sisi lain, memaksakan pembatasan pada penugasan faktor apa yang mungkin dilakukan. Mereka memaksakan persyaratan pada desain yang mencegah pengacakan lengkap.

Mereka banyak digunakan dalam uji klinis di mana ketika satu faktor mudah berubah sementara faktor lain membutuhkan lebih banyak waktu untuk berubah. Jika eksperimen harus melakukan semua langkah untuk setiap tingkat faktor yang sulit untuk diubah secara berurutan, desain petak terbelah akan menghasilkan faktor yang sulit diubah yang mewakili seluruh faktor plot.

Berikut ini sebuah contoh: Dalam uji coba lapangan pertanian, tujuannya adalah untuk menentukan efek dari dua varietas tanaman dan empat metode irigasi yang berbeda. Delapan bidang tersedia, tetapi hanya satu jenis irigasi yang dapat diterapkan untuk setiap bidang. Bidang dapat dibagi menjadi dua bagian dengan variasi yang berbeda di setiap bagian. Faktor plot keseluruhan adalah irigasi, yang harus ditugaskan secara acak ke ladang. Dalam setiap bidang, varietas ditugaskan.

Ini adalah bagaimana Anda melakukan ini di 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

Pada dasarnya, apa yang model ini katakan adalah, irigasi dan varietas adalah efek tetap dan varietas bersarang di dalam irigasi. Field adalah efek acak dan secara gambar akan menjadi seperti itu

I_1 | I_2 | I_3 | I_4

V_1 V_2 | V_1 V_2 | V_1 V_2 | V_1 V_2

Tapi ini adalah varian khusus dengan efek plot keseluruhan tetap dan efek subplot. Mungkin ada varian di mana satu atau lebih acak. Mungkin ada desain yang lebih rumit seperti split-split .. desain plot. Pada dasarnya, Anda bisa menjadi liar dan gila. Tetapi mengingat struktur dan distribusi yang mendasarinya (yaitu tetap atau acak, bersarang atau bersilangan, ..) dipahami dengan jelas, suatu lmer-Ninjakehendak tidak memiliki masalah dalam pemodelan. Mungkin interpretasi akan berantakan.

Mengenai perbandingan, katakanlah Anda memiliki lmer1dan lmer2:

anova(lmer1, lmer2)

akan memberi Anda tes yang sesuai berdasarkan statistik uji chi-sq dengan derajat kebebasan sama dengan perbedaan parameter.

cf: Faraway, J., Memperluas Model Linier dengan R.

Casella, G., Desain Statistik

suncoolsu
sumber
Saya menghargai intro untuk menganalisis desain split-splot dengan model efek campuran dan info latar belakang lebih lanjut! Ini tentu merupakan cara yang lebih disukai untuk melakukan analisis. Saya telah memperbarui pertanyaan saya untuk menekankan bahwa saya masih ingin tahu bagaimana melakukan ini "dengan cara lama".
caracal