Chính xác hai phép thử nhị thức tỷ lệ mẫu trong R (và một số giá trị p lạ)


23

Tôi đang cố gắng giải quyết câu hỏi sau:

Người chơi A thắng 17 trên 25 trận trong khi người chơi B thắng 8 trên 20 - có sự khác biệt đáng kể giữa cả hai tỷ lệ không?

Điều cần làm trong R mà bạn nghĩ đến là:

> prop.test(c(17,8),c(25,20),correct=FALSE)

    2-sample test for equality of proportions without continuity correction

data:  c(17, 8) out of c(25, 20)
X-squared = 3.528, df = 1, p-value = 0.06034
alternative hypothesis: two.sided
95 percent confidence interval:
 -0.002016956  0.562016956
sample estimates:
prop 1 prop 2 
  0.68   0.40 

Vì vậy, thử nghiệm này nói rằng sự khác biệt không đáng kể ở mức độ tin cậy 95%.

Bởi vì chúng tôi biết rằng prop.test()chỉ sử dụng một phép tính gần đúng, tôi muốn làm cho mọi thứ chính xác hơn bằng cách sử dụng một phép thử nhị thức chính xác - và tôi thực hiện cả hai cách:

> binom.test(x=17,n=25,p=8/20)

    Exact binomial test

data:  17 and 25
number of successes = 17, number of trials = 25, p-value = 0.006693
alternative hypothesis: true probability of success is not equal to 0.4
95 percent confidence interval:
 0.4649993 0.8505046
sample estimates:
probability of success 
                  0.68 

> binom.test(x=8,n=20,p=17/25)

    Exact binomial test

data:  8 and 20
number of successes = 8, number of trials = 20, p-value = 0.01377
alternative hypothesis: true probability of success is not equal to 0.68
95 percent confidence interval:
 0.1911901 0.6394574
sample estimates:
probability of success 
                   0.4 

Bây giờ điều này là lạ, phải không? Các giá trị p hoàn toàn khác nhau mỗi lần! Trong cả hai trường hợp, kết quả bây giờ rất cao nhưng giá trị p dường như tăng vọt.

Những câu hỏi của tôi

  1. Tại sao các p-giá trị đó khác nhau mỗi lần?
  2. Làm thế nào để thực hiện một phép thử nhị phân tỷ lệ mẫu chính xác trong R một cách chính xác?

3
Mặc dù hàm R khác nhau ( prop.testvs chisq.test), nhưng cùng một khái niệm cơ bản nằm trong câu hỏi này . Bạn đang chạy ba bài kiểm tra khác nhau với "giả thuyết không" khác nhau trong mỗi ba ví dụ của bạn.
affine

Câu trả lời:


26

Nếu bạn đang tìm kiếm một thử nghiệm 'chính xác' cho hai tỷ lệ nhị thức, tôi tin rằng bạn đang tìm kiếm Thử nghiệm chính xác của Fisher . Trong R, nó được áp dụng như vậy:

> fisher.test(matrix(c(17, 25-17, 8, 20-8), ncol=2))
    Fisher's Exact Test for Count Data
data:  matrix(c(17, 25 - 17, 8, 20 - 8), ncol = 2)
p-value = 0.07671
alternative hypothesis: true odds ratio is not equal to 1
95 percent confidence interval:
  0.7990888 13.0020065
sample estimates:
odds ratio 
  3.101466 

Các fisher.testchức năng chấp nhận một đối tượng ma trận của 'thành công' và 'thất bại' hai tỷ lệ nhị thức. Như bạn có thể thấy, tuy nhiên, giả thuyết hai mặt vẫn không đáng kể, rất tiếc phải nói. Tuy nhiên, thử nghiệm Chính xác của Fisher thường chỉ được áp dụng khi số lượng tế bào thấp (thông thường có nghĩa là 5 hoặc ít hơn nhưng một số người nói là 10), do đó việc sử dụng ban đầu của bạn prop.testlà phù hợp hơn.

Về binom.testcuộc gọi của bạn , bạn đang hiểu nhầm cuộc gọi. Khi bạn chạy, binom.test(x=17,n=25,p=8/20)bạn đang kiểm tra xem tỷ lệ có khác biệt đáng kể so với dân số hay không mà xác suất thành công là 8/20 . Tương tự như vậy với binom.test(x=8,n=20,p=17/25)nói rằng xác suất thành công là 17/25 đó là lý do các p-giá trị khác nhau. Do đó, bạn không so sánh hai tỷ lệ nào cả.


2
Cảm ơn bạn, tôi đã chấp nhận câu trả lời của bạn. Khi bạn nói prop.test là "phù hợp hơn", bạn có ý gì chính xác? Kết quả chính xác hơn là (theo nghĩa đen) được đưa ra bởi Thử nghiệm chính xác của Fisher, phải không?
vonjd

4
Đây thực sự là một cái gì đó được tranh luận giữa các nhà thống kê và tôi không có câu trả lời tuyệt đối. Trong lịch sử, bạn đã tránh được Fisher vì nó trở nên rất phức tạp về mặt tính toán nhưng máy tính lại xoay quanh vấn đề này. Tuy nhiên, nói chung, Kiểm tra chính xác của Fisher là bảo thủ và nếu số của bạn đủ lớn, thống kê chi bình phương (là những gì prop.testtính toán) có nhiều khả năng không phạm lỗi loại II.
cdeterman

Điểm quan trọng đối với tôi là các ngữ nghĩa khác nhau prop.testfisher.test: Cái trước được gọi là prop.test(matrix(c(17, 8, 25, 20), ncol=2))(đưa ra số lần thành công trong cột đầu tiên và số thử nghiệm trong cột thứ hai), trong khi cái sau được gọi là fisher.test(matrix(c(17, 25-17, 8, 20-8), ncol=2))(đưa ra số lần thành công và thất bại ); cho fisher.test, chuyển vị dường như cũng không thay đổi kết quả.
krlmlr

Một sự thay thế mạnh mẽ hơn cũng có sẵn cho các bài kiểm tra 2x2 - en.wikipedia.org/wiki/Barnard%27s_test
Hamy

4

Có một sự khác biệt giữa hai mẫu và một mẫu so với một giả thuyết đã biết. Vì vậy, nếu ai đó lật một đồng xu 100 lần và nhận được 55 lần và giả thuyết là một đồng tiền công bằng, so với hai người lật một đồng xu không công bằng và một người nhận được 55 lần và 45 lần khác. Trong trường hợp trước đây, bạn chỉ đơn giản là cố gắng xác định xem người gửi có vẻ như đang lật một đồng tiền công bằng. Sau này, bạn đang tìm kiếm để xem liệu họ có đang lật những đồng xu có cùng tính công bằng hay không. Bạn có thể thấy nếu bạn nhìn vào từng người chơi theo xác suất đã biết (45 so với 50 và 55 so với 50) khác với so sánh họ với nhau (45 so với 55).


2

Cú pháp của sự binom.testthành công của bạn trong một số thử nghiệm so với ước tính điểm dân số . Mặc dù bạn đã nhập nó dưới dạng p = 8/20, nhưng phép tính như thể đó là một sự thật tuyệt đối được Chúa ban cho 0,4 với phương sai bằng không xung quanh nó. Hoặc như thể bạn đang so sánh 17 trận thắng của người chơi A trong số 25 trận với 8 tỷ trận thắng giả định của người chơi B trong số 20 tỷ trận đấu. Tuy nhiên, prop.testso sánh tỷ lệ 17/25 với tất cả phương sai tiềm năng của nó với tỷ lệ 8/20 với tất cả phương sai của chính nó. Nói cách khác, phương sai khoảng 0,7 (ước tính 17/25) và phương sai khoảng 0,4 có thể chảy vào nhau với kết quả p = 0,06.


Vì vậy, điều này có nghĩa là cách đúng để giải quyết câu hỏi ban đầu là prop.test(c(17,8),c(25,20),correct=FALSE), phải không?
vonjd 17/03/2016

1
Vâng, đó là chính xác. Nếu bạn muốn được hướng dẫn về việc bạn có nên correct = FALSEđấu với hay không correct = TRUEthì tôi khuyên bạn nên đọc các số liệu thống kê sau.stackexchange.com / questions / 185433 / Kẻ
Farrel

2

Trước tiên tôi sẽ đề nghị bạn muốn thực hiện một hiệu chỉnh liên tục, vì bạn đang ước tính phân phối rời rạc với phân phối liên tục (chi bình phương).

Thứ hai, điều quan trọng là phải rõ ràng về cách "thí nghiệm", nếu bạn muốn, được thực hiện. Số lượng trò chơi mà mỗi người chơi đã được xác định trước (hoặc theo tiếng địa phương của ngành, được cố định theo thiết kế)? Nếu vậy, và giả sử thêm kết quả của mỗi người chơi là độc lập với người khác, bạn đang xử lý sản phẩm của 2 phân phối nhị thức. Nếu thay vào đó, số lượng trò chơi được tự do thay đổi (ví dụ: số lượng trò chơi mà mỗi người chơi là các biến số, dựa trên số lượng trò chơi mà mỗi trò chơi có thể hoàn thành trong một khung thời gian cố định), thì bạn đang xử lý Đa nhóm hoặc phân phối Poisson.

Trong trường hợp thứ hai, phép thử chi bình phương (hoặc điều tương tự, phép thử z khác biệt về tỷ lệ) là phù hợp, nhưng trong trường hợp trước thì không. Trong trường hợp đầu tiên, bạn thực sự cần tính toán sản phẩm chính xác của mọi kết quả nhị thức có thể có cho mỗi người chơi và tính tổng các xác suất này cho tất cả các lần xuất hiện bằng hoặc nhỏ hơn xác suất nhị thức chung của các kết quả được quan sát (đơn giản là sản phẩm của 2 nhị thức vì kết quả của mỗi người chơi độc lập với kết quả của người chơi khác).

Trước tiên, hãy nhận ra rằng mục đích chính của bất kỳ thử nghiệm giả thuyết nào là tính toán mức độ "hiếm" hoặc bất thường của kết quả cụ thể mà bạn đã quan sát được, so với tất cả các kết quả có thể khác. Điều này được tính bằng cách tính xác suất của kết quả mà bạn đã quan sát - với giả định rằng giả thuyết khống là đúng - tổng hợp với tất cả các kết quả có thể khác có xác suất bằng hoặc thấp hơn.

Bây giờ nó lặp đi lặp lại rằng những gì chúng ta muốn nói là "hiếm như thế nào" là "xác suất quan sát kết quả thu được thấp đến mức nào so với tất cả các kết quả có thể khác?" Chà, xác suất của kết quả cụ thể mà chúng tôi đã quan sát được là 0,0679 * 0,0793 = 0,005115. Bây giờ hãy xem xét một kết quả thay thế cụ thể: chắc chắn người chơi A có thể thắng 7 trong số 20 trận của mình và người chơi B có thể thắng 13 trong số 25 trận của mình. Xác suất của kết quả này là 0,004959. Lưu ý rằng điều này thấp hơn xác suất kết quả quan sát được của chúng tôi, vì vậy nó nên được đưa vào giá trị p. Nhưng hãy nhìn lại: nếu bạn quyết định sẽ đưa vào kết quả nào trong tổng của bạn dựa trên việc liệu chênh lệch tỷ lệ có vượt quá chênh lệch về tỷ lệ trong kết quả quan sát được của chúng tôi hay không, xác suất này sẽ bị loại trừ! Tại sao? Bởi vì sự khác biệt về tỷ lệ cho kết quả cụ thể này nhỏ hơn sự khác biệt về tỷ lệ cho kết quả quan sát được của chúng tôi. Nhưng đây không phải là trọng tâm đúng đắn - chúng ta phải quan tâm đến xác suất của kết quả cụ thể này và liệu nó có bằng hoặc ít hơn xác suất của kết quả mà chúng ta đã quan sát được không!

Một lời giải thích chính thức tốt về điều này có thể được tìm thấy ở đây:

http://data.princeton.edu/wws509/notes/c5.pdf

Xin lưu ý cụ thể tuyên bố trên trang 9 rằng "Nếu lề hàng cố định và sơ đồ lấy mẫu là nhị thức thì chúng ta phải sử dụng mô hình nhị thức của sản phẩm, vì chúng ta không thể ước tính phân phối chung cho hai biến mà không có thêm thông tin."


Đối với mã R tính toán tổng xác suất nhị thức chung có xác suất xảy ra bằng hoặc thấp hơn so với xác suất của kết quả quan sát được, hãy xem câu trả lời cho bài đăng liên quan sau: stats.stackexchange.com/questions/213295/.
dùng221943
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.