回答:
あなたの質問を正しく理解した場合、超幾何分布を使用する必要があります。この分布は通常、骨壷モデルに関連付けられています。つまり、骨壷にはボールがあり、は赤く塗られており、骨壷から個のボールを描画します。次に、がサンプルで赤であるボールの数である場合、には超幾何分布があります。
具体的な例として、、、およびは3つのリストの長さを示し、はと間の重複を示します。その後n A B A B
p値を計算するには、次のRコマンドを使用できます。
#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
注意の言葉。複数のテストを覚えてください。つまり、AリストとBリストがたくさんある場合は、p値を修正して調整する必要があります。例として、FDRまたはBonferroniの修正。
csgillespieの答えは1つを除いて正しいようです:それはオーバーラップで厳密にn_A_Bを見る確率を与えます、P(x> n_A_B)ですが、OPはp値P(x> = n_A_B)を望んでいると思います。あなたは後者を得ることができます
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)
lower.tail=FALSE
。それ以外の場合、非常に小さいp値(<1e-16)は切り捨てられます。