提问人:Drankenkin 提问时间:11/6/2023 最后编辑:Davide FioccoDrankenkin 更新时间:11/7/2023 访问量:169
在 Python 中使用 Skellam 发行版
Using the Skellam distribution in Python
问:
Skellam 分布是两个独立的泊松分布变量差值的概率分布。所以 Skellam 是基于减法的。我以前从未使用过它。
考虑 和 是两个泊松公式的两个结果,精确 和 ,如何应用 Skellam 分布?X
Y
X=21.75%
Y=7.58%
#Calculate Poisson
mu_X = 2.6
X = ((mu_X ** 3) * 2.7182818284 ** (-mu_X)) / 6 * 100
X = 21.75%
mu_Y = 0.5
Y = ((mu_Y ** 2) * 2.7182818284 ** (-mu_Y)) / 2 * 100
Y = 7.58
我曾想过一个简单的,但它似乎太平庸了,简单,绝对不正确。
#Incorrect use of Skellam
Z = 21.75% - 7.58%
Z = 14.17%
如何正确使用 Skellam 发行版并将其与 Python 一起使用?我想将它与 或 一起使用。numpy
scipy
答:
2赞
Davide Fiocco
11/6/2023
#1
在您的问题中,您正在计算两个具有不同平均值的泊松变量的概率,并假设两个值分别为 3 和 2。你可以用mu_X
mu_Y
from scipy.stats import poisson
mu_X = 2.6
mu_Y = 0.5
# Calculate the Poisson PMF for k=3 with mean mu_X
prob_X = poisson.pmf(3, mu_X) # about 21%
# Calculate the Poisson PMF for k=2 with mean mu_Y
prob_Y = poisson.pmf(2, mu_Y) # about 7%
Skellam 分布回答了以下问题:“上述两个泊松变量之差等于给定值的概率是多少”?
要在 Python 中计算它,您将使用
from scipy.stats import skellam
# Create a Skellam distribution with the two mean values
dist = skellam(mu_X, mu_Y)
# Calculate the probability of getting 1, just as example
prob = dist.pmf(1) # trying 1 but one could try whatever integer value of the difference
在这两种情况下,都会为您提供您要查找的内容,即与给定输入值相对应的概率(前一种情况下为 Poisson,后一种情况下为 Skellam)。.pmf
在 Skellam 分布的情况下,您需要输入您想知道概率的差值。
评论
0赞
Drankenkin
11/6/2023
Scrivo in inglese per i lettori futuri.为什么 dist.pmf(1) 中的值是 1?关于您的“上述两个泊松变量之差为给定值(假设为 1)的概率是多少”?,为什么您设置了 1 而不是另一个数字?
0赞
Davide Fiocco
11/6/2023
只是一个例子,因为您已将变量设置为等于 3 和 2 :)它可以是任何整数值。
0赞
Drankenkin
11/6/2023
有些东西没有加起来,对不起。dist.pmf(1) 它是干什么用的?如何选择要插入 dist.pmf(?) 中的数字?如果我只需要 mu_X 和 mu_Y 之间的差值,那么 dist.pmf(1) 有什么用,如何选择数字?谢谢,对不起
0赞
Davide Fiocco
11/6/2023
由于两个泊松变量可以采用任何正整数值(实际上,您计算了它们假设您选择的某些值(即 2 和 3)的概率),因此它们的差值可以采用任何整数值,并且具有给定的概率。调用会告诉您该概率的值是多少,作为该值的函数。P.S. 请注意,您不是在计算 和 之间的差:这只是两个数字 和 ,而不是分布!pmf
mu_X
mu_Y
2.6
0.5
0赞
Drankenkin
11/6/2023
让我们举个例子。我们认为prob_X是一支球队打进3球的概率。我们将 prob_Y 视为一支球队打进 2 球的概率。代码的结果为 0.22,即两个泊松变量之差的概率。dist.pmf(1) 是什么?就这里的价值而言,它是做什么用的?您能详细解释一下 dist.pmf(1) 中值的使用吗?这里的价值是什么?谢谢
评论