无法在Monte Carlo中模拟足够极端的值

时间:2019-05-24 16:43:15

标签: python statistics montecarlo

我有一个感兴趣的576个基因及其分配的功能类别的生物学数据集。我还为我正在研究的物种的基因组中的所有基因分配了功能类别。这使我可以设置一个加权的随机绘图,在这里我可以从基因组中选择576个基因/功能分配,并查看各个功能类别的分布情况。我已经重复了100万次,这似乎有些过头了;但是,对于我的其中一个类别,我目前无法模拟一个与目标基因一样极端的值。

为了提供背景信息,功能类别(让我们加上“ A”)代表了14%的基因组和28%的目标基因。对于类别A,我模拟的最高值为22.92%,而97.5%的置信区间为17.19%。当我凭经验进行计算时,这给我带来了麻烦,即((针对A的模拟的值的数量超过目标基因的A的值的数量)/(模拟的总数),所以我的p值为零。

len([i for i in probs_dict["A"] if i > target_per])/total_sims

这里是否有其他方法来计算p值或表示高度的过度表达?

1 个答案:

答案 0 :(得分:0)

将1和分子加1可能是合适的。例如,请参见此paper。这防止了p = 0的发生。因此,您的p值公式将变为:

(1 + len([i for i in probs_dict["A"] if i > target_per]))/(1 + total_sims)