Làm cách nào để diễn giải Mann-Whitney U khi sử dụng giao diện công thức của R


9

Nói rằng chúng tôi có các dữ liệu sau:

set.seed(123)
data <- data.frame(x = c(rnorm(50, 1, 1), rnorm(50, 5, 2)),
                   y = c(rep('A', 50),    rep('B', 50)))

Mà mang lại boxplot sau ( boxplot(data$x ~ data$y)):

boxplot

Bây giờ hãy nói rằng tôi muốn kiểm tra xem hai mẫu có cùng tham số vị trí không (trung vị và / hoặc trung bình). Trong trường hợp thực tế của tôi, dữ liệu rõ ràng là không bình thường , vì vậy tôi đã quyết định chạy thử nghiệm Wilcoxon-Mann-Whitney, như thế này:

wilcox.test(data$x ~ data$y)

Tuy nhiên, tôi muốn giả thuyết thay thế là data$yyếu tố "thứ hai" của B , xuất phát từ một phân phối với các tham số vị trí cao hơn. Tôi đã thử đặt alternativetham số thành "lớn hơn" và "ít hơn", nhưng rõ ràng các giả thuyết thay thế không phải là thứ tôi đang tìm kiếm. Ví dụ: alternative = "greater"cho tôi biết "giả thuyết thay thế: sự thay đổi vị trí thực sự lớn hơn 0"; alternative = "less"cho tôi biết "giả thuyết thay thế: sự thay đổi vị trí thực sự nhỏ hơn 0".

Làm cách nào tôi có thể điều chỉnh wilcox.test()chức năng để có giả thuyết thay thế mà tôi muốn (B đến từ một phân phối có tham số vị trí cao hơn A)? Hoặc tôi chỉ nên sử dụng một thử nghiệm khác thay thế?


3
Hãy suy nghĩ về "dịch chuyển vị trí" nghĩa là gì.
Roland

1
Theo nghĩa nào thì dữ liệu của bạn không bình thường. Dựa trên các ô vuông (có thể không phải là cách tốt nhất để quyết định, nhưng những gì ở đó) chắc chắn chúng trông đủ bình thường. Hơn nữa, bạn đã tạo dữ liệu của mình w / rnorm(), vì vậy chúng phải bình thường . Tôi tự hỏi nếu bạn bối rối về bản chất của giả định về tính quy tắc; nó có thể giúp bạn đọc chủ đề này: Điều gì xảy ra nếu phần dư được phân phối bình thường nhưng y thì không .
gung - Phục hồi Monica

1
Tôi chỉ mở rộng quan điểm của @ Roland nhưng tại sao bạn nghĩ có vấn đề? Nó dường như cung cấp cho bạn chính xác những gì bạn muốn.
Gala

3
P(X>Y)>12

2
(ctd) ... Mặt khác, bạn đã nói tại một thời điểm "* Tôi muốn kiểm tra xem hai mẫu có đến từ cùng một phân phối *"; vì có nhiều cách để điều đó sai hơn là xu hướng một biến trở nên cao hơn (ví dụ: sự thay đổi về độ biến thiên với các vị trí tương tự hoặc thay đổi độ lệch hoặc đỉnh), nếu bạn thực sự chỉ muốn kiểm tra sự bằng nhau của phân phối so với sự bất bình đẳng của chúng có lẽ bạn nên xem xét hai mẫu Kolmogorov-Smirnov. Nếu bạn quan tâm đến một sự thay thế 'có xu hướng lớn hơn', thì WMW sẽ ổn thôi.
Glen_b -Reinstate Monica

Câu trả lời:


9

Về mặt kỹ thuật, danh mục tham chiếu và hướng của thử nghiệm phụ thuộc vào cách mã hóa biến nhân tố. Với dữ liệu đồ chơi của bạn:

> wilcox.test(x ~ y, data=data, alternative="greater")

    Wilcoxon rank sum test with continuity correction

data:  x by y 
W = 52, p-value = 1
alternative hypothesis: true location shift is greater than 0 

> wilcox.test(x ~ y, data=data, alternative="less")

    Wilcoxon rank sum test with continuity correction

data:  x by y 
W = 52, p-value < 2.2e-16
alternative hypothesis: true location shift is less than 0 

Lưu ý rằng thống kê W là giống nhau trong cả hai trường hợp nhưng thử nghiệm sử dụng các đuôi đối diện phân phối lấy mẫu của nó. Bây giờ hãy xem biến nhân tố:

> levels(data$y)
[1] "A" "B"

Chúng ta có thể mã hóa lại để biến "B" thành cấp độ đầu tiên:

> data$y <- factor(data$y, levels=c("B", "A"))

Bây giờ chúng tôi có:

> levels(data$y)
[1] "B" "A"

Lưu ý rằng chúng tôi đã không tự thay đổi dữ liệu , chỉ là cách biến phân loại được mã hóa theo kiểu mui xe:

> head(data)
          x y
1 0.4395244 A
2 0.7698225 A
3 2.5587083 A
4 1.0705084 A
5 1.1292877 A
6 2.7150650 A

> aggregate(data$x, by=list(data$y), mean)
  Group.1        x
1       B 5.292817
2       A 1.034404

Nhưng các hướng của bài kiểm tra hiện đang đảo ngược:

> wilcox.test(x ~ y, data=data, alternative="greater")

    Wilcoxon rank sum test with continuity correction

data:  x by y 
W = 2448, p-value < 2.2e-16
alternative hypothesis: true location shift is greater than 0 

Thống kê W là khác nhau nhưng giá trị p là giống nhau so với alternative="less"thử nghiệm với các loại theo thứ tự ban đầu. Với dữ liệu gốc, nó có thể được hiểu là dịch chuyển vị trí từ B sang A nhỏ hơn 0 và với dữ liệu được mã hóa lại, nó trở thành dịch chuyển vị trí từ A sang B lớn hơn 0 nhưng đây thực sự là giả thuyết tương tự (nhưng hãy xem ý kiến ​​của Glen_b cho câu hỏi để giải thích chính xác).

Do đó, trong trường hợp của bạn, có vẻ như bài kiểm tra bạn muốn là alternative="less"(hoặc, tương đương, alternative="greater"với dữ liệu được mã hóa lại). cái đó có giúp ích không?


Mm, có vẻ như bạn đang ở một cái gì đó ở đó, Gaël. Tôi sẽ nghiên cứu câu trả lời của bạn và nhận lại, cảm ơn vì sự giúp đỡ!
Waldir Leoncio

Ok, vì vậy tôi đoán "lớn hơn" trong trường hợp này luôn liên quan đến cấp độ "đầu tiên", phải không? Ok, điều đó có ích và tôi nghĩ nó giải quyết vụ việc. Cảm ơn một lần nữa!
Waldir Leoncio

Tôi chỉ gặp vấn đề chính xác này. Cảm ơn lời giải thích tuyệt vời!
Davy Kavanagh
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.