【问题标题】:Simulate Poisson arrival times given count of arrivals per day在给定每天到达次数的情况下模拟泊松到达时间
【发布时间】:2017-11-14 11:51:27
【问题描述】:

我正在尝试对具有到达时间的流程进行建模。我已经对实际到达次数进行了抽样,并且每天都有一系列到达次数。我想使用这些测量数据来制作一系列遵循泊松分布的实际到达时间戳。

例如,给定: countPerDay = [2,3,1,...] 计算: 到达时间 = [0.324, 0.547, 1.223, 1.563, 1.844, 2.618, ...]

观察到第一天有 2 个,第二天有 3 个,第三天有 1 个,以此类推。

我目前使用如下均匀分布来执行此操作:

arrivalTimes = []
for d,j in zip(range(len(countPerDay)), countPerDay):
    l = random.sample(range(ticksPerDay), j)
    arrivalTimes += [(d*ticksPerDay + v) for v in l]

如何更改此设置以使到达时间符合泊松分布而不是均匀分布?我知道指数分布旨在提供泊松到达间隔时间,但在这种情况下,我需要每天到达的确切数量,我担心它会使所有到达的人都偏向于每天的开始。

直观地说,泊松到达时间比统一的有什么不同/更好?

【问题讨论】:

    标签: python statistics probability


    【解决方案1】:

    您的代码很好,因为事实证明,一组随机分布的到达时间将具有随后的时间呈指数分布。为了测试,我使用了以下代码:

    n = int(1e8) # Many points
    event_times = n * np.random.rand(n)
    event_times.sort()
    event_distances = event_times[1:] - event_times[:-1]
    plt.hist(event_distances, bins=100)
    plt.xlim(0, 8) # To show the part with high n
    event_distances.mean()
    

    返回平均值 0.99999996740170383 和以下分布:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-30
      • 2012-04-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多