Saya telah melakukan langkah-langkah berulang ANOVA tiga arah; Analisis post-hoc apa yang valid?
Ini adalah desain yang sepenuhnya seimbang (2x2x2) dengan salah satu faktor memiliki pengukuran berulang dalam-subyek. Saya menyadari berbagai pendekatan multivariat untuk tindakan ANOVA yang berulang di R, tetapi insting pertama saya adalah melanjutkan dengan gaya aov () ANOVA yang sederhana:
aov.repeated <- aov(DV ~ IV1 * IV2 * Time + Error(Subject/Time), data=data)
DV = variabel respons
IV1 = variabel independen 1 (2 level, A atau B)
IV2 = variabel independen 2 (2 level, Ya atau Tidak)
IV3 = Waktu (2 level, Sebelum atau Setelah)
Subjek = ID Subjek (40 total subjek, 20 untuk setiap level IV1: nA = 20, nB = 20)
summary(aov.repeated)
Error: Subject
Df Sum Sq Mean Sq F value Pr(>F)
IV1 1 5969 5968.5 4.1302 0.049553 *
IV2 1 3445 3445.3 2.3842 0.131318
IV1:IV2 1 11400 11400.3 7.8890 0.007987 **
Residuals 36 52023 1445.1
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Error: Subject:Time
Df Sum Sq Mean Sq F value Pr(>F)
Time 1 149 148.5 0.1489 0.701906
IV1:Time 1 865 864.6 0.8666 0.358103
IV2:Time 1 10013 10012.8 10.0357 0.003125 **
IV1:IV2:Time 1 852 851.5 0.8535 0.361728
Residuals 36 35918 997.7
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Atau, saya sedang berpikir tentang menggunakan paket nlme untuk ANOVA style lme:
aov.repeated2 <- lme(DV ~ IV1 * IV2 * Time, random = ~1|Subject/Time, data=data)
summary(aov.repeated2)
Fixed effects: DV ~ IV1 * IV2 * Time
Value Std.Error DF t-value p-value
(Intercept) 99.2 11.05173 36 8.975972 0.0000
IV1 19.7 15.62950 36 1.260437 0.2156
IV2 65.9 15.62950 36 4.216385 0.0002 ***
Time 38.2 14.12603 36 2.704228 0.0104 *
IV1:IV2 -60.8 22.10346 36 -2.750701 0.0092 **
IV1:Time -26.2 19.97722 36 -1.311494 0.1980
IV2:Time -57.8 19.97722 36 -2.893295 0.0064 **
IV1:IV2:Time 26.1 28.25206 36 0.923826 0.3617
Insting pertama post-hoc saya tentang interaksi 2 arah yang signifikan dengan kontras Tukey menggunakan glht () dari paket multcomp:
data$IV1IV2int <- interaction(data$IV1, data$IV2)
data$IV2Timeint <- interaction(data$IV2, data$Time)
aov.IV1IV2int <- lme(DV ~ IV1IV2int, random = ~1|Subject/Time, data=data)
aov.IV2Timeint <- lme(DV ~ IV2Timeint, random = ~1|Subject/Time, data=data)
IV1IV2int.posthoc <- summary(glht(aov.IV1IV2int, linfct = mcp(IV1IV2int = "Tukey")))
IV2Timeint.posthoc <- summary(glht(aov.IV2Timeint, linfct = mcp(IV2Timeint = "Tukey")))
IV1IV2int.posthoc
#A.Yes - B.Yes == 0 0.94684
#B.No - B.Yes == 0 0.01095 *
#A.No - B.Yes == 0 0.98587 I don't care about this
#B.No - A.Yes == 0 0.05574 . I don't care about this
#A.No - A.Yes == 0 0.80785
#A.No - B.No == 0 0.00346 **
IV2Timeint.posthoc
#No.After - Yes.After == 0 0.0142 *
#Yes.Before - Yes.After == 0 0.0558 .
#No.Before - Yes.After == 0 0.5358 I don't care about this
#Yes.Before - No.After == 0 0.8144 I don't care about this
#No.Before - No.After == 0 0.1941
#No.Before - Yes.Before == 0 0.8616
Masalah utama yang saya lihat dengan analisis post-hoc ini adalah beberapa perbandingan yang tidak berguna untuk hipotesis saya.
Setiap saran untuk analisis post-hoc yang sesuai sangat dihargai, terima kasih.
Sunting: Pertanyaan dan jawaban yang relevan yang mengarah ke pengujian matriks kontras manual
sumber
/
digunakan untuk menunjukkan bersarang (seperti yang biasanya terlihat dalam eksperimen petak-terpisah), tidak seperti penggunaannya dalamError
istilah diaov()
mana ia menunjukkan cara membuat strata kesalahan .Error
istilahaov()
cara ini untuk menentukan bahwaTime
adalah faktor di dalam grup. Dari BaronError(subj/(color + shape))
sepertinya digunakan dengan cara yang sama.lme
model, saya tidak jelas tentang penggunaan yang tepat/
. Bagaimana Anda menentukanTime
sebagai faktor dalam-kelompok sepertiError()
denganaov()
?Jawaban:
Saya pikir ahli statistik akan memberi tahu Anda bahwa selalu ada masalah dengan analisis post hoc karena melihat data dapat memengaruhi apa yang Anda lihat dan Anda bisa menjadi bias karena Anda mencari hasil yang signifikan. FDA dalam studi uji klinis mensyaratkan bahwa rencana statistik dijabarkan sepenuhnya dalam protokol. dalam model linier Anda tentu bisa menentukan kontras yang ingin Anda lihat jika ANOVA atau ANCOVA menemukan perbedaan secara keseluruhan. Kontras yang telah ditentukan sebelumnya akan baik untuk dilihat selama pengobatan biasa untuk multiplisitas juga merupakan bagian dari itu.
sumber
R
. Secara khusus, saya tidak yakin apakah itu paling tepat untuk secara manual menentukan matriks kontras untuk menggunakan kontras Tukey yang relevanglht()
, atau untuk melakukan semua perbandingan secara default. Selain itu, saya tidak yakin bagaimana menangani dengan benar ukuran berulang dariTime
segi post-hoc.Jika Anda memiliki paket perangkat lunak seperti SAS, Anda mungkin akan menggunakan proc campuran untuk melakukan model campuran tindakan berulang dan jika Anda menentukan kontras yang ingin Anda gunakan SAS akan menanganinya dengan baik untuk Anda. Anda mungkin juga dapat melakukannya dengan opsi berulang dalam PROC GLM tetapi hati-hati karena mereka berperilaku berbeda dan membuat asumsi yang berbeda. Pengamatan berulang biasanya dikorupsi karena mereka memiliki sesuatu yang umum. Saya sering mengulangi tindakan pada pasien yang sama pada titik waktu yang berbeda. Jadi, dalam menghitung kontras, istilah kovarian masuk ke dalam masalah.
sumber