Skip to main content

Poisson distribution

Probability Mass Function

The probability mass function (PMF) of the Poisson distribution is given by:

P(X=k)=λkeλk!\begin{align*} P(X=k) = \frac{\lambda ^k e^{-\lambda}}{k!} \end{align*}
import numpy as np
import matplotlib.pyplot as plt
from scipy import stats
# Possible number of occurrences
k = np.arange(0, 20)

# We will calculate probabilities for different lambda values
lamb_list = [1,2,4,10]

# Calculate the probability mass function for each lambda
pmf_dict = {}
for lamb in lamb_list:
pmf_dict[lamb] = [stats.poisson.pmf(k_, lamb) for k_ in k]
fig, ax = plt.subplots(1,1, figsize=(4,3))

cmap = cmap_cbfp1

for i, lamb in enumerate(lamb_list):
ax.plot(k, pmf_dict[lamb], "o-", markersize=3, label=fr"$\lambda$={lamb}", color=cmap(i))

ax.set_title("", loc='left')
ax.set_xlabel("$k$")
ax.set_ylabel("Probability Mass")

ax.legend(loc='upper right', frameon=True)

fig.tight_layout()
plt.close()
output plot

Cumulative Distribution Function

The cumulative distribution function (CDF) of a random variable XX that follows Poisson distribution is:

P(Xk)=i=0kP(X=i)=i=0kλieλi!\begin{align*} P(X \leq k) = \sum_{i=0}^{k} P(X=i) = \sum_{i=0}^{k} \frac{\lambda ^i e^{-\lambda}}{i!} \end{align*}
# Calculate the cumulative distribution function for each lambda
cdf_dict = {}
for lamb in lamb_list:
cdf_dict[lamb] = [stats.poisson.cdf(k_, lamb) for k_ in k]
fig, ax = plt.subplots(1,1, figsize=(4,3))

cmap = cmap_cbfp1

for i, lamb in enumerate(lamb_list):
ax.plot(k, cdf_dict[lamb], "o-", markersize=3, label=fr"$\lambda$={lamb}", color=cmap(i))

ax.set_title("", loc='left')
ax.set_xlabel("$k$")
ax.set_ylabel("CDF")

ax.legend(loc='lower right', frameon=True)

fig.tight_layout()
plt.close()
output plot

Mean and Variance

The mean of a random variable XX that follows Poisson distribution is:

E[X]=λE[X] = \lambda V[X]=λV[X] = \lambda