首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用numpy/h5py校正内存的Benjamini Hochberg FDR

使用numpy/h5py校正内存的Benjamini Hochberg FDR
EN

Stack Overflow用户
提问于 2015-06-10 18:20:43
回答 1查看 2.8K关注 0票数 6

我试着用Benjamini &Hochberg的方法计算一组FDR校正的p值。但是,我试图运行的向量包含超过100亿个值。

考虑到数据量,普通的状态模型的方法多功能模块很快就会耗尽内存。从该函数的源代码来看,它似乎创建了多个内存长度为100亿的向量,这显然是行不通的,即使在一台内存为100 to的机器上也是如此。

是否有办法做到这一点,理想情况下,不必将整个向量保存在内存中?特别是,我想知道是否有可能以允许它使用h5py数据结构在磁盘上运行的方式重新实现BH。

或者其他建议?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-06-12 20:13:03

以防其他人无意中发现这一点:

我解决这个问题的方法是首先提取所有有机会超过FDR校正阈值的p值(我使用了1e-5)。内存消耗不是这个问题,因为我可以迭代磁盘上的p值列表。

这给了我一套400 K的最低p值。然后,我手动将BH过程应用于这些p-值,但在公式中插入了原始测试数。由于BH是一个逐步提升的过程,因此(据我所知)这相当于将BH应用于整个向量,而不需要对100亿个值排序。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30764325

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档