我需要对两个10通道*513频率的二维数组进行5130次T检验,是否需要进行FDR校正,如果需要,怎么设置参数?
时间: 2024-02-26 22:57:34 浏览: 91
对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值。
阅读全文