Làm thế nào để xác định kích thước hiệu ứng của xét nghiệm tổng xếp hạng Wilcoxon trong R?


8

Tôi muốn xác định xem có sự khác biệt về giá trị p trung bình giữa hai nhóm không. Để thực hiện điều này, tôi thực hiện kiểm tra tổng xếp hạng của Wilcoxon (dữ liệu thường không được phân phối). Càng xa càng tốt. Cuối cùng, tôi muốn tính kích thước hiệu ứng tương ứng. Thật không may, R không cung cấp điều này. Nó cũng không cung cấp giá trị az mà kích thước hiệu ứng có thể dễ dàng được tính bằng cách sử dụng: effect size = z / sqrt (N)

Đây là một số mã R mẫu:

a=rep(0:1,each=20)                            #grouping variable
b=c(rnorm(20, .03,.01), rnorm(20, .02, .009)) #vector of p-values

d=cbind(a,b)

test = wilcox.test(b ~ a, data = d)     #perform Wilcoxon rank-sum test
test

Có ai biết làm thế nào để có được kích thước hiệu ứng?


3
Chào mừng đến với SO. Tôi đã gắn cờ câu hỏi của bạn để di chuyển đến www.crossvalidated.com, vì câu hỏi của bạn mang tính thống kê hơn bất kỳ điều gì khác. Tóm lại: Thử nghiệm Wilcoxon RANK hoạt động với các cấp bậc, vì vậy tôi không chắc chắn về kích thước hiệu ứng mà bạn đang nói. Rõ ràng nó không mang lại cho bạn giá trị az, vì cái đó được liên kết với thử nghiệm tham số, không phải với các thử nghiệm không tham số như Wilcoxon. Wilcoxon phải được giải thích về sự thay đổi vị trí.
Joris Meys

4
B>A1/2

Câu trả lời:


13

Công cụ ước tính tương ứng với thử nghiệm Wilcoxon là công cụ ước tính Hodges-Lehmann; nó được trả về bằng wilcox.testcách sử dụng conf.int=TRUEtùy chọn, bên dưới "sự khác biệt về vị trí".

Ví dụ của bạn:

> wilcox.test(b~a,data=d, conf.int=TRUE)

    Wilcoxon rank sum test

data:  b by a 
W = 355, p-value = 6.914e-06
alternative hypothesis: true location shift is not equal to 0 
95 percent confidence interval:
 0.008657301 0.021523993 
sample estimates:
difference in location 
            0.01442617 

Để biết thêm về Wilcoxon và các giả định đằng sau nó, và những gì nó thực sự kiểm tra và các công cụ ước tính không đối xứng khác, tài liệu này (có thể) hữu ích: www.stat.umn.edu/geyer/old03/5102/notes/rank.pdf


Vì vậy, những gì bạn nói là kích thước hiệu ứng là wilcox.test(b~a,data=d, conf.int=TRUE)$estimate / sqrt(20), chính xác?

2

Lấy z cho công thức của bạn bằng cách

library(coin)
mydf <- as.data.frame(d)
wilcoxsign_test(b ~ a, data = mydf, distribution="exact")

và tính kích thước hiệu ứng với công thức của bạn, đặt N thành 40


1
coin::wilcoxsign_testeffect size=z/N

Lý do ti sử dụng coin :: wilcoxsign_test là vì nó tính giá trị az.
Primigenius

1
Một cách khác để có được z từ wilcox.test tiêu chuẩn là thuật toán Andy Fields được triển khai trong hàm rFromWilcox của anh ta . Và vâng, tôi đã đề cập đến kích thước hiệu ứng = z / sqrt (N).
Primigenius

2
Cảm ơn đã làm rõ mặc dù tôi vẫn không chắc chắn về giá trị z đó là thước đo phù hợp của kích thước hiệu ứng. (+1)
chl
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.