我正在尝试在模拟的遗传问题中应用费舍尔的精确检验,但是p值似乎偏向右侧。作为一名生物学家,我想我只是在漏掉每个统计学家显而易见的东西,因此,我将非常感谢您的帮助。
我的设置是这样的:(设置1,边际不固定)
在R中随机生成两个0和1的样本。每个样本n = 500,采样0和1的概率相等。然后,我将每个样本中0/1的比例与Fisher的精确测试进行比较(只是fisher.test
;还尝试了具有类似结果的其他软件)。重复采样和测试3万次。产生的p值的分布如下:
所有p值的平均值约为0.55,在0.0577处为第5个百分点。即使分布在右侧看起来也不连续。
我一直在阅读所有内容,但我没有发现任何迹象表明这种行为是正常的-另一方面,这只是模拟数据,因此我看不到任何偏见的来源。我错过了任何调整吗?样本量太小?或者也许它不应该是均匀分布的,并且p值的解释不同?
还是我应该重复一百万次,找到0.05分位数,并在将其应用于实际数据时将其用作显着性临界值?
谢谢!
更新:
Michael 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="")
最终编辑:
正如胡布在评论中指出的那样,由于分箱,这些区域看上去只是扭曲了。我将附加设置1(免费边距)和设置2(固定边距)的QQ图。在下面的Glen模拟中可以看到类似的图,并且所有这些结果实际上似乎相当统一。谢谢您的帮助!
2
尝试重复模拟,同时不仅要保持组大小(每组500个),而且要保持“ 1”(在合并样本中)的总和不变。Fisher精确检验的p值是在此“固定边际分布”设置下得出的。画面看起来好些了吗?顺便说一句。您不能期望p值分布由于采样分布的离散性质(即超几何)而完全一致。
—
Michael M
查看您的R代码可能会很有用。
—
2015年
从代码中,@ Glen在我看来,在每次迭代中,两个样本都具有相同的0和1(即,假设应为空),还是我错了吗?
—
bdeonovic
这些直方图对我来说看起来非常统一。您必须记住,直方图通过area来显示概率(或频率)。右边的间隙增加(由于任何离散数据的非随机测试的p值分布不可避免地存在离散性),导致钢筋高度增加,但其面积似乎几乎是恒定的。 不必使用直方图来评估均匀性,而可以绘制经验CDF。
—
ub
除了特定的分布之外,这个问题似乎在这里已
—
Glen_b-恢复莫妮卡(Monica)2015年