Python:计算一个点符合曲线的概率

标签 python probability

有一种情况,我得到了总票数和累计售票数据如下:

Total Tickets Available: 300
Day 1: 15 tickets sold to date
Day 2: 20 tickets sold to date
Day 3: 25 tickets sold to date
Day 4: 30 tickets sold to date
Day 5: 46 tickets sold to date

售出的门票数量是非线性的,我问如果有人计划在第 23 天买票,他能买到票的概率是多少?

我一直在寻找大量用于曲线拟合的库,如 numpy、PyLab 和 sage,但我有点不知所措,因为统计数据不在我的背景中。给定这组数据,我如何轻松计算概率?如果有帮助,我也有其他地方的售票数据,曲线应该会有些不同。

最佳答案

这个问题的最佳答案将需要有关该问题的更多信息——随着日期的临近(以及收割更多),人们购买机票的可能性会增加/减少吗?是否存在会暂时影响销售率的广告事件?等等。

不过,我们无法访问该信息,所以我们假设,作为初步近似值,门票销售率是恒定的。由于销售基本上是随机发生的,因此最好将它们建模为 Poisson process 请注意,这并没有说明许多人会购买不止一张票的事实,但我认为这不会对结果产生太大影响;也许真正的统计学家可以在这里插话。另外:我将在这里讨论恒定速率泊松过程,但请注意,由于您提到速率肯定不是恒定的,因此下一步您可以研究可变速率泊松过程。

要对泊松过程建模,您只需要门票销售的平均 率。在您的示例数据中,每天的销售额为 [15、5、5、5、16],因此平均比率约为每天 9.2 张票。我们已经售出 46 张票,所以还剩 254 张。

从这里开始,很容易问“给定 9.2 tpd 的速率,在 23 天内售出少于 254 张门票的概率是多少?” (忽略您不能卖出超过 300 张票的事实)。计算方法是使用累积分布函数(请参阅 here 了解泊松分布的 CDF)。

平均而言,我们预计 23 天后将售出 23 * 9.2 = 211.6 张门票,因此在概率分布的语言中,预期值 为 211.6。 CDF 告诉我们,“给定一个期望值 λ,看到一个值 <= x 的概率是多少”。您可以自己计算或让 scipy 为您计算:

>>> import scipy.stats
>>> scipy.stats.poisson(9.2 * 23).cdf(254-1)
0.99747286634158705

所以这告诉我们:IF门票销售可以准确地表示为泊松过程并且IF平均门票销售率确实是 9.2 tpd,那么概率至少有一张票在 23 天后可用是 99.7%。

现在假设某人想带一群 50 位 friend ,并且想知道如果他们在 25 天内购买所有 50 张门票的概率(将问题重新表述为“如果我们预计平均售出 9.2 * 25 张门票, 卖出 <= (254-50) 张门票的概率是多少?":

>>> scipy.stats.poisson(9.2 * 25).cdf(254-50)
0.044301801145630537

因此 25 天后有 50 张票可用的概率约为 4%。

关于Python:计算一个点符合曲线的概率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11481279/

相关文章:

python - 为什么只有一半的预期输出使用纹理坐标环绕模式,来自 SB OpenGL 的示例

python - 使用 dict vs class __dict__ 方法来格式化字符串

python - 使用 Matplotlib 创建概率/频率轴网格(不规则间隔)

r - 如何计算正态分布大于或等于 R 中某个值的概率?

python - django 和 dropzone 如何发布表单

python - 模块未找到错误 : No module named 'dnf' when running yum or dnf

python - 使用 python 在 CSV 文件中搜索字符串并写入结果

JavaScript - 如何在不替换的情况下随机抽样项目?

javascript - Math.floor(Math.random() * 255) 不会产生不均匀的概率吗?

python - PyMC3 贝叶斯线性回归预测与 sklearn.datasets