生物统计——假设检验

本文是对 孟浩巍
生物信息学入门课:学习生信你需要了解的统计学课程的学习。

五. 假设检验

1. 假设检验基本介绍

K.Pearson——Sir Ronald Aylmer Fisher(女士品茶,Fisher线性判别,极大似然估计,试验设计)——Neyman and E Pearson.

Fisher的女士品茶提出来的小概率标准为0.05。

什么是假设?:通过MT和TM的假设确定总体的一些参数;什么是检验:判断假设是否成立,是否为小概率事件。

生物统计——假设检验_第1张图片
假设检验基本思想

假设检验的一般步骤

  1. 提出原假设H0和备择假设H1
  2. 确定适当的检验统计量(t检验/卡方/F检验)
  3. 计算出抽样结果的PValue
  4. 如果PValue很小(0.01/0.05),拒绝H0接受H1

2. PValue的计算

R中计算PValue的相关函数:

生物统计——假设检验_第2张图片
R中各个分布函数名称

  • Beta分布——二项分布——柯西分布——卡方分布——指数分布——F分布——Gamma分布——几何分布——超几何分布——逻辑斯特分布——Log Normal分布——负二项分布——正态分布——泊松分布——T分布——均匀分布——威泊尔分布
  • p(probability)概率分布,累计分布概率
  • q(quantile)分位数计算,确定99%的分位数
  • d(density)概率密度函数(概率密度函数y轴坐标取值)
  • r(random)取对应分布的随机数
##确定分位数
qnorm(0.99,mean=0,sd=1) ##确定99%的分位数值

## 确定概率
pnorm(-1.96,mean = 0, sd =1) ## 0.024
pnorm(0,mean = 0, sd =1) ## 0.5

##概率密度函数曲线
plot(dnorm(seq(-10,10,length.out = 1000),mean = 0,sd = 1))

##模拟取值
rnorm(10,mean=5,sd=2)

###设置随机种子保证rnorm里取值一致。
sed.seed(2019)
rnorm(10,mean=5,sd=2)

在生物信息里的例子:

  1. 某次测序全基因组平均突变率为0.003,某个位点中检测到带有C的reads10条,带有T的reads为3条,那么该位点是否为一个甲基化位点?(background:原始的C,被清洗后不带甲基化位点为T,带甲基化(C被保护)位点为C)

    • 二项分布:n=13, p=0.003
    • 具体R中pbinom(q=3,size = 13,prob = 0.003)
  2. MACS2中call peak认为reads count在基因组某个区域的分布服从泊松分布,估算某一段区域中的Possion分布的参数?假设已经估算出lambda=5,如果一段区域内出现了20条reads,那么pvalue应该是多少?

    • lambda估算:一段区域的reads count数出来,平均?或者估算整体基因组的lambda。
    • x=20,21,22...出现抽样结果或者比抽样结果更极端的情况。加起来一起的pvalue即为次pvalue
    • 具体R中计算ppois(20,lambda=5)为累计概率。>20的pvalue1-ppois(20,lambda=5)

3. 统计功效和假设检验的两类错误

两类错误和统计功效

生物统计——假设检验_第3张图片
image

1类错误假阳性,2类错误假阴性。α去真概率,β纳伪概率。

当样本量确定时,α和β是一个balance。α是定义的显著性水平,如0.01,pvalue实际是很小。而α定的十分小的情况下,β的犯错概率就大了。所以具体再平衡的过程中需要进一步考虑。例如在癌症检测时,会尽可能把H1都找出来,所以宁愿假阳性高,假阴性低,cutoff 甚至0.1。而相反的在call peak时要找到最真的peak

提高统计功效:加大样本量(较简单),更改统计方法。

4. 使用Pvalue常见的错误

1. 在任何时候都以0.05或者0.01作为金标准

  • 有些统计检验如Fisher Exact test类(GO/KEGG/Motif计算)容易出现非常小的pvalue。一般会取10-4,认为取小于10e-4才算显著。

2. 设定Pvalue阈值时忽略了2类错误的犯错可能。

  • 比如在病理确诊时 H0代表没病,H1代表有病。二类错误的假阴性更严重,所以设置α提高0.1/0.2,假阴性β就会降低。

3. 计算Pvalue过程中,忽略了使用假设检验的基本条件。

  • 比如t检验(服从正态分布,两个样本方差齐。如果不服从原假设基本要求,而应用其它的如非参数检验)

4. 在使用PValue的时候,会忽略了假设检验的原假设。

生物统计——假设检验_第4张图片
image
  • 仅能说是根据Pvalue发现有相关关系,但相关关系不大。

回归分析时,原假设的两个变量是不是有相关关系(没有/有 ),而具体相关关系的大小,归到回归中解释。

4. T检验相关内容

主要围绕正态分布进行。大样本Z-test,小样本T-test

1. Z-score和Z变换

生物统计——假设检验_第5张图片
Z-score和Z变换
  • Z变换是已知了总体方差和总体均值的情况。其中在α=0.05时,Z=+-1.96,所以按公式计算完Z值之后再通过pnorm(z,mean=0,sd=1)转换。

2. 为什么有了Z test之后还要T test?:因为通常情况下我们很难获得总体方差(最多获得总体均值的估计),往往就想通过样本方差来代替总体方差。

## R中T-test值转换为Pvalue
1-pt(q=14.16,df=10-1)

生物统计——假设检验_第6张图片
小样本检验T-test
  • (当X均值-样本均值)/(样本方差/根号n),它是服从自由度n-1的student-T-test。自由度越高越服从正态分布,n越大越服从z test大样本统计。
  • 大样本统计的n至少>=30(50),所以在一般情况下大都是进行T-test

3. T-test两种最常见的情况

  • 有一组试验样本数据,与已知标准均值去做比较
### 已知A基因在总体均值中为15,观察5个人中A(13.1,16.2,14.9,15.8,17.7),分析该病人基因A有无显著升高。
res <- c(13.1,16.2,14.9,15.8,17.7)
t.test(res,mu = 15,alternative = "greater") ##单端变大,所以alternative="greater"

  • 两批独立随机试验结果,需要比较是否有差异(已知样本均值,样本方差相等)
    • 两个样本是独立的随机样本(一般仪器测量的属于正态分布,有多个因素影响,而没有主效因素影响同属于正态分布)
    • 两个总体都是正态分布
    • 两个总体方差未知但相等(两批实验组内的variation不能过大)


      生物统计——假设检验_第7张图片
      两批实验结果,比较是否有差异
### 2. compare two sample
geneB.ctrl <- c(12.33,7.56,11.47,9.82,9.14)
geneB.deoxy <- c(10.41,14.82,14.13,15.81,13.62)
t.test(geneB.ctrl,geneB.deoxy)

  • 配对样本的均值比较T-test(如同组实验样本的前后进行比较,一个group比较用药前和用药后)作差,如果没差异的话是根0比较接近。即可根据公式进行检验。得出的T-test值后查表
### 3. paired t.test
before.fitness=c(94,101,110,103,97,88,96,101,104,116.5)
after.fitness <-


  • 2组独立随机试验结果,在方差不相等的情况下做比较(应该首先用F检验来检查方差是否相等,在方差不相等的情况下,应该使用t'检验或者是Wilcox秩和检验)
### 4. compare two sample ,方差不相等
geneB.ctrl <- c(12.33,7.56,11.47,9.82,9.14)
geneB.deoxy <- c(3.41,14.82,14.13,15.81,4.62)

## 先F检验var.test检测两个样本内方差是否相等
var.test(geneB.ctrl,geneB.deoxy)

## t.test
t.test(geneB.ctrl,geneB.deoxy,var.equal = F)

## wilcox test
wilcox.test(geneB.ctrl,geneB.deoxy)

5. 列联表检验

生物信息中常见的列联表检验问题即GO/KEGG富集分析问题


生物统计——假设检验_第8张图片
GO/KEGG的列联表检验
生物统计——假设检验_第9张图片
K.Pearson与拟合优度检验
  • 利用R语言中的chisq.test函数
# chisq test 2 
ratio_vec = c(335,125,160)
prob_vec = c(9,3,4) / 16
chisq.test(ratio_vec,p = prob_vec)
生物统计——假设检验_第10张图片
列联表检验问题
  • 大样本水平下,我们认为K近似服从卡方分布,从而进行卡方检验。小样本情况,即表格中理论频数小于5,加和样本总数n<40,应该使用Fisher exact test精准检验。而当理论频数大于5时,进行卡方检验
  • Fisher exact test本质上是超几何分布检验,在生物信息上如富集分析,判断某位点是否为突变位点。
# fisher test 
test_mat = matrix(c(55,200,200,19800),ncol = 2,nrow = 2)
fisher.test(test_mat)

你可能感兴趣的:(生物统计——假设检验)