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