統計機器學習-泊松分佈

泊松分佈:

模型:假設單位時間內發生時間λ\lambda次,求單位時間內事件發生x次的概率。
分佈函數:
p(x)=eλλxx!p(x)=\frac{e^{-\lambda}\lambda^x}{x!}
矩母函數:
Mx(t)=E(etx)=x=0etxeλλxx!M_x(t)=E(e^{tx})=\sum_{x=0}^∞ \frac{e^{tx}e^{-\lambda}\lambda^x}{x!}
E(x)=λ  Var(x)=λ期望E(x)=\lambda \ ;\ 方差Var(x)=\lambda
似然函數:
L=nλ+i=1n(xilnλlnxi)L=-n\lambda+\sum_{i=1}^n(x_iln\lambda-lnx_i)
性質:
x1Poisson(λ1) x2Poisson(λ2)x_1\sim Poisson(\lambda_1) \ ,x_2\sim Poisson(\lambda_2)
x1+x2Poisson(λ1+λ2)x_1+x_2\sim Poisson(\lambda_1+\lambda_2)


用matplotlib驗證這一性質:

import numpy as np
import matplotlib.pyplot as plt

plt.xlim(0,30)
plt.ylim(0.00,0.20)
sample1 = np.random.poisson(lam=5, size=10000) 
sample2 = np.random.poisson(lam=10, size=10000) 
sample3 = np.random.poisson(lam=15, size=10000)
pillar=30
s1=plt.hist(sample1,rwidth=0.9,alpha=0.6,density=True,label="x1",bins=pillar,range=[0,pillar])
plt.plot(s1[1][0:pillar],s1[0],'blue')
s2=plt.hist(sample2,rwidth=0.9,alpha=0.6,density=True,label="x2",bins=pillar,range=[0,pillar])
plt.plot(s2[1][0:pillar],s2[0],'orange')
s3=plt.hist(sample3,rwidth=0.9,alpha=0.6,density=True,label="x3",bins=pillar,range=[0,pillar])
plt.plot(s3[1][0:pillar],s3[0],'g')
s4=plt.hist(sample1+sample2,rwidth=0.9,alpha=0.6,density=True,label="x3=x1+x2",bins=pillar,range=[0,pillar])
plt.plot(s4[1][0:pillar],s4[0],'r')
plt.legend()
plt.show()

在這裏插入圖片描述
泊松分佈與二項分佈的關係:

二項分佈:
Cnxpx(1p)nxC_n^x p^x(1-p)^{n-x}
二者關係:
limn(xn)px(1p)nx=eλλxx!\lim_{n\to∞}\big(_x^n\big)p^x(1-p)^{n-x}=\frac{e^{-\lambda }\lambda^x}{x!}
證明:
p=λn令p=\frac{\lambda}{n}
limn(xn)(λn)x(1λn)nx\lim_{n\to∞}\big(_x^n\big)(\frac{\lambda}{n})^x(1-\frac{\lambda}{n})^{n-x}
=limnn!x!(nx)!(λn)x(1λn)nx=\lim_{n\to∞}\frac{n!}{x!(n-x)!}(\frac{\lambda}{n})^x(1-\frac{\lambda}{n})^{n-x}
=λxx!limnn!x!(nx)!(1λn)n(1λn)nx=\frac{\lambda^x}{x!} \lim_{n\to∞}\frac{n!}{x!(n-x)!}(1-\frac{\lambda}{n})^n(1-\frac{\lambda}{n})^{n-x}

在這裏插入圖片描述
在這裏插入圖片描述

import numpy as np
import matplotlib.pyplot as plt


def draw(n,p,lam):
    plt.title("n={}, p={}, $\lambda$={}".format(n,p,lam))
    b = np.random.binomial(n=n,p=p, size=1000)
    p = np.random.poisson(lam=lam, size=1000) 
    pillar=50
    sb=plt.hist(b,rwidth=0.9,alpha=0.6,density=True,bins=pillar,range=[0,pillar],label="binomial")
    plt.plot(sb[1][0:pillar],sb[0],'blue')
    sp=plt.hist(p,rwidth=0.9,alpha=0.6,density=True,bins=pillar,range=[0,pillar],label="poisson")
    plt.plot(sp[1][0:pillar],sp[0],'orange')
    plt.legend()


plt.figure(figsize=(8,8),dpi=80)

plt.subplot(221)
draw(100,0.1,10)

plt.subplot(222)
draw(100,0.1,20)

plt.subplot(223)
draw(300,0.1,10)

plt.subplot(224)
draw(10,0.1,50)

plt.show()

(n×p越接近於λ\lambda,擬合程度越好)
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章