【问题标题】:Calculating the propability of a sum of poisson distributed random variables计算泊松分布随机变量之和的概率
【发布时间】:2013-01-11 08:44:31
【问题描述】:

在 Java 中,我有一组用户,每个用户都有一个已知均值的泊松分布需求:

import org.apache.commons.math3.distribution.PoissonDistribution;

public class User {
  private int mean;
  private PoissonDistribution dist;
  public void setMean(int mean) {
      this.mean = mean;
      this.poissonDistribution = new PoissonDistribution(mean);
  }
}

...
User u1 = new User(); u1.setMean(20);
User u2 = new User(); u2.setMean(30);
User u3 = new User(); u3.setMean(40);

现在我想计算所有Users 的累积需求低于某个值的概率:

double probabilityBelowX = calculateCumulatedProbability(50, u1, u2, u3); // <- what must this method look like?

我被困在这个问题上,如何在 Java 中解决这个问题。我在数学包中遗漏了什么吗?我知道客户的需求是独立的,所以根据我对泊松分布的了解,我可以简单地将这些值相加。但是我只有cumulativeProbability(int x) 可以满足每一个用户的需求,而不是同时满足几个?

请指出我正确的方向,也许我使用了完全错误的方法。另外,如果这个问题更适合stackexchange的另一个站点,我会移动它。

【问题讨论】:

  • 这听起来更像是一个统计问题而不是编程问题; stats.stackexchange.com 可能会更好。
  • 感谢您的提示,我也会在那里尝试。我只是在这里发布,因为恕我直言,问题更多的是实际编程而不是潜在的概率复杂性。 :-)

标签: java math random


【解决方案1】:

正如您所指出的,the sum of independent Poisson distributions is again a Poisson distribution,参数等于原始分布的参数之和。

所以在calculateCumulatedProbability 中,您需要创建一个新的PoissonDistribution 对象,其均值等于u1u2u3 的均值之和(在这种情况下为PoissonDistribution(20+30+40))。然后该对象上的cumulativeProbability 方法将为您提供所需的概率。

您需要在User 上使用getMean 方法,以便您可以检索各个用户的方法。另外,总是有 3 个用户吗?如果没有,您最好让calculateCumulatedProbability 只使用两个参数:用户列表和概率计算值?

【讨论】:

  • 谢谢!我只是不确定我是否可以简单地使用每个分布的平均值,这似乎太简单了!但是,是的,它有效,到目前为止,它看起来是正确的!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-03-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多