多个分布的总和

时间:2016-02-24 10:31:57

标签: python r convolution probability-density

背景

我尝试使用空间显性数据估算一个地理区域内的潜在能源供应。为此,我构建了一个贝叶斯网络(HydeNet软件包)并将其附加到R中的栅格堆栈。贝叶斯网络模型从栅格堆栈读取每个单元位置的输入数据(例如资源供应,转换效率)并计算相应的能源供应(MCMC模拟)。结果,我获得了一个新的raste层,其中包含每个栅格单元的预期能量供应的特定概率分布。

但是,我对研究区内的总能量供应同样感兴趣。这意味着我需要聚合(总和)所有栅格单元的潜在供应,以便获得该区域内的整体供应潜力。

Click here for visual example

研究

我想要做的数学运算叫做卷积。 R提供了一个名为 convolve 的相应函数,它利用快速傅里叶变换

我到目前为止找到的示例(例如示例12)仅限于一次添加两个发行版。但是,我想总结多个发行版(数千,数百万)。

问题

如何总结(卷积)多个概率分布?

我有多达18,000,000个概率分布。因此,计算效率肯定是一个大问题。 此外,我主要对R中的解决方案感兴趣,但其他解决方案(尤其是Python)也受到赞赏。

1 个答案:

答案 0 :(得分:0)

我不知道如果一次卷积多个分布会导致速度增加。在幕后function FullName(props) { return ( <span> <FirstName id={props.id} /> <LastName id={props.id} /> </span> ); } 之类的东西不会简化为a123 = convolve(a1, a2, a3)吗?无论如何,在R中您可以尝试使用a12 = convolve(a1, a2); a123 = convolve(a12, a30)包并且并行执行所有卷积。在四核上可以加速计算(理论上)4倍。如果你真的想要更快的速度,你可以尝试使用foreach包来看看你是否可以在GPU上并行进行这些计算,但是这在编程方面不容易进入。如果我是你,我会更多地关注这些解决方案而不是试图加速进行卷积的函数。