推荐产品
公司新闻/正文
百趣生物干货分享 | 常见的统计学检验变量介绍-P值、FDR值、Q值
人阅读 发布时间:2024-01-25 11:49
在生物信息学中,各式各样的统计学分析有着广泛的应用,比如差异筛选、功能富集、biomarker筛选等等。常见的生物学分析都或多或少地利用到了统计学算法,而这些分析中最重要、最直观的结果变量就是P值。我们往往会在各种生物学文章中看到某个蛋白或代谢物当满足P-value<0.05或者Q-value<0.05的条件,会被认为是可信的关键蛋白或代谢物,那么什么是P值、Q值和FDR值,它们的真实含义是什么?接下来小趣将逐一介绍。
P值、FDR值和Q值
P值:指当原假设为真时,比所得到的样本观察结果更极端的结果出现的概率。如果P值很小,说明原假设情况的发生的概率很小,而如果出现了,根据小概率原理,我们就有理由拒绝原假设,P值越小,我们拒绝原假设的理由越充分。在组学分析中,寻找差异基因时往往都会采用p值作为筛选标准,这里的p值对应的是两组样本的均值显著相等,即该蛋白或代谢物不是差异的概率。
FDR值和Q值:两者虽然名称不同,算法不同,但他们的作用其实是一致的,都是为了对P值进行多重假设检验校正。FDR校正相较于常规的Bonferroni 校正更加的宽松,它不追求完全没有假阳性结果,而是将假阳性结果和真阳性的比例控制在一定范围内,而FDR校正的算法也有很多,其中BH算法(Benjaminiand Hochberg)用得比较多。Q值则是基于P-value分布的FDR计算方法,所以在日常使用中,两者并没有太大的区别,在进行假设检验校正时,可以视情况而用。
R语言代码实现
01 P值计算
1、创建两组数据,可将两组样本的定量信息分别赋值给A和B两个变量,用于后续的t检验。(注:计算T检验p值要求每组至少有三个样本)
A <- c(355,626,785,634,433)
B <- c(223,335,246,631,522)
2、进行方差齐性检验(T检验的默认假设是两组样本方差相等,所以需要提前验证是否相等)
vtest <- var.test(A,B)$p.value > 0.05
3、计算P-value
pvalue <- t.test(A, B, alternative = "two.sided", var.equal = vtest)
4、结果输出
Two Sample t-test
data: A and B
t = 1.5812, df = 8, p-value = 0.1525
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
-80.30817 430.70817
sample estimates:
mean of x mean of y
566.6 391.4
这里可以看出P-value>0.05,所以得出结论,认为原假设成立,两组数据相等。
02 FDR值计算
由于FDR值是对多重假设检验的校正,我们必须要有足够多的P-value,才能支撑起我们的FDR校正算法,这里不展示数据,只展示一下过程。
只需输入所有的p值,选择校正算法为BH算法即可,代码如下:
pvalue_adjust <- p.adjust(pvalues, method = "BH", n = length(pvalues))
03 Q值计算
同FDR值计算,需要输入所有的p值,选择校正数据为P-value
qvalues <- fdrtool(pvalues, statistic = "pvalue")$qval
综上所述,我们了解了p值、q值和FDR值的原理,并且展示了如何使用R语言进行计算,大家可以拿手中的数据去尝试计算一下,自己筛选差异。组学分析的内容还有许许多多,请大家继续期待我们后续的更新。