Non-parametrik untuk ANOVA dua arah (3x3)

8

Variabel dependen saya adalah kontinu, tidak normal (condong ke kiri menurut uji Shapiro-Wilk). Saya memiliki dua variabel independen (kelompok perlakuan berdasarkan warna, jenis makanan). Ada 3 level dalam setiap variabel independen. Jumlah pengamatan untuk setiap variabel independen tidak sama.

Saya telah melihat tes non-parametrik seperti Friedman Test dan Scheirer-Ray-Hare Test, yang keduanya tidak cocok (karena jumlah pengamatan yang tidak sama).

Apakah ada tes alternatif yang bisa disarankan siapa pun? Saya menggunakan SAS.

mbee
sumber

Jawaban:

8

Apa pertanyaan yang Anda coba jawab?

Jika Anda ingin tes keseluruhan dari apa pun yang terjadi, Nolnya adalah bahwa kedua efek utama dan interaksinya adalah 0, maka Anda dapat mengganti semua titik data dengan peringkat mereka dan hanya melakukan ANOVA biasa untuk membandingkan dengan rata-rata intersep / grand hanya model. Ini pada dasarnya adalah berapa banyak tes non-parametrik bekerja, menggunakan peringkat mengubah data menjadi distribusi yang seragam (di bawah nol) dan Anda mendapatkan perkiraan yang baik dengan memperlakukannya seperti biasa (Teorema Batas Pusat berlaku untuk seragam untuk sampel ukuran di atas sekitar 5 atau 6).

Untuk pertanyaan lain, Anda dapat menggunakan tes permutasi. Jika Anda ingin menguji salah satu efek utama dan interaksi bersama (tetapi membiarkan efek utama lainnya menjadi nol) maka Anda dapat mengubah permulaan prediktor yang diuji. Saya ingin menguji interaksi sambil membiarkan kedua efek utama menjadi nol, kemudian Anda dapat menyesuaikan model reduksi efek-utama saja dan menghitung nilai-nilai yang pas dan residu, kemudian secara acak mengubah residu dan menambahkan residu yang diijinkan kembali ke nilai-nilai pas dan cocok dengan model anova lengkap termasuk interaksi. Ulangi ini beberapa kali untuk mendapatkan distribusi nol untuk ukuran efek interaksi untuk membandingkan dengan ukuran efek interaksi dari data asli.

Mungkin ada kode SAS yang ada untuk melakukan hal-hal seperti ini, saya telah melihat beberapa tutorial dasar tentang cara menggunakan SAS untuk tes bootstrap dan permutasi (cara tercepat tampaknya menggunakan langkah data untuk membuat semua kumpulan data dalam satu tabel besar, kemudian digunakan oleh memproses untuk melakukan analisis). Secara pribadi saya menggunakan R untuk hal semacam ini jadi tidak bisa lebih membantu dalam menggunakan SAS.


Edit

Berikut ini contoh menggunakan kode R:

> fit1 <- aov(breaks ~ wool*tension, data=warpbreaks)
> summary(fit1)
             Df Sum Sq Mean Sq F value   Pr(>F)    
wool          1    451   450.7   3.765 0.058213 .  
tension       2   2034  1017.1   8.498 0.000693 ***
wool:tension  2   1003   501.4   4.189 0.021044 *  
Residuals    48   5745   119.7                     
---
Signif. codes:  0***0.001**0.01*0.05 ‘.’ 0.1 ‘ ’ 1
> 
> fit2 <- aov(breaks ~ wool + tension, data=warpbreaks)
> 
> tmpfun <- function() {
+   new.df <- data.frame(breaks = fitted(fit2) + sample(resid(fit2)),
+                        wool = warpbreaks$wool,
+                        tension = warpbreaks$tension)
+   fitnew <- aov(breaks ~ wool*tension, data=new.df)
+   fitnew2 <- update(fitnew, .~ wool + tension)
+   c(coef(fitnew), F=anova(fitnew2,fitnew)[2,5])
+ }
> 
> out <- replicate(10000, tmpfun())
> 
> # based on only the interaction coefficients
> mean(out[5,] >= coef(fit1)[5])
[1] 0.002
> mean(out[6,] >= coef(fit1)[6])
[1] 0.0796
> 
> # based on F statistic from full-reduced model
> mean(out[7,] >= anova(fit2,fit1)[2,5])
[1] 0.022
Greg Snow
sumber
1
+1. Semir rata - rata Tukey bekerja dengan baik untuk menyesuaikan model saat hanya itu yang dibutuhkan. Akan menarik (tapi mungkin sedikit intensif secara komputasi) untuk dipasangkan dengan tes permutasi.
whuber
Terima kasih atas tanggapannya. Ini lebih merupakan studi eksplorasi - hanya untuk memeriksa apakah ada perbedaan dalam variabel dependen berdasarkan kedua variabel independen.
MBee
@GregSnow, paket mana yang Anda gunakan dalam R untuk ini? saya menggunakanezPerm fungsi ezkarena memungkinkan saya untuk melakukannya dv ~ iv1 * iv2 | subj. Ini memberi saya nilai-p tetapi penulis menyarankan agar tidak menafsirkannya (saya tahu Anda menjelaskan cara melakukan ini secara manual tetapi, meskipun saya memiliki formasi pemrograman yang kuat, pengetahuan saya tentang istilah statistik baru mulai membaik)
toto_tico
1
@toto_tico, saya tidak menggunakan paket tambahan apa pun. Tes permutasi cukup mudah dilakukan hanya dengan kode R biasa. Saya telah memasukkan contoh di atas menggunakan dataset bawaan.
Greg Snow
@ GregSnow, mengapa Anda mencicipi sampel residual (resid (fit2))? Saya pikir pengambilan sampel dilakukan di dv (warpbreaks $ breakl). Intuisi saya memberi tahu saya bahwa apa yang saya baca pada tes permutasi adalah untuk satu faktor, dan banyak hal menjadi lebih rumit untuk beberapa faktor.
toto_tico
3

+1 ke @Greg Snow. Sesuai dengan strategi peringkat penggunaan non-parametriknya, Anda dapat menggunakannya regresi logistik ordinal . Ini akan memungkinkan Anda untuk menyesuaikan model dengan berbagai faktor dan interaksi di antara mereka. Dokumentasi SAS yang relevan ada di sini . Ada tutorial tentang cara melakukan ini di SAS di situs web bantuan statistik UCLA yang sangat baik di sini , dan tutorial lain dari Universitas Indiana di sini .

gung - Pasang kembali Monica
sumber
Bukankah pendekatan ini menjawab pertanyaan yang berbeda? Dalam pengaturan ANOVA, variabel kontinu adalah hasilnya, dan kami menguji jumlah kuadrat di dalam / antara faktor. Dalam regresi logistik ordinal, Anda mencoba untuk memprediksi keanggotaan faktor sesuai dengan nilai-nilai variabel kontinu itu. Walaupun pasti ada situasi di mana ini akan memberi Anda kesimpulan yang sama, tidak jelas bagi saya bahwa ini adalah prosedur yang setara dalam UMUM. Dengan cara yang sama bahwa regresi Y = BX tidak selalu akan sama dengan X = BY.
Ryan Simmons
Pada dasarnya, saya pikir pertanyaan "Apakah kelompok-kelompok ini berbeda menurut X?" dan "Bagaimana X dapat digunakan untuk mengklasifikasikan individu di antara kelompok-kelompok ini?" hanya akan sama dalam keadaan yang sangat spesifik, dan Anda tidak dapat selalu mengganti ANOVA untuk regresi logistik dan mendapatkan hasil yang sebanding.
Ryan Simmons
@RyanSimmons, Anda tidak perlu mengklasifikasikan apa pun. Tes model OLR adalah tes jika beberapa kelompok dikaitkan dengan nilai Y yang biasanya lebih besar daripada kelompok lain. Anda hanya menggunakan hanya komponen ordinal dari nilai Y. Tes seperti Kruskal-Wallis, Mann-Whitney, dll. Adalah kasus khusus OLR.
gung - Reinstate Monica
@ung, bagaimana dengan bagian desain masalah? Apakah mungkin dengan regresi logistik ordinal?
toto_tico
1
@toto_tico, saya baru saja menjawab Anda di utas lainnya. Anda perlu menggunakan clmm()dalam paket ordinal.
gung - Reinstate Monica