python泊松分布_泊松分布与Python图解
Python包
import numpy as np
import matplotlib.pyplot as plt
from numpy import power
from scipy.special import comb
相關知識
Bernoulli Experiment (伯努利試驗)
對于一個試驗(事件),如果重復發生的概率是獨立的(互補影響),那么它是獨立試驗。特別的,如果這個試驗只存在兩種結果,則稱其為伯努利試驗。
Binomial Distribution (二項式分布)
對于重復
次的伯努利試驗,我們可以計算成功
次的概率:
def BinomialDist(n, k, p=.5):
return comb(n, k) * power(p, k) * power(1-p, n-k)
e.g. 假設我們拋一枚硬幣,總共拋10次,求10次都是正面的概率?
解:
驗證一下我們的函數:
BinomialDist(10, 10) == power(0.5, 10)
True
e.g. 假設我們拋一枚硬幣,總共拋10次,分別求
次是正面的概率?
ks = np.linspace(0, 10, 11) #ks=0,1,2,...,10
Plst = BinomialDist(10, ks)
plt.plot(Plst, '.')
plt.title(r'$P(X=k),\ X \sim B(10,0.5)$')
plt.show()
從上圖可以看出,
時候最大,這符合我們的預期:拋10次硬幣,正面朝上的次數最有可能為5。即隨機變量
,
。
簡單證明一下
:預備公式:
離散型隨機變量
的期望:
這里
,而
計算一下
,ks相當于
,Plst相當于
print('mean =', (ks*Plst).sum())
print('mean =', 10*0.5)
mean = 5.0
mean = 5.0
其他證明方法和方差(
)可以參考
總結,如果隨機變量
的概率滿足
二項式分布,則
。
定義
二項式分布
要求
必須為已知數,但是生活中很多事情是沒法統計出或者不存在精確的總數,這些事情往往是在一段連續的時間內出現一定的次數,相互之間沒有影響(隨機發生),并且單次事件耗時和概率幾乎可以忽略(只有出現或者未出現,類似二項式分布;任意時刻發生的概率幾乎為0)。例如,發生的次數。
由于事情是隨機發生的,也就是在統計的一定時間內,任意時刻都有可能發生,所以我們就要對二項式公式改進。假設一個小時內發生了
次,如果我們10分鐘統計一次,總共統計
次,我們期待
,也就是
次需要分別散落在6個10分鐘內,顯然
次可能出現在一個10分鐘內。那么1秒鐘統計一次呢?還是不行,因為還是存在1秒鐘發生
次的可能性。為了保證單位時間內最多只有一次事件發生,泊松分布將
,那么單次事件只能發生在
時間內。
我們可以統計出一段時間內出現的平均次數
,那么可以認為單次事件概率
,于是二項式分布就變成了:
其實
的定義就是(參見:
而
。
最終泊松分布定義為:若
服從參數為
的泊松分布,記為
或
。
相關性質:
PMF與PDF
雖然
,并且公式也可以計算
的非整數,但是泊松分布還是針對離散型隨機變量,所以上述公式又稱為泊松分布的PMF(概率質量函數)。PMF(Probability Mass Function,概率質量函數): 是對離散隨機變量的定義。是離散隨機變量在各個特定取值的概率。該函數通俗來說,就是對于一個離散型概率事件來說,使用這個函數來求它的各個成功事件結果的概率。
PDF(Probability Density Function,概率密度函數 ):是對連續性隨機變量的定義。與PMF不同的是,PDF在特定點上的值并不是該點的概率, 連續隨機概率事件只能求一段區域內發生事件的概率, 通過對這段區間進行積分來求。通俗來說, 使用這個概率密度函數將想要求概率的區間的臨界點(最大值和最小值)帶入求積分,就是該區間的概率。
參數lambda
我們來看不同參數
的泊松分布情況。注意,由于是離散隨機變量,所以我們對
只能取
的整數。
from scipy.special import factorial
Xs = np.linspace(0, 50, 51)
def PD(k, lmd):
return np.power(lmd, k) * np.exp(-lmd) / factorial(k)
plt.figure(figsize=(10, 6))
plt.plot(Xs, PD(Xs, lmd=1), '*--', label=rf'$\lambda=1$')
plt.plot(Xs, PD(Xs, lmd=5), '^--', label=rf'$\lambda=5$')
plt.plot(Xs, PD(Xs, lmd=10), '.', label=rf'$\lambda=10$')
plt.plot(Xs, PD(Xs, lmd=15), '+', label=rf'$\lambda=15$')
plt.legend()
plt.show()
從上圖中,可以看出,泊松分布圍繞著
為中心的,而且
越大,越對稱,也越像正態分布。
練習題
e.g.
與正態分布的關系
知乎上有個正態分布是所有分布趨于極限大樣本的分布,屬于連續分布。二項分布與泊松分布,則都是離散分布。二項分布的極限分布是泊松分布,泊松分布的極限分布是正態分布,即
,當
很大時,可以近似相等。當
很大時(還沒達到連續的程度),可以用泊松分布近似代替二項分布;當n再變大,幾乎可以看成連續時,二項分布和泊松分布都可以用正態分布來代替!
乍一看,好像是這么回事,但是仔細想想我們本來就是假設
。從上面的實驗中我們發現,
越大越接近正態分布。
簡書上一篇
比較大的時候,泊松分布會變成均值為
,方差為
的正態分布:
個人認為這個結論也是明顯不對,因為不論參數
,
都可以
。不過后半句話應該是對的。
根據這篇數學
也就是
和
時,變成了
:
這與我們的實驗也是相符的。
總結
以上是生活随笔為你收集整理的python泊松分布_泊松分布与Python图解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: QScrollArea qt滚动区域的简
- 下一篇: python click模块参数处理详解