1. 超几何分布
根据维基百科,超几何分布描述了由有限个对象中抽出n个对象,成功抽出指定种类的对象的个数(抽出不放回 (without replacement))
例如在有N个样本,其中K个是不及格的。超几何分布描述了在该N个样本中抽出n个,其中k个是不及格的概率:
道理都懂,但公式为啥长这样?
举个简单通俗好理解的栗子:
100张彩票中有10个有奖,如果我抽了20个,求有4个彩票中奖的概率,怎么求?
高中知识:有4个彩票中奖,就是从10个中奖的彩票里抽到了4个
(
10
4
)
\binom{10}{4}
(410) , 再从没奖的里面抽到6个
(
100
−
10
6
)
\binom{100-10}{6}
(6100−10) , 除以从100个彩票中抽20个
(
100
20
)
\binom{100}{20}
(20100)
P
(
k
=
4
)
=
(
10
4
)
(
100
−
10
6
)
/
(
100
20
)
P(k = 4) = \binom{10}{4} \binom{100-10}{6} /\binom{100}{20}
P(k=4)=(410)(6100−10)/(20100)
2. fisher exact test
对上面的问题列个表,用符号代替实际数字:
抽的a+c个 | 没抽到的b+d个 | |
---|---|---|
总中奖样本a+b个 | a | b |
总没奖样本c+d个 | c | d |
a + b + c + d =n
把问题换一下,现在已知抽到了a个中奖的彩票,想问,这一共a+b个中奖彩票,这一把在抽到的a+c个和没抽到的b+d个里分布不均的可能性有多大?就是想计算一下我这把抽奖,是个“欧皇”还是“非酋”。
这样就要用到Fisher’s exact test:
是不是很眼熟?? 这就是上面那个P(k = 4)公式啊亲!一毛一样!
算出了概率统计值,我们要对这个结果求统计显著性(pvalue)
p-value = the sum of the probabilities for all tables having a probability equal to or smaller than that observed.
简单来说,对于最初的彩票问题,如果我们观测到P(k=4)=0.06,那么就把概率P(k=1)到P(k = 10)的结果全部算出来,然后把那些小于或者等于P(k=4)的概率值求和,得到的就是fisher exact test 的 pvalue. (pvlue为什么这样算看这里:史上最通俗易懂 pvalue)
3. gene over representation analysis (ORA)
轮到基因富集分析了。富集分析说白了就是把我们感兴趣的基因对应到各种pathway/GO 公共数据集上去,然后进行各种假设检验看显著性。
举个栗子:假设我们检测了10000个基因, 其中100个是差异表达基因/ 我们感兴趣的基因。其中,有40个基因在某一个pathway上,这个pathway上有150个gene。那么,我们就想知道,这种情况(抽100个中命中40个)的罕见情况。仍然画个图:
抽的100个基因 | 没抽到的10000-100个gene | |
---|---|---|
pathway上总共150个gene | 40 | 110 |
不在这个pathway上一共10000-150个gene | 60 | 10000-150-60 |
这不就还是买彩票中奖问题么。解答过程不做赘述。
唯一需要留意的是,这里只展示了怎么对一个pathway的gene set进行计算,一般ORA是要对所有的pathway/GO 进行计算,得到每一个pathway的p-value,这就成了一个multiple hypothesis testing 问题,需要对p-value进行校正。
校正方法可以用Bonferroni correction, FDR 之类的。