R语言与统计分析生物信息学与算法

生物统计——假设检验

2019-07-29  本文已影响0人  Dawn_WangTP

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

五. 假设检验

1. 假设检验基本介绍

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

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

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

假设检验基本思想

假设检验的一般步骤

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

2. PValue的计算

R中计算PValue的相关函数:

R中各个分布函数名称
##确定分位数
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. 统计功效和假设检验的两类错误

两类错误和统计功效

image

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

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

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

4. 使用Pvalue常见的错误

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

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

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

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

image

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

4. T检验相关内容

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

1. Z-score和Z变换

Z-score和Z变换

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

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

小样本检验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"

### 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)

### 3. paired t.test
before.fitness=c(94,101,110,103,97,88,96,101,104,116.5)
after.fitness <-


### 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富集分析问题


GO/KEGG的列联表检验 K.Pearson与拟合优度检验
# chisq test 2 
ratio_vec = c(335,125,160)
prob_vec = c(9,3,4) / 16
chisq.test(ratio_vec,p = prob_vec)
列联表检验问题
# fisher test 
test_mat = matrix(c(55,200,200,19800),ncol = 2,nrow = 2)
fisher.test(test_mat)
上一篇 下一篇

猜你喜欢

热点阅读