Thử nghiệm không tham số nếu hai mẫu được rút ra từ cùng một phân phối


19

Tôi muốn kiểm tra giả thuyết rằng hai mẫu được rút ra từ cùng một quần thể, mà không đưa ra bất kỳ giả định nào về sự phân bố của các mẫu hoặc dân số. Làm thế nào tôi nên làm điều này?

Từ Wikipedia, ấn tượng của tôi là bài kiểm tra Mann Whitney U phải phù hợp, nhưng dường như nó không hiệu quả với tôi trong thực tế.

Để cụ thể, tôi đã tạo một tập dữ liệu với hai mẫu (a, b) lớn (n = 10000) và được rút ra từ hai quần thể không bình thường (bimodal), tương tự (cùng nghĩa), nhưng khác nhau (độ lệch chuẩn xung quanh "bướu.") Tôi đang tìm kiếm một xét nghiệm sẽ nhận ra rằng các mẫu này không cùng thuộc một quần thể.

Chế độ xem biểu đồ:

mẫu lưỡng kim

Mã R:

a <- tibble(group = "a",
            n = c(rnorm(1e4, mean=50, sd=10),
                  rnorm(1e4, mean=100, sd=10)))
b <- tibble(group = "b",
            n = c(rnorm(1e4, mean=50, sd=3),
                  rnorm(1e4, mean=100, sd=3)))
ggplot(rbind(a,b), aes(x=n, fill=group)) +
  geom_histogram(position='dodge', bins=100)

Dưới đây là thử nghiệm Mann Whitney đáng ngạc nhiên (?) Không bác bỏ giả thuyết khống cho rằng các mẫu từ cùng một quần thể:

> wilcox.test(n ~ group, rbind(a,b))

        Wilcoxon rank sum test with continuity correction

data:  n by group
W = 199990000, p-value = 0.9932
alternative hypothesis: true location shift is not equal to 0

Cứu giúp! Tôi nên cập nhật mã như thế nào để phát hiện các bản phân phối khác nhau? (Tôi đặc biệt muốn một phương pháp dựa trên ngẫu nhiên chung / lấy mẫu lại nếu có.)

CHỈNH SỬA:

Cảm ơn mọi người vì câu trả lời! Tôi rất hào hứng tìm hiểu thêm về KolmogorovTHER Smirnov có vẻ rất phù hợp với mục đích của tôi.

Tôi hiểu rằng xét nghiệm KS đang so sánh các ECDF này của hai mẫu:

ECDF

Ở đây tôi có thể thấy trực quan ba tính năng thú vị. (1) Các mẫu từ các bản phân phối khác nhau. (2) A rõ ràng ở trên B tại một số điểm nhất định. (3) A rõ ràng dưới B ở một số điểm khác.

Thử nghiệm KS dường như có thể đưa ra giả thuyết - kiểm tra từng tính năng sau:

> ks.test(a$n, b$n)

        Two-sample Kolmogorov-Smirnov test

data:  a$n and b$n
D = 0.1364, p-value < 2.2e-16
alternative hypothesis: two-sided

> ks.test(a$n, b$n, alternative="greater")

        Two-sample Kolmogorov-Smirnov test

data:  a$n and b$n
D^+ = 0.1364, p-value < 2.2e-16
alternative hypothesis: the CDF of x lies above that of y

> ks.test(a$n, b$n, alternative="less")

        Two-sample Kolmogorov-Smirnov test

data:  a$n and b$n
D^- = 0.1322, p-value < 2.2e-16
alternative hypothesis: the CDF of x lies below that of y

Đó là thực sự gọn gàng! Tôi có một mối quan tâm thực tế đối với từng tính năng này và vì vậy thật tuyệt khi thử nghiệm KS có thể kiểm tra từng tính năng đó.


Không quá ngạc nhiên khi MW không từ chối. Đối với thử nghiệm một phía, nó sẽ kiểm tra xem Pr (a> b) <0,05 trong đó a và b là thành viên được chọn ngẫu nhiên trong quần thể của bạn.
mdewey

1
Giả thuyết về Mann-Whitney đôi khi được cho là liên quan đến "vị trí" của hai nhóm, hoặc một cái gì đó dọc theo sự khác biệt ngẫu nhiên có hệ thống. Trong trường hợp dữ liệu của bạn, cả hai nhóm được phân phối đối xứng khoảng 75, do đó, MW chắc chắn không tìm thấy sự khác biệt.
Sal Mangiafico

4
Đây là một ví dụ tốt về sự nhầm lẫn mà chúng ta gieo khi chúng ta không rõ ràng về giả thuyết cho một bài kiểm tra. Thật không may, mọi người được dạy sử dụng một t- test để so sánh hai nhóm, mà không thực sự nghĩ rằng thử nghiệm này so sánh hai phương tiện , trong khi đó có một thử nghiệm trung bình để so sánh hai trung vị , Mann-Whitney so sánh một thứ khác, hồi quy lượng tử để so sánh các phần trăm khác , các thử nghiệm để so sánh phương sai, Kolmogorov-Smirnov để so sánh các phân phối, v.v ... Đôi khi chúng tôi chỉ nói rằng chúng tôi muốn so sánh hai "quần thể" mà không rõ ràng giả thuyết nào chúng tôi thực sự muốn kiểm tra.
Sal Mangiafico

Về sự phản ánh, có vẻ như trang Wikipedia cho thử nghiệm MW nêu rõ giả thuyết này và đó là một sự hiểu lầm (bước nhảy vọt vô căn cứ) về phía tôi khi cho rằng giả thuyết này cũng ngụ ý rằng các mẫu đến từ cùng một phân phối. Thật vậy, vấn đề trở nên rõ ràng khi so sánh hai phân phối khác nhau đối xứng xung quanh cùng một điểm trung tâm.
Luke Gorrie

Câu trả lời:


17

Thử nghiệm Kolmogorov-Smirnov là cách phổ biến nhất để làm điều này, nhưng cũng có một số tùy chọn khác.

Các thử nghiệm dựa trên các hàm phân phối tích lũy theo kinh nghiệm. Thủ tục cơ bản là:

  • Lp
  • Chỉ ra sự phân phối của thống kê kiểm tra theo giả thuyết null rằng các mẫu đến từ cùng một phân phối (may mắn là mọi người đã thực hiện điều này cho các khoảng cách phổ biến nhất!)
  • αα%

L

ks.test(a,b)

p

L2dgofcvm.test()

CHỈNH SỬA:

nm

Để biến điều này thành một quy trình kiểu lấy mẫu, chúng ta có thể làm như sau:

  1. nmnm
  2. Tính số liệu khoảng cách của bạn cho các mẫu. Đối với bài kiểm tra KS, đây chỉ là mức tối đa. sự khác biệt giữa các CDF theo kinh nghiệm.
  3. Lưu trữ kết quả và quay lại bước 1.

Cuối cùng, bạn sẽ xây dựng rất nhiều mẫu từ phân phối thống kê kiểm tra theo giả thuyết null, có số lượng mà bạn có thể sử dụng để tiến hành kiểm tra giả thuyết của mình ở bất kỳ mức độ quan trọng nào bạn muốn. Đối với thống kê kiểm tra KS, phân phối này được gọi là phân phối Kolmogorov.

Lưu ý rằng đối với thử nghiệm KS, đây chỉ là một sự lãng phí nỗ lực tính toán vì các lượng tử được đặc trưng rất đơn giản về mặt lý thuyết, nhưng quy trình này thường được áp dụng cho bất kỳ thử nghiệm giả thuyết nào.


Cảm ơn bạn! Thử nghiệm Kolmogorov-Smirnov thực sự bác bỏ giả thuyết khống rằng các mẫu này là từ cùng một quần thể. Và theo trực giác, sẽ hợp lý khi so sánh các ECDF vì đó ít nhiều là những gì tôi đang làm một cách trực quan với biểu đồ. Câu hỏi: Giả sử rằng tôi cần thực hiện kiểm tra này từ đầu mà không cần bất kỳ công cụ nào như R. Có phương pháp đơn giản nào đủ dùng không? (Có lẽ dựa trên bootstrapping?) Tôi hỏi bởi vì nền tảng của tôi là lập trình máy tính và tôi thấy các phương pháp dựa trên mô phỏng dễ hiểu hơn nhiều.
Luke Gorrie

Bạn nên xem xét ngẫu nhiên hoặc hoán vị. Tôi thích những thứ này cho các bài kiểm tra không bình thường. Họ cũng đáp ứng các tiêu chí của bạn là mô phỏng hơn là thống kê
RTbecard

2
@JamesAdamCampbell bạn có thể mở rộng về điều đó một chút trong một câu trả lời khác không?
Sẽ

1
L

1
Tôi không thấy bất kỳ vấn đề với điều đó. Tôi rất muốn xem kết quả nếu bạn thử một số thứ này! Sẽ rất tuyệt để xem liệu cách tiếp cận CI và kiểm tra KS thẳng luôn luôn cho bạn câu trả lời tương tự. Tôi nghi ngờ họ làm :)
Will
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.