Thử nghiệm tổng xếp hạng Wilcoxon có phải là thử nghiệm phù hợp để xem tổng số đóng góp có khác nhau không?


8

Lý lịch:

Phần mềm của tôi yêu cầu người dùng đóng góp tùy chọn với bất kỳ số tiền nào. Tôi chia các yêu cầu quyên góp thử nghiệm giữa những người dùng để tìm ra cách tốt nhất để hỏi: 50% nhận yêu cầu phiên bản 1, 50% nhận yêu cầu phiên bản 2 và chúng tôi xem cái nào tốt hơn.

Hầu như tất cả người dùng cho $ 0, nhưng một số ít đóng góp. Các kết quả có thể trông như thế này:

         Number of users  Number of donations   Dollar amounts donated
GROUP A  10,000           10                    40,20,20,20,15,10,10,5,5,5
GROUP B  10,000           15                    50,20,10,10,10,10,10,10,5,5,5,5,5,5,5

Tôi muốn biết nếu một nhóm là người chiến thắng, hoặc nếu đó là hòa, hoặc nếu chúng tôi cần một mẫu lớn hơn để đảm bảo. (Ví dụ này, được giữ đơn giản để thảo luận, gần như chắc chắn cần một mẫu lớn hơn để có kết quả quan trọng.)

Những gì tôi đo được:

  1. Có phải một nhóm có số lượng đóng góp lớn hơn đáng kể ? Lớn hơn bao nhiêu? Tôi đo giá trị p và khoảng tin cậy này bằng công cụ ABBA Thumbtack , chỉ sử dụng số lượng đóng góp và số lượng người dùng, bỏ qua số tiền đô la. Phương pháp của nó được mô tả trong phần "Thống kê cơ bản là gì?" phần của liên kết đó. (Nó nằm trên đầu tôi, nhưng tôi tin rằng nó tính toán khoảng tin cậy bằng cách lấy chênh lệch giữa tỷ lệ quyên góp làm biến ngẫu nhiên bình thường trên khoảng Agresti-Couli.)
  2. Đã một nhóm quyên góp một số tiền khác nhau đáng kể tổng tiền ? Tôi đo giá trị p này bằng cách thực hiện kiểm tra hoán vị: liên tục xáo trộn lại tất cả các đối tượng 2N thành 2 nhóm đối tượng N, đo lường sự khác biệt về tổng tiền giữa các nhóm mỗi lần và tìm tỷ lệ xáo trộn với chênh lệch> = quan sát được Sự khác biệt. (Tôi tin rằng điều này là hợp lệ dựa trên video này của Khan Academy làm điều tương tự cho các cracker thay vì đô la.)

R's wilcox.test:

Một vài câu hỏi bây giờ về wilcox.test()R:

  1. Nếu tôi cung cấp wilcox.test(paired=FALSE)bảng dữ liệu ở trên, nó có trả lời bất kỳ câu hỏi mới nào chưa được trả lời bởi các công cụ của tôi ở trên không, giúp tôi hiểu rõ hơn về việc quyết định có nên tiếp tục chạy thử nghiệm / tuyên bố người chiến thắng / tuyên bố hòa không?
  2. Nếu vậy, câu hỏi chính xác nó sẽ trả lời?

Bạn có thể mô tả hai điều bạn đang làm trong câu hỏi, thay vì dựa vào các liên kết? Cái thứ hai đặc biệt liên kết đến một video, mà tôi, và mong đợi những người khác, sẽ không dành thời gian để xem để tìm ra những gì bạn đang hỏi.
Aaron rời Stack Overflow

1
Câu hỏi này rõ ràng về việc hiểu làm thế nào các bài kiểm tra khác nhau liên quan đến mục tiêu nghiên cứu. Nó hầu như không có bất kỳ kết nối với mã hóa. Đây là chủ đề ở đây, và sẽ lạc đề trên Stack Overflow .
gung - Tái lập Monica

@Aaron: xong rồi. Cảm ơn vì bạn đã phản hồi. Tôi sợ bức tường văn bản sẽ ngăn cản mọi người đọc câu hỏi ngay từ đầu. Khó phân tách kiểm tra qusetions của tôi để tối ưu hóa cho câu trả lời trên CrossValidated;)
Michael Gundlach

Câu trả lời:


7

wilcox.test()pairedRFALSEBạn

Điều đó không tấn công tôi như là một phù hợp tốt cho mục tiêu của bạn. Bạn muốn có tổng số tiền nhiều nhất, có thể hiểu là số tiền quyên góp trung bình lớn nhất nhân với số lượng người dùng. Có thể, do sai lệch, một phiên bản có thể có giá trị trung bình / tổng lớn nhất, nhưng phiên bản kia lớn hơn một cách ngẫu nhiên. (Nếu đó là trường hợp, bạn sẽ muốn phiên bản cũ.) Bởi vì đây là điều bạn muốn cuối cùng, một bài kiểm tra dành riêng cho khía cạnh đó của bản phân phối là phù hợp nhất với bạn.

t

p

A            = c(rep(0, 9990), 40,20,20,20,15,10,10,5,5,5)
B            = c(rep(0, 9985), 50,20,10,10,10,10,10,10,5,5,5,5,5,5,5)
realized.dif = mean(B)-mean(A);  realized.dif  # [1] 0.0015

set.seed(6497)
donations = stack(list(A=A, B=B))
values    = donations$values
ind       = donations$ind
difs      = vector(length=1000)
for(i in 1:1000){
  ind     = sample(ind)
  difs[i] = mean(values[ind=="B"])-mean(values[ind=="A"])
}
difs = sort(difs)
mean(difs>=realized.dif)    # [1] 0.459  # a 1-tailed test, if Ha: B>A a-priori
mean(difs>=realized.dif)*2  # [1] 0.918  # a 2-tailed test

RzRprop.test()

prop.test(rbind(c(10, 9990),
                c(15, 9985) ))
#  2-sample test for equality of proportions with continuity correction
# 
# data:  rbind(c(10, 9990), c(15, 9985))
# X-squared = 0.6408, df = 1, p-value = 0.4234
# alternative hypothesis: two.sided
# 95 percent confidence interval:
#   -0.0015793448  0.0005793448
# sample estimates:
# prop 1 prop 2 
# 0.0010 0.0015 

Câu trả lời hay và +2 nếu tôi có thể cho liên kết ABBA. :)
Aaron rời khỏi Stack Overflow

+1 Thảo luận tốt, đặc biệt là về so sánh các phương tiện. Lưu ý rằng vì không có đóng góp lớn, ví dụ trong câu hỏi có phân phối lấy mẫu gần như bình thường. Số lượng đóng góp của một giá trị nhất định trong nhóm A là Binomial và, với độ chính xác cao, tất cả các số lượng như vậy là độc lập. Các bài kiểm tra t nên hoạt động tốt. Đây là một âm mưu của phân phối null : b <- function(n) dbinom(0:n, n, 1/2); p <- apply(expand.grid(b(1), b(1), b(4), b(6), b(10)), 1, prod); n <- as.matrix(expand.grid(0:1, 0:1, 0:4, 0:6, 0:10)) %*% c(50,40,20,10,5); plot(dist <- aggregate(p, list(n), sum)).
whuber

1
Tôi không quan trọng, nhưng đây là nơi tôi sẽ đến: bằng cách kiểm tra số lượng đóng góp cao nhất, bạn có thể nhanh chóng quyết định có nên sử dụng thử nghiệm t hay không. Nếu bạn không thể, sự khác biệt về phương tiện sẽ phụ thuộc mạnh mẽ vào một vài ngoại lệ đó và do đó dường như không đáng kể. Những quan sát này đơn giản hóa việc phân tích và họ cũng đề nghị người ta có thể dựa vào các tính toán kích thước mẫu dựa trên lý thuyết thông thường để ước tính mức độ cần thiết của một mẫu. Mặc dù tốt hơn, sẽ là sử dụng một thiết kế lấy mẫu liên tiếp.
whuber

1
@Torvon để kiểm tra hoán vị? Có rất nhiều, nhưng tôi nghi ngờ bạn cần một thứ - đây là một kỹ thuật khá phổ biến và được thiết lập.
gung - Phục hồi Monica

1
@Torvon, thay vì chỉ đơn giản là tính toán sự khác biệt trung bình và lưu trữ nó, hãy chạy một MW U và lưu trữ nó.
gung - Phục hồi Monica

1

Câu trả lời của @ gung là đúng. Nhưng tôi sẽ nói thêm rằng vì dữ liệu của bạn có thể bị sai lệch, với một cái đuôi bên phải rất lớn, giá trị trung bình có thể không mạnh mẽ và do đó nó có thể không phải là chỉ số "đúng" để thể hiện tính trung tâm của phân phối của bạn. Do đó, tôi cũng sẽ thử với các giải pháp mạnh mẽ hơn như trung bình hoặc phương tiện cắt ngắn.


4
Một trong những điểm quan trọng nhất của @ gung là phương tiện trung bình và cắt ngắn có khả năng không liên quan. (Xem đoạn văn "phù hợp với mục tiêu của bạn.") Chúng tôi quan tâm nhất đến việc quyên góp có ý nghĩa. Vì vậy, mặc dù các giải pháp mạnh mẽ của bạn có thể đơn giản về mặt thủ tục để sử dụng, nhưng việc trả lời đúng cho câu hỏi sai có thể giúp ích rất ít - hoặc thậm chí tệ hơn.
whuber
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.