fdr校正R实现

1.利用p.adjust函数

data<-c(0.05,0.90,0.89……)

p.adjust(data,method="fdr,n=length(data))

这里data大小应该给从小到大排列,否则校正出的p值有很多相同的值

解决这一问题的办法是利用R的软件包,即第二种方法

2.install.packages("fdrtool")

data<-c(0.05,0.90,0.89……)

fdr=fdrtool(data,statistic="pvalue")
fdr$qval # estimated Fdr values
fdr$lfdr#estimated local fdr

3.qvalue包

library(qvalue)
data(hedenfalk)
pvalues <- hedenfalk$p
qobj <- qvalue(p = pvalues)

qvalues <- qobj$qvalues #estimates of the q-values and
pi0 <- qobj$pi0 #the proportion of true null hypotheses π0
lfdr <- qobj$lfdr #the local false discovery rates 
summary(qobj)
hist(qobj)
plot(qobj)

 

 

对5130个T检验进行FDR校正是很常见的情况,以控制误差率。FDR校正的目的是控制在多重比较问题中发生false positive(假阳性)的概率。在这种情况下,您可以使用Benjamini-Hochberg校正方法进行FDR校正。该方法的基本思想是将所有P值从小到大排序,然后计算每个P值对应的FDR阈值,如果某个P值小于其对应的FDR阈值,则拒绝原假设。 在R语言中,可以使用`p.adjust`函数来实现FDR校正。其中第一个参数为原始p值的向量,第二个参数为校正方法,可以选择`"fdr"`进行FDR校正。示例如下: ``` p_values <- c(0.01, 0.02, 0.03, 0.04, 0.05, 0.06, 0.07, 0.08, 0.09, 0.1) fdr_corrected_p <- p.adjust(p_values, method = "fdr") ``` 在这个示例中,我们假设`p_values`是5130个T检验的p值向量,然后使用`p.adjust`函数进行FDR校正,得到校正后的p值向量`fdr_corrected_p`。 关于设置FDR校正的参数,一般来说,可以使用默认值。在R语言中,`p.adjust`函数的默认参数为`alpha = 0.05`,即期望的FDR阈值为0.05。如果您需要设置不同的FDR阈值,可以使用`qvalue`包中的`qvalue`函数。该函数可以计算出每个P值对应的q值(调整后的p值),并根据指定的FDR阈值选择拒绝原假设的P值。示例如下: ``` library(qvalue) qobj <- qvalue(p_values) qvalues <- qobj$qvalues significant_p <- p_values[qvalues < 0.05] ``` 在这个示例中,我们首先使用`qvalue`函数计算出每个P值对应的q值,然后选择q值小于0.05的P值作为拒绝原假设的P值。
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值