统计检验

T-test 、 pvalue FDR矫正 R语言实现 付代码实

2020-06-12  本文已影响0人  阿酒88

T-test简介:

对分组变量的差异显著性检验,T-test是最为常用的检验方法,t-test要求数据符合正态分布。不符合用(Mann-Whitney U)

正态性检验  shapiro.test(x),  注:p值大于0.05 都不能拒绝原假设,数据是正态的

分析目的:

根据NMR数据找case control 生物标记物

第一步需要T-test进行初筛,数据格式如下:

想要自动进行分组检验,可以用R的which 命令进行数据筛选:

Tdata[2,which(Tdata[1,]=="0")]  #筛选第二行 分组样本为“0”标签的 Glucose的分组数值

最终输出文件:

整体应用代码如下:

Pvalue<-c(rep(0,nrow(Tdata)-1))

log2_FC<-c(rep(0,nrow(Tdata)-1))

for(i in 2:nrow(Tdata)){

    if(sd(Tdata[i,which(Tdata[1,]=="0")])==0 && sd(Tdata[i,which(Tdata[1,]=="1")])){

      Pvalue[i-1]<- "NA"

      log2_FC[i-1]<- "NA"

    }

    else{

      y=t.test(as.numeric(Tdata[i,which(Tdata[1,]=="0")]),as.numeric(Tdata[i,which(Tdata[1,]=="1")]))

      Pvalue[i-1]<-y$p.value

      log2_FC[i-1]<-log2((mean(as.numeric(Tdata[i,which(Tdata[1,]=="0")]))+0.001)/(mean(as.numeric(Tdata[i,which(Tdata[1,]=="1")]))+0.001))

  }

}

# 对p value进行FDR校正

fdr=p.adjust(Pvalue, "BH")

# 在原文件后面加入log2FC,p value和FDR,共3列;

out<-cbind(rownames(Tdata[-1,]),log2_FC,Pvalue,fdr)

write.table(out,file="ttest.out.xls",quote=FALSE,sep="\t",row.names=FALSE)

上一篇 下一篇

猜你喜欢

热点阅读