シミュレートされた遺伝学の問題にフィッシャーの正確確率検定を適用しようとしていますが、p値が右に歪んでいるようです。生物学者である私は、すべての統計学者にとって明らかなものを見逃しているだけだと思います。
私のセットアップはこれです:(セットアップ1、限界は固定されていません)
0と1の2つのサンプルがRでランダムに生成されます。各サンプルn = 500、サンプリング0と1の確率は等しいです。次に、各サンプルの0/1の割合をフィッシャーの正確確率検定と比較します(ちょうどfisher.test
;他のソフトウェアでも同様の結果を試しました)。サンプリングとテストは30 000回繰り返されます。結果のp値は次のように分布します。
すべてのp値の平均は約0.55、0.0577の5パーセンタイルです。右側の分布も不連続に見えます。
私はできる限りすべてを読んでいますが、この動作が正常であるという兆候は見つかりません-一方、これは単なるシミュレーションデータであるため、バイアスの原因がわかりません。見逃した調整はありますか?サンプルサイズが小さすぎる?それとも、均一に分布されているとは限らず、p値の解釈が異なるのでしょうか。
または、これを100万回繰り返し、0.05分位点を見つけて、これを実際のデータに適用するときの有意差カットオフとして使用する必要がありますか?
ありがとう!
更新:
マイケルMは0と1の限界値を修正することを提案しました。p値はより良い分布を与えます-残念ながら、それは均一ではなく、私が認識している他の形状でもありません。
実際のRコードを追加する:(設定2、辺縁を修正)
samples=c(rep(1,500),rep(2,500))
alleles=c(rep(0,500),rep(1,500))
p=NULL
for(i in 1:30000){
alleles=sample(alleles)
p[i]=fisher.test(samples,alleles)$p.value
}
hist(p,breaks=50,col="grey",xlab="p-values",main="")
最終編集:
whuberがコメントで指摘しているように、ビニングのために領域が歪んで見えるだけです。セットアップ1(自由限界)とセットアップ2(固定限界)のQQプロットを添付しています。以下のグレンのシミュレーションでも同様のプロットが見られ、これらすべての結果は実際にはかなり均一に見えます。助けてくれてありがとう!