Bagaimana saya menghitung jika tingkat tumpang tindih antara dua daftar signifikan?


9

Jika saya memiliki dua daftar A dan B, keduanya merupakan himpunan bagian dari daftar C yang jauh lebih besar, bagaimana saya bisa menentukan apakah tingkat tumpang tindih A dan B lebih besar daripada yang saya harapkan secara kebetulan?

Haruskah saya memilih elemen secara acak dari C dengan panjang yang sama dengan daftar A dan B dan menentukan tumpang tindih acak itu, dan melakukan ini berkali-kali untuk menentukan beberapa jenis atau nilai p empiris? Apakah ada cara yang lebih baik untuk menguji ini?


Anda harus menggunakan jawaban Colin, namun ide Anda untuk membuat simulasi Monte Carlo juga benar.

Jawaban:


9

Jika saya memahami pertanyaan Anda dengan benar, Anda perlu menggunakan distribusi Hypergeometric . Distribusi ini biasanya dikaitkan dengan model guci, yaitu adan bola dalam guci, y dicat merah, dan Anda menggambar mbola dari guci. Lalu jikaX adalah jumlah bola dalam sampel Anda m itu merah, X memiliki distribusi hyper-geometric.

Untuk contoh spesifik Anda, biarkan nA, nB dan nC menunjukkan panjang tiga daftar Anda dan biarkan nAB menunjukkan tumpang tindih antara A dan B. Kemudian

nABHG(nA,nC,nB)

Untuk menghitung nilai p, Anda bisa menggunakan perintah R ini:

#Some example values
n_A = 100;n_B = 200; n_C = 500; n_A_B = 50
1-phyper(n_A_B, n_B, n_C-n_B, n_A)
[1] 0.008626697

Kata hati-hati Ingat beberapa pengujian, yaitu jika Anda memiliki banyak daftar A dan B , maka Anda perlu menyesuaikan nilai-p Anda dengan koreksi. Misalnya saja koreksi FDR atau Bonferroni.


2

Jawaban csgillespie tampaknya benar kecuali untuk satu hal: itu memberikan kemungkinan melihat lebih dari n_A_B di overlap, P (x> n_A_B), tapi saya pikir OP ingin pvalue P (x> = n_A_B). Anda bisa mendapatkan yang terakhir

n_A = 100;n_B = 200; n_C = 500; n_A_B = 50
phyper(n_A_B - 1, n_A, n_C-n_A, n_B, lower.tail = FALSE) 

+1 untuk lower.tail=FALSE. Nilai p yang sangat kecil (<1e-16) terpotong sebaliknya.
Backlin
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.