[英]Has anyone tried to parallelize multiple imputation in 'mice' package?
我知道Amelia
R
包为并行多重插补 (MI)提供了一些支持。 但是,对我的研究数据的初步分析显示数据不是多元正态的,因此,不幸的是,我不能使用Amelia
。 因此,我改用针对 MI 的mice
R
包,因为该包可以对非多元正态数据执行 MI。
由于通过mice
的 MI 过程非常缓慢(目前我使用的是 AWS m3.large
2 m3.large
例),我开始怀疑是否可以并行化该过程以节省处理时间。 根据我的检讨mice
文件和相应的JSS文件,以及mice
的源代码,看来目前包不支持并行操作。 这是可悲的,因为恕我直言,MICE 算法自然是并行的,因此,它的并行实现应该相对容易,并且会在时间和资源上产生显着的经济性。
问题:有没有人尝试在mice
包中并行化 MI,无论是在外部(通过R
并行工具)还是在内部(通过修改源代码),结果是什么(如果有的话)? 谢谢!
最近,我尝试通过外部的mice
包来并行化多重插补 (MI) ,也就是说,通过使用R
多处理设施,特别是R
基础发行版标配的parallel
包。 基本上,解决方案是使用mclapply()
函数来分配所需 MI 迭代总数的预先计算份额,然后将结果估算数据合并到单个对象中。 在性能方面,这种方法的结果超出了我最乐观的预期:处理时间从 1.5 小时减少到7 分钟以下(!)。 那只是在两个内核上。 我已经删除了一个多级因素,但它应该没有太大影响。 无论如何,结果令人难以置信!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.