Không tham số cho ANOVA hai chiều (3x3)


8

Biến phụ thuộc của tôi là liên tục, không bình thường (lệch trái theo thử nghiệm Shapiro-Wilk). Tôi có hai biến độc lập (nhóm điều trị theo màu sắc, loại thực phẩm). Có 3 cấp độ trong mỗi biến độc lập. Số lượng quan sát cho mỗi biến độc lập không bằng nhau.

Tôi đã tra cứu các xét nghiệm phi tham số như Friedman's Test và Scheirer-Ray-Hare Test, cả hai đều không phù hợp (do số lượng quan sát không đồng đều).

Có những thử nghiệm thay thế mà bất cứ ai có thể đề nghị? Tôi đang sử dụng SAS.

Câu trả lời:


8

Câu hỏi nào bạn đang cố gắng trả lời?

Nếu bạn muốn kiểm tra tổng thể mọi thứ đang diễn ra, null là cả hiệu ứng chính và tương tác đều bằng 0, sau đó bạn có thể thay thế tất cả các điểm dữ liệu bằng thứ hạng của chúng và chỉ cần thực hiện ANOVA thông thường để so sánh với ý nghĩa chặn / lớn chỉ mô hình. Về cơ bản, đây là cách có bao nhiêu phép thử không tham số hoạt động, sử dụng các cấp bậc biến đổi dữ liệu thành phân phối đồng đều (dưới giá trị null) và bạn có được một xấp xỉ tốt bằng cách xử lý nó như bình thường (Định lý giới hạn trung tâm áp dụng cho đồng phục cho mẫu kích thước trên khoảng 5 hoặc 6).

Đối với các câu hỏi khác, bạn có thể sử dụng các bài kiểm tra hoán vị. Nếu bạn muốn kiểm tra một trong các hiệu ứng chính và sự tương tác với nhau (nhưng cho phép hiệu ứng chính khác khác không) thì bạn có thể cho phép dự đoán được kiểm tra. Tôi muốn kiểm tra sự tương tác trong khi cho phép cả hai hiệu ứng chính khác không thì bạn chỉ có thể điều chỉnh mô hình hiệu ứng chính giảm và tính toán các giá trị và phần dư được trang bị, sau đó hoán vị ngẫu nhiên các phần dư và thêm phần dư được hoán vị trở lại giá trị phù hợp và phù hợp với mô hình anova đầy đủ bao gồm cả sự tương tác. Lặp lại điều này rất nhiều lần để có được phân phối null cho kích thước của hiệu ứng tương tác để so sánh với kích thước của hiệu ứng tương tác từ dữ liệu gốc.

Có thể có mã SAS hiện tại để làm những việc như thế này, tôi đã thấy một số hướng dẫn cơ bản về việc sử dụng SAS cho kiểm tra bootstrap và hoán vị (cách nhanh nhất dường như là sử dụng bước dữ liệu để tạo tất cả các bộ dữ liệu trong một bảng lớn, sau đó sử dụng xử lý để làm các phân tích). Cá nhân tôi sử dụng R cho loại điều này vì vậy không thể giúp đỡ nhiều hơn trong việc sử dụng SAS.


Biên tập

Dưới đây là một ví dụ sử dụng mã 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

1
+1. Đánh bóng trung bình của Tukey hoạt động tốt để phù hợp với mô hình khi đó là tất cả những gì cần thiết. Sẽ rất thú vị (nhưng có lẽ hơi chuyên sâu về mặt tính toán) để kết hợp điều đó với một bài kiểm tra hoán vị.
whuber

Cảm ơn các câu trả lời. Đây là nhiều hơn một nghiên cứu thăm dò - chỉ để xem xét liệu có sự khác biệt trong biến phụ thuộc dựa trên cả hai biến độc lập.
mbee

@GregSnow, bạn sử dụng gói nào trong R cho việc này? Tôi đang sử dụng ezPermchức năng của ezvì nó cho phép tôi làm dv ~ iv1 * iv2 | subj. Nó mang lại cho tôi giá trị p nhưng tác giả khuyên chống lại sự giải thích của nó (Tôi biết bạn đang giải thích cách thực hiện thủ công nhưng mặc dù tôi có một đội hình lập trình mạnh mẽ, kiến ​​thức về các thuật ngữ thống kê của tôi mới bắt đầu được cải thiện)
toto_tico

1
@toto_tico, tôi không sử dụng bất kỳ gói bổ trợ nào. Kiểm tra hoán vị đủ dễ thực hiện chỉ với mã R thông thường. Tôi đã bao gồm một ví dụ ở trên bằng cách sử dụng một bộ dữ liệu tích hợp.
Greg Snow

@GregSnow, tại sao bạn lấy mẫu trên mẫu dư (dư (fit2))? Tôi nghĩ rằng việc lấy mẫu đã được thực hiện trong dv (warpbreaks $ breakl). Trực giác của tôi cho tôi biết rằng những gì tôi đọc được trong các bài kiểm tra hoán vị là cho một yếu tố và mọi thứ trở nên phức tạp hơn đối với nhiều yếu tố.
toto_tico

3

+1 cho @Greg Tuyết. Để phù hợp với chiến lược xếp hạng sử dụng không tham số của mình, bạn có thể sử dụng hồi quy logistic thứ tự . Điều này sẽ cho phép bạn phù hợp với một mô hình có nhiều yếu tố và tương tác giữa chúng. Các tài liệu liên quan của SAS có ở đây . Có một hướng dẫn về cách thực hiện điều này trong SAS tại trang web trợ giúp thống kê tuyệt vời của UCLA tại đây và một hướng dẫn khác từ Đại học Indiana tại đây .


Không phải cách tiếp cận này trả lời một câu hỏi khác nhau, mặc dù? Trong cài đặt ANOVA, biến liên tục là kết quả và chúng tôi đang kiểm tra tổng các bình phương trong / giữa các yếu tố. Trong một hồi quy logistic thứ tự, bạn đang cố gắng dự đoán thành viên của yếu tố theo các giá trị của biến liên tục đó. Mặc dù chắc chắn có những tình huống trong đó những điều này sẽ cho bạn suy luận tương tự, nhưng đối với tôi, đây không phải là những quy trình tương đương trong CHUNG. Theo cùng một cách mà hồi quy của Y = BX không phải lúc nào cũng giống như X = BY.
Ryan Simmons

Về cơ bản, tôi nghĩ các câu hỏi "Các nhóm này có khác nhau theo X không?" và "Làm thế nào X có thể được sử dụng để phân loại các cá nhân trong số các nhóm này?" sẽ chỉ giống nhau trong các trường hợp rất cụ thể và bạn không nhất thiết phải thay thế ANOVA cho hồi quy logistic và nhận được kết quả tương đương.
Ryan Simmons

@RyanSimmons, bạn không nhất thiết phải phân loại bất cứ thứ gì. Thử nghiệm của mô hình OLR là một thử nghiệm nếu một số nhóm được liên kết với các giá trị Y thường lớn hơn các nhóm khác. Bạn chỉ đơn giản là chỉ sử dụng thành phần thứ tự của các giá trị Y. Các xét nghiệm như Kruskal-Wallis, Mann-Whitney, v.v ... là những trường hợp đặc biệt của OLR.
gung - Phục hồi Monica

@gung, còn phần thiết kế bên trong của vấn đề thì sao? Có thể với một hồi quy logistic thường?
toto_tico

1
@toto_tico, tôi vừa trả lời bạn về chủ đề khác. Bạn cần sử dụng clmm()trong gói thứ tự.
gung - Phục hồi Monica
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.