概率分布介绍:泊松分布
概率分布介紹:泊松分布
- 泊松分布 (Poisson Distribution)
- 定義
- 代碼
- 為什么泊松不得不發明泊松分布?
- 為什么非得是泊松分布的形式呢?
- 二項分布
- 二項分布的缺點
- 1. 二項隨機變量xxx是只有0或1
- 2. 二項分布中,實驗次數nnn應該提前知道
- 泊松分布的公式推導
- 泊松分布的特點
- 函數圖像
- 參考
泊松分布 (Poisson Distribution)
定義
假設在一定時間間隔 (interval)中一個事件可能會發生0,1,2,…次,在一個間隔中平均發生事件的次數由λ\lambdaλ決定,λ\lambdaλ是事件發生比率 (event rate)。在一定時間間隔中發生kkk次事件的概率如下:
P(kevents?in?interval?)=e?λλkk!P(k \text { events in interval })=e^{-\lambda} \frac{\lambda^{k}}{k !}P(k?events?in?interval?)=e?λk!λk?
代碼
使用from scipy import stats; stats.poisson.pmf(x,mu)
為什么泊松不得不發明泊松分布?
當時主要的問題是預測未來中發生事件的次數,更正式地說,預測在固定間隔的時間里,預測該事件發生n次的概率。
“事件”可理解為一天中訪問你網站的訪客數、一天中所接到的電話數。
為什么非得是泊松分布的形式呢?
例如:每周平均有15個人給我的博客點贊,我想預測下一周的點贊數。假設現在并不知道泊松分布,如何解決?可以試試二項分布 ([[Binomial Distribution]])
二項分布
如果使用二項分布來解決,令xxx表示在nnn次重復實驗中發生點贊的次數,ppp表示每次實驗的點贊概率(Probability)。我們現在已知的是每周平均的點贊比率(rate)為15個贊/周,并不知道點贊概率ppp和博客訪客數nnn的任何信息。
因此,我們需要得到更多的信息ppp和nnn,來建模成二項分布問題。
假設過去的1年(=52周)的數據中,一共有10000人看了我的博客,其中有800個人點贊了。這樣平均每周訪客數=10000/52=19210000/52=19210000/52=192,平均每周點贊數=800/52=15800/52=15800/52=15。可得到概率p=800/10000=0.08=8%p=800/10000=0.08=8\%p=800/10000=0.08=8%
使用二項分布的概率質量函數 (Probability Mass Function),可預測下一周有20個人點贊的概率為:
Bin(m=20∣N=192,p=0.08)=N!(N?m)!m!pm(1?p)N?m=0.04657\text{Bin}(m=20 \mid N=192, p=0.08)= \frac{N !}{(N-m) ! m !} p^{m}(1-p)^{N-m} = 0.04657Bin(m=20∣N=192,p=0.08)=(N?m)!m!N!?pm(1?p)N?m=0.04657
二項分布的缺點
1. 二項隨機變量xxx是只有0或1
上面的過程中,可以將xxx=該周有15次點贊;也可以是xxx=該天有(15/7)=2.1個贊;也可以是xxx=該小時有(15/7*24)=0.1個贊。這意味著大多數小時沒有贊,而有的小時有一個點贊。仔細想想,似乎一定時間內出現超過1個點贊的情況也是合理的(比如文章早上剛發布的時候)。由此,二項分布的問題是它無法在一個時間單元中包含超過1次的事件。(在這里,時間單元是1小時)
那么,我們將1小時切分成60分鐘,時間單元是1分鐘,使得1小時能夠包含多個事件。問題得到解決了嗎?還沒有,比如何同學的5G視頻,一晚上點贊就過百萬,1分鐘內不止一個贊。那我們再將時間單元切分成秒,這樣1分鐘又能包含多個事件。這樣思考下去,我們會將已有的事件單元不斷地切分,直到滿足一個時間單元只包含一個事件,而大的時間單元能夠包含1個以上的事件。
形式化來看,這意味著n→∞n \to \inftyn→∞,當我們假定比率(rate)固定,則必須讓p→0p \to 0p→0。否則,點贊數n×p→∞n \times p \to \inftyn×p→∞
基于以上的約束,時間單元變得無窮小。我們不用擔心同一個時間單元包含一個以上的事件了。
2. 二項分布中,實驗次數nnn應該提前知道
在用二項分布時,無法直接用比率(rate)來計算點贊概率ppp,而是需要nnn和ppp才能使用二項分布的概率質量函數。而泊松分布不需要知道nnn和ppp。它假定了nnn是一個無窮大的數,而ppp是無窮小的數。泊松分布的唯一參數是比率λ\lambdaλ(即xxx的期望)。現實中,得知nnn和ppp得進行很多次實驗,而短時間內,比率(rate)很容易得到(例如,在下午2點-4點,收到了4個點贊)。
泊松分布的公式推導
泊松分布的特點
泊松分布可看作是對稀有事件的建模,其中的比率λ\lambdaλ可以是任意的,但通常不要太小。
泊松分布是非對稱的,通常往右偏移。
λ\lambdaλ越大,分布圖像越像一個正態分布。圖像來自wiki
每個時間單元的事件平均發生比率是常數
例如:博客的每小時平均點贊數不太可能服從泊松分布,而博客每個月的平均點贊數可近似看作是固定的
事件是獨立的
假如你的博客寫的很好,被公眾號轉發推廣了,那可能會有大批的讀者來閱讀,這種情況下的點贊數就不滿足泊松分布了。
若每個時間單元發生事件的次數服從泊松分布,那么兩次事件發生間等待的時間服從指數分布。泊松分布是離散的,而指數分布是連續的,這兩個分布緊密相關。
函數圖像
import matplotlib.pyplot as plt import numpy as np from scipy import stats# Create x and y x = np.arange(35) y1 = stats.binom.pmf(x, 192, 0.08) y2 = stats.poisson.pmf(x,10) y3 = stats.poisson.pmf(x,17) y4 = stats.poisson.pmf(x,20) # Create the plot fig, ax = plt.subplots() plt.plot(x, y1, label='binomial(N=192, mu=0.08)', linewidth=3, color='black') plt.plot(x, y2, label='poisson(mu=10)', linewidth=3, color='royalblue') plt.plot(x, y3, label='poisson(mu=17)', linewidth=3, color='orange') plt.plot(x, y4, label='poisson(mu=25)', linewidth=3) # Make the x=0, y=0 thicker # ax.set_aspect('equal') ax.grid(True, which='both') ax.axhline(y=0, color='k') ax.axvline(x=0, color='k') # Add a title plt.title('Probability Mass Function', fontsize=20) # Add X and y Label plt.xlabel('x', fontsize=16) plt.ylabel('f(x)', fontsize=16) # Add a grid # plt.grid(alpha=.4, linestyle='--') # Add a Legend plt.legend(bbox_to_anchor=(1, 1), loc='best', borderaxespad=1, fontsize=12) # Show the plot plt.show()參考
Poisson Distribution — Intuition, Examples, and Derivation
總結
以上是生活随笔為你收集整理的概率分布介绍:泊松分布的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: IReport问题的整理
- 下一篇: 机器学习之线性回归缩减维度