Как рассчитать вероятность пуассоновской случайной величины в scipy? - PullRequest
0 голосов
/ 14 мая 2019

Я хочу вычислить сумму (e λ i / i!) , где i=197,..., ∞ and λ=421.41, используя scipy.

Я просмотрел документацию scipy scipy.stats.poisson, которую можно найти в https://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.poisson.html

Однако у них есть несколько методов для scipy.stats.poisson, и он немного запутался в выборе подходящего мне методаБольшинство.

Например,

rvs(mu, loc=0, size=1, random_state=None)   Random variates.
pmf(k, mu, loc=0)   Probability mass function.
logpmf(k, mu, loc=0)    Log of the probability mass function.
cdf(k, mu, loc=0)   Cumulative distribution function.
logcdf(k, mu, loc=0)    Log of the cumulative distribution function.
sf(k, mu, loc=0)    Survival function (also defined as 1 - cdf, but sf is sometimes more accurate).
logsf(k, mu, loc=0) Log of the survival function.
ppf(q, mu, loc=0)   Percent point function (inverse of cdf — percentiles).
isf(q, mu, loc=0)   Inverse survival function (inverse of sf).
stats(mu, loc=0, moments=’mv’)  Mean(‘m’), variance(‘v’), skew(‘s’), and/or kurtosis(‘k’).
entropy(mu, loc=0)  (Differential) entropy of the RV.
expect(func, args=(mu,), loc=0, lb=None, ub=None, conditional=False)    Expected value of a function (of one argument) with respect to the distribution.
median(mu, loc=0)   Median of the distribution.
mean(mu, loc=0) Mean of the distribution.
var(mu, loc=0)  Variance of the distribution.
std(mu, loc=0)  Standard deviation of the distribution.
interval(alpha, mu, loc=0)  Endpoints of the range that contains alpha percent of the distribution

В настоящее время я использую sf(197, 421.41, loc=0).Однако я не совсем уверен, правильно ли я выбрал метод.Пожалуйста, дайте мне знать ваши мысли.

Я рад предоставить более подробную информацию, если это необходимо.

1 Ответ

1 голос
/ 14 мая 2019

Экспоненциальный множитель (e-λ λi / i!) Является функцией плотности вероятности (массы) распределения Пуассона, а сумма - функцией кумулятивной вероятности (распределения). Методы соответствуют .pmf и .cdf соответственно.

Пример:

from scipy.stats import poisson
k, mu = 1, 2
print(poisson.pmf(k, mu))   #k, mu
print(np.exp(-mu) * mu**k / np.math.factorial(k))
print(poisson.cdf(k, mu))
print(sum(np.exp(-mu) * mu**j / np.math.factorial(j) for j in range(k + 1)))

>>0.2706705664732254
0.2706705664732254
0.40600584970983794
0.4060058497098381

В вашем случае:

k, mu = 197, 421.41
print(1 - poisson.cdf(k - 1, mu))

Обратите внимание, что он даст 1.0 из-за точности чисел

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...