R语言 求P值

P_value <- function(cdf,x,paramet,side=0){
  n <-length(paramet)
  p <-switch(n+1,
             cdf(x),
             cdf(x,paramet),
             cdf(x,paramet[1],paramet[2]),
             cdf(x,paramet[1],paramet[2],paramet[3])
  )
  if(side <0) p
  else if(side >0) 1-p
  else
    if(p<1/2) 2*p
  else 2*(1-p)
}
P_value(pnorm,3.71,c(0,1),0)

在统计分析领域,尤其是大规模多重比较的情况下,控制错误率是一个重要的考量点。FDR(False Discovery Rate),即假发现率,是由Benjamini 和 Hochberg于1995年提出的控制错误率的一种方法,用于平衡拒绝原假设的风险与研究者对结果可靠性的需R语言是一种广泛应用于统计计算、数据分析及图形表示的强大工具。为了利用R语言通过pFDR,通常我们会采用一些特定的函数和包,比如`BH`方法(由Benjamini和Hochberg所提出)或者`qvalue`包。 ### 使用`BH`方法的例子: 假设我们有一组p数组`p_values`,我们想要应用BH方法来调整这些p并确定哪些假设应该被拒绝。以下是基本步骤: ```r # 导入必要的库 library(pwr) # 假设的数据集,包含一组p p_values <- c(0.001, 0.04, 0.08, 0.15, 0.2, 0.3, 0.6, 0.7) # 应用BH方法FDR调整后的p adjusted_p_values <- p.adjust(p_values, method = "fdr") # 输出调整后的p print(adjusted_p_values) ``` 在这个例子中,`p.adjust`函数接收一组p作为输入,并通过选择“fdr”方法返回相应的FDR调整后的p列表。 ### 使用`qvalue`包的例子: `qvalue`包提供了一种更复杂的方法来估计每项假设的FDR,并可以给出每个假设的期望FDR以及最小化所有假设FDR的目标阈。 ```r # 安装并加载qvalue包 if (!requireNamespace("BiocManager", quietly = TRUE)) install.packages("BiocManager") BiocManager::install("qvalue") library(qvalue) # 同样的一组p p_values <- c(0.001, 0.04, 0.08, 0.15, 0.2, 0.3, 0.6, 0.7) # 计算FDR my.qobj <- qvalue(p_values) # 查看FDR估计和其他信息 summary(my.qobj) ``` 在上述代码中,`qvalue`函数首先处理给定的p列表,然后生成一个包含FDR估计的Q对象。通过调用`summary`函数,我们可以查看FDR估计、最小化所有假设FDR的目标阈以及其他相关信息。 ### 相关问题: 1. FDR与FWER(Family-Wise Error Rate)相比有何优势? 2. R语言中如何选择合适的FDR控制方法? 3. 应用FDR调整后,如何解释和报告结果?
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值