随着变量值的变化,有效修改多个独立事件的综合概率(模拟模型)。

问题描述 投票:0回答:1

背景

我需要在NetLogo(基于代理的模拟)和Go(并行化概率计算)中开发的基于代理的个体模拟模型中,结合数百万个体(树木)的成千上万事件的发生概率。对于那些感兴趣的人来说,这些概率是针对森林景观中的个体树木,由多个其他事件(如暴露、传播)导致的感染事件,每个事件都有自己的概率。

每个个体都有可能被其周围环境中的其他成千上万的个体所感染。完整的模型包括数以百万计的个体,因此我设计的模型是为了在模拟条件发生变化时尽可能快速有效地计算、修改和更新概率。

根据概率数学,如果 的事件,是 独立并行不悖 并以不同的概率发生 ,总概率为 计算为:

此外,每个事件的概率 是另外两个概率的乘积 ,其中 在不同事件中是恒定的,但 不同事件之间有所不同)。)

因此,在我的模型中,用于计算的总体方程是 感染率 由任何其他个体(即许多此类感染事件的组合概率)如下。

随着时间的推移,模拟中的数值 的值会发生变化(取决于各个树的状态变量的变化),而对于一个给定的个体树来说。 保持不变。因此,随着 在不同的时间步长之间发生变化,则 将需要修改以反映这种变化。

然而,考虑到计算中涉及的值的数量(数百万棵树中的每棵树都要进行数千次计算),存储每个值的 为每一个个体(树)一次(鉴于我使用的软件和计算资源的限制,也许不可能)。此外,我想限制NetLogo(存储每个个体的状态和概率)和Go(计算但不存储概率)之间来回传递的信息量,以避免超过内存限制。

与其从头开始重新计算总体概率,这需要大量的时间和计算资源,我希望能够修改总体概率。的值的变化,对给定的单个树来说。.

问题

在上述标准下,给定N个不同概率的独立事件,计算至少一个事件发生的概率的通用形式是什么?

如何有效地实现修改每个个体的感染概率,而不必从头开始重新计算?

例如,我是否可以重新排列方程,以分离出 这样我就可以计算出事件在时间上的概率。 根据其当时的概率 我的意思是:?

p.s.也贴在了(不同的格式)。https:/math.stackexchange.comquestions3717211efficiently-modify-the-combined-probability-of-many-independent-events-when-vari。https:/math.stackexchange.comquestions3714736combining-and-modify-many-probabilities-of-independent-non-mutually-exclusiv。

algorithm combinations netlogo probability modeling
1个回答
0
投票

正确的更新有一种明显的np完整的感觉。 一长串的研究从 http:/www2.stat.duke.edu~sayannpcomplete.pdf。 已经发现,更新各种目的的贝叶斯网络是NP困难的,而你的精确模型需要这样做。

我强烈建议你要么寻求一个简化的近似,要么使用蒙特卡洛方法。

© www.soinside.com 2019 - 2024. All rights reserved.