【问题标题】:Generate ints over a binomial distribution with a given mean在具有给定均值的二项分布上生成整数
【发布时间】:2012-08-09 06:01:23
【问题描述】:

我正在编写代码来创建模拟行为。作为其中的一部分,我知道我想每分钟模拟 X 个事件。我不想每秒只做 x/60 个事件。相反,我想将这些事件分布在最终平均为 x/60 的二项分布中。

这些是事件,所以我们只处理整数。当然,分发不一定是完美的。只是比全天一致的 N-per-second-every-second-all 更现实的东西。

两个问题:

1) 是否有任何伪代码或公式可以帮助我更好地计算这些数据集,而不仅仅是我自己在 excel 中的调整?

2) 是否有任何我误用的术语(可能全部)可以帮助我更好地找到答案?

谢谢!

【问题讨论】:

    标签: random statistics


    【解决方案1】:

    您(可能)实际上要求的是泊松过程(不是二项式)——分布 当每单位时间发生事件的概率一致时,就会出现这种情况。这种分布在排队论中经常出现,所以那里的参考资料可以提供帮助。

    生成这些最简单的方法是生成事件之间的时间间隔:

    generate_time_interval_in_seconds( X=mean_events_per_minute )
        dt=-(60.0/X)*log( random_number_generator() )
        return dt 
    

    random_number_generator()0-1 中返回一个伪随机数。取其中的-log(.) 会产生一个呈指数分布的随机数,其平均值为1。 将其缩放60.0/X 为我们提供了一个指数分布的变量,其平均值 是事件之间的平均间隔。

    然后确定这一分钟发生了多少次:

    count=0
    T=generate_time_interval_in_seconds(X)
    while( T<60.0)
       ++count
       T+=generate_time_interval_in_seconds(X)
    return count
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-05-15
      • 2017-07-16
      • 2014-02-04
      • 1970-01-01
      • 1970-01-01
      • 2018-10-19
      相关资源
      最近更新 更多