Persis dua sampel proporsi uji binomial dalam R (dan beberapa nilai p aneh)


23

Saya mencoba menyelesaikan pertanyaan berikut:

Pemain A memenangkan 17 dari 25 pertandingan sementara pemain B memenangkan 8 dari 20 - apakah ada perbedaan yang signifikan antara kedua rasio?

Hal yang harus dilakukan dalam R yang terlintas dalam pikiran adalah sebagai berikut:

> 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 

Jadi tes ini mengatakan bahwa perbedaannya tidak signifikan pada tingkat kepercayaan 95%.

Karena kita tahu bahwa prop.test()hanya menggunakan perkiraan saya ingin membuat hal-hal lebih tepat dengan menggunakan tes binomial yang tepat - dan saya melakukannya dengan dua cara:

> 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 

Sekarang ini aneh, bukan? Nilai-p sangat berbeda setiap kali! Dalam kedua kasus sekarang hasilnya (sangat) signifikan tetapi nilai-p tampaknya melompat agak sembarangan.

Pertanyaan saya

  1. Mengapa p-nilai yang berbeda setiap kali?
  2. Bagaimana cara melakukan uji binomial proporsi dua sampel dengan tepat di R dengan benar?

3
Meskipun fungsi R berbeda ( prop.testvs chisq.test), konsep dasar yang sama ada dalam pertanyaan ini . Anda menjalankan tiga tes berbeda dengan "hipotesis nol" yang berbeda di masing-masing tiga contoh Anda.
Affine

Jawaban:


26

Jika Anda mencari tes 'tepat' untuk dua proporsi binomial, saya yakin Anda sedang mencari Fisher Exact Test . Dalam R diterapkan seperti:

> 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 

The fisher.testFungsi menerima benda matriks 'keberhasilan' dan 'kegagalan' dua proporsi binomial. Seperti yang Anda lihat, hipotesis dua sisi masih tidak signifikan, maaf untuk mengatakan. Namun, uji Exact Fisher biasanya hanya diterapkan ketika jumlah sel rendah (biasanya ini berarti 5 atau kurang tetapi beberapa mengatakan 10), oleh karena itu penggunaan awal Anda prop.testlebih tepat.

Mengenai binom.testpanggilan Anda, Anda salah memahami panggilan. Ketika Anda menjalankan binom.test(x=17,n=25,p=8/20)Anda sedang menguji apakah proporsi secara signifikan berbeda dari populasi di mana probabilitas keberhasilan adalah 8/20 . Demikian juga dengan binom.test(x=8,n=20,p=17/25)mengatakan probabilitas keberhasilan adalah 17/25 yang mengapa nilai-p ini berbeda. Karena itu Anda tidak membandingkan kedua proporsi itu sama sekali.


2
Terima kasih, saya menerima jawaban Anda. Ketika Anda mengatakan prop.test adalah "lebih tepat" apa maksud Anda sebenarnya? Hasil yang lebih tepat adalah (secara harfiah) diberikan oleh Fisher's Exact Test, bukan?
vonjd

4
Ini sebenarnya adalah sesuatu yang diperdebatkan di antara para ahli statistik dan saya tidak memiliki jawaban absolut. Secara historis, Anda menghindari Fisher karena menjadi sangat kompleks secara komputasional tetapi komputer menyiasatinya. Namun secara umum, Fisher Exact Test bersifat konservatif dan jika angka Anda cukup besar, statistik chi-square (yang prop.testdihitung) lebih cenderung tidak melakukan kesalahan tipe II.
cdeterman

Poin penting bagi saya adalah semantik yang berbeda dari prop.testdan fisher.test: Yang pertama disebut seperti prop.test(matrix(c(17, 8, 25, 20), ncol=2))(memberikan jumlah keberhasilan di kolom pertama dan jumlah percobaan di kolom kedua), sedangkan yang terakhir disebut seperti fisher.test(matrix(c(17, 25-17, 8, 20-8), ncol=2))(memberikan jumlah keberhasilan dan kegagalan ); karena fisher.test, transposisi tampaknya tidak mengubah hasilnya juga.
krlmlr

Alternatif yang lebih kuat juga tersedia untuk pengujian 2x2 - en.wikipedia.org/wiki/Barnard%27s_test
Hamy

4

Ada perbedaan antara dua sampel dan sampel dibandingkan dengan hipotesis yang diketahui. Jadi jika seseorang membalik koin 100 kali dan mendapat kepala 55 kali dan hipotesisnya adalah koin yang adil, versus dua orang membalik koin dengan keadilan yang tidak diketahui dan satu mendapatkan kepala 55 kali dan yang lainnya 45 kali. Dalam kasus sebelumnya Anda hanya mencoba mengidentifikasi apakah sirip tampaknya membalik koin yang adil. Dalam yang terakhir, Anda mencari untuk melihat apakah mereka membalik koin dengan keadilan yang sama. Anda dapat melihat bagaimana jika Anda melihat setiap pemain terhadap probabilitas yang diketahui (45 vs 50 dan 55 vs 50) berbeda dari membandingkan mereka satu sama lain (45 vs 55).


2

Sintaksnya binom.testadalah keberhasilan Anda dalam sejumlah percobaan dibandingkan dengan perkiraan titik populasi . Meskipun Anda memasukkannya sebagai p = 8/20, perhitungannya seolah-olah itu adalah kebenaran absolut yang diberikan Tuhan 0,4 dengan varians nol di sekitarnya. Atau seolah-olah Anda membandingkan kemenangan 17 pemain A dari 25 dengan hipotesis 8 miliar pemain B dari 20 miliar pertandingan. Namun, prop.testbandingkan proporsi 17/25 dengan semua varians potensinya dengan proporsi 8/20 dengan semua variansnya sendiri. Dengan kata lain varians sekitar 0,7 (perkiraan 17/25) dan varians sekitar 0,4 dapat berdarah satu sama lain dengan resultan p = 0,06.


Jadi ini berarti bahwa cara yang tepat untuk menyelesaikan pertanyaan awal adalah prop.test(c(17,8),c(25,20),correct=FALSE), bukan?
vonjd

1
Ya itu benar. Jika Anda ingin panduan, apakah Anda harus memiliki correct = FALSEvs correct = TRUEmaka saya sarankan Anda membaca stats.stackexchange.com/questions/185433/…
Farrel

2

Pertama saya menyarankan agar Anda ingin melakukan koreksi kontinuitas, karena Anda memperkirakan distribusi diskrit dengan distribusi kontinu (chi-square).

Kedua, penting untuk menjadi jelas tentang bagaimana "percobaan", jika Anda mau, dilakukan. Apakah jumlah game yang dimainkan setiap orang ditentukan sebelumnya (atau dalam bahasa industri, ditetapkan oleh desain)? Jika demikian, dan selanjutnya dengan asumsi hasil masing-masing pemain tidak tergantung pada yang lain, Anda berhadapan dengan produk dari 2 distribusi binomial. Jika sebaliknya jumlah permainan gratis untuk bervariasi (misalnya, jumlah permainan yang dimainkan setiap orang adalah variabel, berdasarkan jumlah permainan yang masing-masing dapat diselesaikan dalam kerangka waktu yang tetap), maka Anda berurusan dengan Multinomial atau distribusi Poisson.

Dalam kasus kedua uji chi-square (atau apa hal yang sama, uji z perbedaan dalam proporsi) sesuai, tetapi dalam kasus sebelumnya tidak. Dalam kasus pertama, Anda benar-benar perlu menghitung produk yang tepat dari setiap hasil binomial yang mungkin untuk setiap pemain, dan menjumlahkan probabilitas ini untuk semua kejadian yang sama dengan atau kurang dari probabilitas gabungan binomial dari hasil yang diamati (itu hanya produk dari 2 binomial karena hasil masing-masing pemain tidak tergantung pada hasil pemain lain).

Pertama-tama, kenali bahwa tujuan utama dari setiap pengujian hipotesis adalah untuk menghitung seberapa "langka" atau tidak biasa hasil spesifik yang Anda amati, dibandingkan dengan semua hasil lainnya yang mungkin. Ini dihitung dengan menghitung probabilitas hasil yang telah Anda amati - dengan asumsi bahwa hipotesis nol itu benar - dijumlahkan bersama dengan semua kemungkinan hasil lainnya dengan probabilitas yang sama atau lebih rendah.

Sekarang, itu berulang bahwa apa yang kita maksudkan dengan "seberapa jarang" adalah "seberapa rendah probabilitas mengamati hasil yang diperoleh dibandingkan dengan semua hasil yang mungkin lainnya?" Nah, probabilitas hasil spesifik yang telah kami amati adalah 0,0679 * 0,0793 = 0,005115. Sekarang pertimbangkan hasil alternatif tertentu: mungkin saja pemain A bisa memenangkan 7 dari 20 pertandingannya dan pemain B bisa memenangkan 13 dari 25 pertandingannya. Probabilitas hasil ini adalah 0,004959. Perhatikan bahwa ini LEBIH RENDAH daripada probabilitas hasil yang diamati, jadi ini harus dimasukkan dalam nilai-p. Tetapi perhatikan lagi: jika Anda memutuskan hasil mana yang termasuk dalam jumlah Anda berdasarkan apakah perbedaan dalam proporsi melebihi perbedaan dalam proporsi dalam hasil yang diamati, probabilitas ini akan dikecualikan! Mengapa? Karena perbedaan proporsi untuk hasil spesifik ini kurang dari perbedaan proporsi untuk hasil yang diamati. Tetapi ini bukan fokus yang tepat - kita harus peduli dengan probabilitas hasil spesifik ini dan apakah itu sama dengan atau kurang dari probabilitas hasil yang telah kita amati!

Penjelasan formal yang bagus tentang ini dapat ditemukan di sini:

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

Harap perhatikan secara khusus pernyataan di halaman 9 bahwa "Jika margin baris diperbaiki dan skema pengambilan sampel adalah binomial maka kita harus menggunakan model binomial produk, karena kita tidak dapat memperkirakan distribusi gabungan untuk dua variabel tanpa informasi lebih lanjut."


Untuk kode R yang menghitung jumlah probabilitas binomial bersama yang memiliki probabilitas yang sama atau lebih rendah terjadi dibandingkan dengan probabilitas hasil yang diamati, lihat jawaban untuk posting terkait berikut: stats.stackexchange.com/questions/213295/…
user221943
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.