Kiểm tra thống kê nào để sử dụng cho kiểm tra A / B?


12

Chúng tôi có hai đoàn hệ gồm 1000 mẫu mỗi mẫu. Chúng tôi đo 2 lượng trên mỗi đoàn hệ. Cái đầu tiên là một biến nhị phân. Thứ hai là một số thực theo sau một phân phối đuôi nặng. Chúng tôi muốn đánh giá đoàn hệ nào hoạt động tốt nhất cho từng số liệu. Có rất nhiều bài kiểm tra thống kê để lựa chọn: mọi người đề xuất kiểm tra z, những người khác sử dụng bài kiểm tra t và những bài kiểm tra khác MannTHER Whitney U.

  • Những bài kiểm tra hoặc bài kiểm tra nào chúng ta nên chọn cho mỗi số liệu cho trường hợp của chúng tôi?
  • Điều gì xảy ra nếu một thử nghiệm cho thấy sự khác biệt đáng kể giữa các đoàn hệ và một số thử nghiệm khác cho thấy sự khác biệt không đáng kể?

Câu trả lời:


12

Cho rằng hai số liệu của bạn là 1) nhị phân và 2) đuôi nặng, bạn nên tránh kiểm tra t giả định phân phối bình thường.

Tôi nghĩ Mann-Whitney U là sự lựa chọn tốt nhất của bạn và phải đủ hiệu quả ngay cả khi các bản phân phối của bạn gần như bình thường.

Về câu hỏi thứ hai của bạn:

Điều gì xảy ra nếu một thử nghiệm cho thấy sự khác biệt đáng kể giữa các đoàn hệ và một số thử nghiệm khác cho thấy sự khác biệt không đáng kể?

Điều này không có gì lạ nếu sự khác biệt thống kê là đường biên và dữ liệu có các phân phối mẫu "lộn xộn". Tình huống này đòi hỏi nhà phân tích phải xem xét cẩn thận tất cả các giả định và giới hạn của từng kiểm tra thống kê và đưa ra trọng số lớn nhất cho kiểm tra thống kê có số lượng vi phạm giả định ít nhất.

Lấy giả định phân phối chuẩn. Có nhiều thử nghiệm khác nhau cho tính quy phạm, nhưng đó không phải là kết thúc của câu chuyện. Một số thử nghiệm hoạt động khá tốt trên các phân phối đối xứng ngay cả khi có một số sai lệch so với tính quy tắc, nhưng không hoạt động tốt trên các phân phối lệch.

Theo nguyên tắc chung, tôi khuyên bạn không nên chạy bất kỳ thử nghiệm nào khi bất kỳ giả định nào của nó bị vi phạm rõ ràng.

EDIT: Đối với biến thứ hai, có thể khả thi để biến đổi biến thành biến thường được phân phối (hoặc ít nhất là gần) miễn là biến đổi được giữ nguyên trật tự. Bạn cần có sự tự tin tốt rằng biến đổi mang lại phân phối bình thường cho cả hai đoàn hệ. Nếu bạn khớp biến thứ hai với phân phối log-normal, thì hàm log sẽ biến nó thành phân phối chuẩn. Nhưng nếu phân phối là Pareto (luật sức mạnh), thì không có sự chuyển đổi thành phân phối bình thường.

EDIT: Như được đề xuất trong nhận xét này , bạn chắc chắn nên xem Dự toán Bayes như một phương án thay thế cho thử nghiệm t và thử nghiệm Ý nghĩa Giả thuyết Null khác (NHST).


Cảm ơn bạn về thông tin. Tôi không đủ rõ ràng, tôi có hai đại lượng một trong số đó là nhị phân và một số khác là số thực sau phân phối đuôi nặng. Tôi đã chỉnh sửa câu hỏi để làm rõ điều này.
iliasfl

Vâng, tôi nghĩ rằng tôi hiểu. Bạn muốn chạy thử nghiệm hai lần, một lần trên biến nhị phân và một lần trên biến thực (phân phối đuôi nặng). Tôi khuyên bạn nên chạy Mann-Whitney U cho cả hai.

Tại sao một Mann-Whitney sẽ phù hợp với dữ liệu nhị phân?
Glen_b -Reinstate Monica

Mann-Whitney U có hiệu quả đối với các phân phối không bình thường, bao gồm các phân phối rời rạc với hai giá trị (tức là nhị phân). Nếu tất cả dữ liệu là nhị phân, thì có lẽ một thử nghiệm khác sẽ hoạt động tốt hơn.
MrMeritology

Ai đó có thể xác nhận xem điều này có đúng không? ...

7

Đối với dữ liệu có giá trị thực, bạn cũng có thể muốn xem xét việc tạo thống kê kiểm tra của riêng mình dựa trên cơ sở dữ liệu của bạn. Cách tiếp cận này có xu hướng tạo ra kết quả chính xác khi bạn xử lý các phân phối dân số không bình thường hoặc cố gắng phát triển khoảng tin cậy xung quanh một tham số không có giải pháp phân tích thuận tiện. (Cái trước là đúng trong trường hợp của bạn. Tôi chỉ đề cập cái sau cho ngữ cảnh.)

Đối với dữ liệu có giá trị thực của bạn, bạn sẽ làm như sau:

  1. Pool hai đoàn hệ của bạn.
  2. Từ nhóm, lấy mẫu hai nhóm gồm 1000 phần tử, với sự thay thế.
  3. Tính hiệu số trung bình mẫu giữa hai nhóm.
  4. Lặp lại các bước 2 và 3 một vài nghìn lần để phát triển phân phối các khác biệt này.

Khi bạn đã có phân phối đó, hãy tính chênh lệch về phương tiện cho các mẫu thực tế của bạn và tính giá trị p.


Cảm ơn, vì vậy bạn kết thúc với một phân phối, điều này là bình thường với một số độ lệch chuẩn và trung bình. Làm thế nào bạn sẽ tính toán giá trị p từ đó, và có thể các khoảng tin cậy, để quyết định người chiến thắng (nếu có)?
iliasfl

Việc phân phối sẽ không nhất thiết là bình thường. Nó sẽ có khoảng phân phối của bất cứ thứ gì nó được lấy mẫu từ đó. Đó là vẻ đẹp của việc sử dụng bootstrap. Trong mọi trường hợp, bạn nhận được giá trị p bằng cách tính toán thống kê kiểm tra từ kết quả thực tế của bạn. Tức là sự khác biệt của các phương tiện của mỗi đoàn hệ. Sau đó so sánh số đó với phân phối. Tỷ lệ phần trăm bạn nhận được là giá trị p của bạn cho một thử nghiệm một phía cho sự khác biệt về ý nghĩa.
Nathan Gould

4
Những gì Nathan đang mô tả cũng là cơ sở cho các phương pháp thử nghiệm ý nghĩa của Bayes. Tôi đã sử dụng (và hiện đang sử dụng) Dự toán Bayes thay thế cho phương pháp T-Test (TỐT NHẤT). Bạn nên xem xét khuôn khổ đó nếu bạn có ý định thực hiện một cách tiếp cận tổng hợp.
cwharland

0

Tôi thứ hai @ câu trả lời của MrMeritology. Trên thực tế, tôi đã tự hỏi liệu thử nghiệm MWU sẽ kém mạnh mẽ hơn so với thử nghiệm tỷ lệ độc lập, vì các sách giáo khoa tôi đã học và sử dụng để dạy rằng MWU chỉ có thể được áp dụng cho dữ liệu thứ tự (hoặc khoảng / tỷ lệ).

Nhưng kết quả mô phỏng của tôi, được vẽ dưới đây, chỉ ra rằng thử nghiệm MWU thực sự mạnh hơn một chút so với thử nghiệm tỷ lệ, trong khi kiểm soát lỗi loại I tốt (ở tỷ lệ dân số của nhóm 1 = 0,50).

nhập mô tả hình ảnh ở đây

Tỷ lệ dân số của nhóm 2 được giữ ở mức 0,5. Số lần lặp là 10.000 tại mỗi điểm. Tôi đã lặp lại mô phỏng mà không cần hiệu chỉnh của Yate nhưng kết quả vẫn như vậy.

library(reshape)

MakeBinaryData <- function(n1, n2, p1){
  y <- c(rbinom(n1, 1, p1), 
        rbinom(n2, 1, 0.5))
  g_f <- factor(c(rep("g1", n1), rep("g2", n2)))
  d <- data.frame(y, g_f)
  return(d)
}

GetPower <- function(n_iter, n1, n2, p1, alpha=0.05, type="proportion", ...){
  if(type=="proportion") {
    p_v <- replicate(n_iter, prop.test(table(MakeBinaryData(n1, n1, p1)), ...)$p.value)
  }

  if(type=="MWU") {
    p_v <- replicate(n_iter, wilcox.test(y~g_f, data=MakeBinaryData(n1, n1, p1))$p.value)
  }

  empirical_power <- sum(p_v<alpha)/n_iter
  return(empirical_power)
}

p1_v <- seq(0.5, 0.6, 0.01)
set.seed(1)
power_proptest <- sapply(p1_v, function(x) GetPower(10000, 1000, 1000, x))
power_mwu <- sapply(p1_v, function(x) GetPower(10000, 1000, 1000, x, type="MWU"))

ảnh kết quả của bạn toàn màu đen
Ooker
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.