Python統計分析(2)——幾種重要的概率分佈:泊松分佈
阿新 • • 發佈:2018-12-21
#泊松分佈 (Poisson Distribution)
通俗定義:假定一個事件,在一段時間內隨即發生,且概率符合以下條件: 1.將該時間段分割成若干個小的時間段,在這個接近於0的小時間段裡,該事件發生一次的概率與該小時間段的長度成正比。 2.在每個極小時間段內,該事件連續發生兩次以上的概率恆等於0. 3.該事件在不同的小時間段裡,發生與否相互獨立。
則該事件符合泊松分佈。 泊松分佈使用了以下符號: λ是事件發生的速率, t是時間間隔的長, X是該時間間隔內發生的事件數, 其中X是泊松隨機變數,X的分佈稱為泊松分佈, 令μ表示t時間間隔內平均發生的事件數,則μ=λ*t.
#泊松分佈——繪圖 import numpy as np import scipy.stats as stats import matplotlib.pyplot as plt import matplotlib.style as style from IPython.core.display import HTML #PLOTTING CONFIG 繪圖配置 %matplotlib inline style.use('fivethirtyeight') plt.rcParams['figure.figsize']=(14,7) plt.figure(dpi=100) #PDF 繪製泊松分佈的概率密度函式 plt.bar(left=np.arange(20),height=(stats.poisson.pmf(np.arange(20),mu=5)),width=0.75,alpha=0.75) #CDF 繪製泊松分佈的累計概率曲線 plt.plot(np.arange(20),stats.poisson.cdf(np.arange(20),mu=2),color="#fc4f30") #LEGEND 圖例 plt.text(x=8,y=0.45,s="pmf(poisson)",alpha=0.75,weight="bold",color="#008fd5") plt.text(x=8.5,y=0.9,s="cdf",rotation=.75,weight="bold",color="#fc4f30")
λ對結果的影響
plt.figure(dpi=100) # PDF λ=1 plt.scatter(np.arange(20),stats.poisson.pmf(np.arange(20),mu=1),alpha=0.75,s=100) plt.plot(np.arange(20),stats.poisson.pmf(np.arange(20),mu=1),alpha=0.75) #PDF λ=5 plt.scatter(np.arange(20),stats.poisson.pmf(np.arange(20),mu=5),alpha=0.75,s=100) plt.plot(np.arange(20),stats.poisson.pmf(np.arange(20),mu=5),alpha=0.75) #PDF λ=10 plt.scatter(np.arange(20),stats.poisson.pmf(np.arange(20),mu=10),alpha=0.75,s=100) plt.plot(np.arange(20),stats.poisson.pmf(np.arange(20),mu=10),alpha=0.75) #LEGEND 圖例 plt.text(x=3,y=0.1,s="$λ=1$",alpha=0.75,weight="bold",color="#008fd5") plt.text(x=8.25,y=0.075,s="$λ=5$",rotation=.75,weight="bold",color="#fc4f30") plt.text(x=14.5,y=0.06,s="$λ=10$",rotation=.75,weight="bold",color="#fc4f30")
在λ處,事件發生的次數的概率最大。
#繪製PDF
import numpy as np
import scipy.stats as stats
import matplotlib.pyplot as plt
%matplotlib inline
plt.rcParams['figure.figsize']=(14,7)
#繪製泊松分佈的PMF曲線
x_s=np.arange(10)
y_s=stats.poisson.pmf(k=x_s,mu=5)
plt.scatter(x_s,y_s,s=100)
pmf值在μ處值最大。
#統計累積概率 #CDF from scipy.stats import poisson #求事件發生次數小於3的概率 print("p(x<3)={}".format(poisson.cdf(k=3,mu=5))) #求事件發生次數大於2小於8的概率 print("p(2<x<8)={}".format(poisson.cdf(k=8,mu=5)-poisson.cdf(k=2,mu=5)))
p(x<3)=0.2650259152973616 p(2<x<8)=0.8072543457950705