python fdr校正
时间: 2023-08-31 18:08:55 浏览: 464
FDR(False Discovery Rate)校正是一种多重假设检验的校正方法,用于控制错误发现率。在 Python 中,你可以使用 `statsmodels` 库中的 `multipletests` 函数来进行 FDR 校正。
下面是一个示例代码:
```python
from statsmodels.stats.multitest import multipletests
# 假设你有一系列的 p 值
p_values = [0.01, 0.02, 0.03, 0.04, 0.05]
# 进行 FDR 校正
rejected, adjusted_p_values, _, _ = multipletests(p_values, method='fdr_bh')
# 输出校正后的 p 值
print(adjusted_p_values)
```
在上述代码中,`p_values` 是原始的 p 值列表。`multipletests` 函数的 `method` 参数设置为 `'fdr_bh'`,表示使用 Benjamini-Hochberg 方法进行 FDR 校正。校正后的 p 值将存储在 `adjusted_p_values` 中。
请注意,FDR 校正并不改变原始的 p 值的大小顺序,而只是调整它们的阈值。
相关问题
python FDR
FDR (False Discovery Rate) 是一种控制多重检验中的错误发现率的方法。它是由Benjamini和Hochberg在1995年提出的。他们的方法的目标是控制在一个预设的水平以下的FDR,并在此基础上,后续的研究提出了更加精确估计FDR的方法,例如Storey的、Broberg的、Dalmasso的、Guan的和Strimmer的方法等。Benjamini的方法将FDR控制在一个水平以下,而后续的方法与此方法相比更具有强大的统计力度,但也牺牲了鲁棒性。
在数据分析中,常常会遇到多重检验问题,即对于多个假设进行统计检验。Benjamini在1995年提出了一种方法,通过控制FDR (False Discovery Rate) 来确定P值的阈值。假设选出了R个差异表达的基因,其中有S个是真正有差异表达的,而另外有V个实际上却没有差异表达,是假阳性。在实践中,希望错误比例Q=V/R的平均值不能超过预先设定的值(例如0.05),在统计学上,这等价于控制FDR不超过5%。
至于Python中如何计算FDR,我找到了一个使用SHD函数的代码示例:`cdt.metrics.SHD(target, pred, double_for_anticausal=True)`,其中`target`是目标变量的真实值,`pred`则是预测值,`double_for_anticausal`则是一个参数,用于指定是否将反因果结构计算两次。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* [FDR多重检验校正原理及Python实现方法](https://blog.csdn.net/weixin_39818264/article/details/113981441)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
- *3* [对于因果模型的常见评估函数:SHD 和 FDR](https://blog.csdn.net/weixin_55703970/article/details/124239263)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
matlab fdr校正
FDR(False Discovery Rate)校正是一种统计方法,用于控制多重假阳性的错误率。在MATLAB中,可以使用`mafdr`函数来执行FDR校正。
`mafdr`函数的语法如下:
```matlab
[q, pi0 = mafdr(pvals)
```
其中,`pvals`是一个包含原始p-value的向量,`q`是经过FDR校正后的p-value向量,`pi0`是一个估计的零分布概率。
通过调用`mafdr`函数,你可以将原始的p-value向量转换为经过FDR校正的p-value向量。这样做可以帮助你在多个假设检验中控制错误率。
请注意,使用FDR校正时,你必须先进行多个假设检验,然后再对其进行校正。