【问题标题】:Poisson probability for a range of numbers in PythonPython中一系列数字的泊松概率
【发布时间】:2017-09-23 16:40:53
【问题描述】:

只是为了让大家知道上下文,我会在我的问题之前告诉我我的目标。我正在尝试为足球比赛预测、角球和进球建模。为了对其建模,我尝试使用离散正态分布,正如标题所示,泊松分布。所以,假设我收集了数据,我的假设是 3 个月前的结果不相关,所以我会有一个像这样的向量。

a=[6,3,12,4,7,8,6,8,9]

我知道我可以使用 scipy 以这种方式返回特定结果的几率,例如 6 个角。

>>> scipy.stats.distributions.poisson.pmf(6, mean)

我想我可以添加所有先前的数字来获得 6 个或更少角的赔率,但是没有办法计算整个数字范围的赔率,在这种情况下,从 0 到 6?

此外,如果有人精通数学或其他任何知识想要分享更适合的分布或程序,请成为我的客人。我知道,为了使用拟合分布模型算法,我应该拥有比 10 个匹配项大得多的数据,但这就是我必须要做的。作为事后的想法,如果平均值过于偏斜,我正在考虑使用中值而不是平均值,所以你们也可以分享你的意见。

提前致谢

【问题讨论】:

    标签: python math modeling poisson


    【解决方案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
    >>> 
    

    如果你想要一个不以0开头的值范围的概率,你可以减去cdfs,这样X3 的概率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
    >>> 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多