只是为了让每个人都知道背景,我会在我的问题之前告诉我的目标。我正在尝试模拟,足球比赛预测,角落和目标。为了对其进行建模,我尝试使用离散化的正态分布,并且如标题所示,泊松分布。所以,我们假设我收集了数据,而我的假设是3个月前的结果不相关,所以我会有一个这样的矢量。
a=[6,3,12,4,7,8,6,8,9]
我知道我可以使用scipy来返回特定结果的几率,例如6角,就这样。
>>> scipy.stats.distributions.poisson.pmf(6, mean)
我想我可以添加所有先前的数字以获得6个或更少角落的赔率,但是没有办法计算整个数字范围的赔率,在这种情况下,从0到6?< / p>
此外,如果有人精通数学或任何想要分享更合适的分发或程序的人,请成为我的客人。我知道,为了使用拟合分布模型算法,我应该拥有比10个匹配更大的数据,但这与我必须工作的东西相比。作为一个事后的想法,我考虑使用中位数而不是平均数,如果平均值太偏斜,那么你们也可以分享你们的意见。
提前致谢
答案 0 :(得分:1)
对于给定的离散分布,pmf
函数计算特定值的概率,cdf
函数计算任何值小于或等于给定值的概率:
>>> poisson = scipy.stats.distributions.poisson
>>> poisson.pmf(6, 11.5)
0.032543780632085614
>>> poisson.pmf([0,1,2,3,4,5,6], 11.5)
array([ 1.01300936e-05, 1.16496076e-04, 6.69852439e-04,
2.56776768e-03, 7.38233209e-03, 1.69793638e-02,
3.25437806e-02])
>>> sum(poisson.pmf([0,1,2,3,4,5,6], 11.5))
0.060269722823413086
>>> poisson.cdf(6, 11.5)
0.060269722823413183
>>>
如果你想要一系列不以零开头的值的概率,你可以减去cdfs,所以 3&lt; = X&lt; = 6 的概率< em> X 平均值为11.5的泊松变量是:
>>> poisson.cdf(6, 11.5) - poisson.cdf(2, 11.5)
0.059473244214220844
>>> sum(poisson.pmf([3,4,5,6], 11.5))
0.059473244214220747
>>>