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

例如,给定:
    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]


我该如何更改以使到达时间处于泊松分布而不是均匀分布?我知道指数分布旨在提供泊松到达之间的时间,但是在这种情况下,如果我每天需要确切的到达次数,我担心它会将所有到达次数偏向每天的开始。

从直觉上讲,泊松到达时间比统一时间有什么不同/更好?

最佳答案

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

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和以下分布:python - 给定每天的到达次数,模拟泊松到达时间-LMLPHP

关于python - 给定每天的到达次数,模拟泊松到达时间,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44508996/

10-09 04:29