python-指数分布介绍(scipy.stats.expon)
一、指數(shù)分布問(wèn)題:
有一種品牌的路由器,據(jù)廠家統(tǒng)計(jì)知該路由器平均壽命是50000小時(shí),現(xiàn)在有2個(gè)問(wèn)題:
1、去年我買(mǎi)了一個(gè)這樣的路由器,使用到現(xiàn)在已經(jīng)8000小時(shí)了一點(diǎn)問(wèn)題都沒(méi)有,那我這臺(tái)路由器還能用40000小時(shí)以上的概率是多少?
2、 我現(xiàn)在推薦鄰居也買(mǎi)了一個(gè)這樣的路由器,鄰居這臺(tái)路由器可以用40000小時(shí)以上的概率是多少?
?
二、 指數(shù)分布
泊松分布描述的是事件發(fā)生次數(shù),而指數(shù)分布描述的是事件發(fā)生的時(shí)間間隔。
指數(shù)分布主要用于描述電子元器件的壽命,其為連續(xù)型分布,概率密度函數(shù)為:
分布函數(shù)為:
期望:?, ? 方差:?
表示事件發(fā)生的頻率,在這里路由器平均壽命是50000小時(shí),那么可以認(rèn)為路由器平均50000小時(shí)壞一次,那么路由器壞的頻率是=1/50000。
此外,指數(shù)分布有一個(gè)十分重要的性質(zhì),無(wú)記憶性:
在上面問(wèn)題中,路由器已使用時(shí)間與后續(xù)還能使用的時(shí)間無(wú)關(guān),即我的路由器與鄰居家的路由器后續(xù)使用壽命是沒(méi)有差別的,即問(wèn)題1和2的概率是一樣的。
?
三、概率密度圖
用python計(jì)算概率密度,可以直接使用公式計(jì)算,或者用scipy.stats.expon計(jì)算:
from scipy import stats import math import numpy as np import matplotlib.pyplot as pltplt.rcParams['font.sans-serif']=['SimHei']#用來(lái)正常顯示中文標(biāo)簽 plt.rcParams['axes.unicode_minus']=False#用來(lái)正常顯示負(fù)號(hào)r = 1/50000 X = [] Y = [] for x in np.linspace(0, 1000000, 100000):if x==0:continue# p = r*math.e**(-r*x) #直接用公式算p = stats.expon.pdf(x, scale=1/r) #用scipy.stats.expon工具算,注意這里scale參數(shù)是標(biāo)準(zhǔn)差X.append(x)Y.append(p) plt.plot(X,Y) plt.xlabel("間隔時(shí)間") plt.ylabel("概率密度") plt.show()結(jié)果:
針對(duì)這個(gè)圖該如何理解呢?連續(xù)型隨機(jī)變量的概率密度在某個(gè)點(diǎn)的概率密度并不是在這一點(diǎn)發(fā)生的概率。這里引用一張圖
這張圖說(shuō)明事件發(fā)生的時(shí)間間隔大于1的概率是0.37,那么時(shí)間間隔小于1的概率是0.63,這一點(diǎn)用下面的累積概率分布來(lái)看更直觀。
?
四、累積概率分布(查表)
累積概率用stats.expon.cdf(x, scale=1/r)計(jì)算,當(dāng)然也可以用公式計(jì)算。
from scipy import stats import numpy as np import matplotlib.pyplot as pltplt.rcParams['font.sans-serif']=['SimHei']#用來(lái)正常顯示中文標(biāo)簽 plt.rcParams['axes.unicode_minus']=False#用來(lái)正常顯示負(fù)號(hào)r = 1/50000 X = [] Y = [] for x in np.linspace(0, 1000000, 100000):if x==0:continuep = stats.expon.cdf(x, scale=1/r) #用scipy.stats.expon工具算,注意這里scale參數(shù)是標(biāo)準(zhǔn)差X.append(x)Y.append(p) plt.plot(X,Y) plt.xlabel("間隔時(shí)間") plt.ylabel("累積概率") plt.show()結(jié)果:
?用累積概率查表x=40000的值:
p = stats.expon.cdf(40000, scale=50000) print(p)結(jié)果是:0.5506710358827784
也就是說(shuō)事件發(fā)生時(shí)間間隔小于40000的概率是0.55067,那么問(wèn)題1和2路由器在40000小時(shí)內(nèi)壞的概率是0.55067,相應(yīng)的可以使用40000小時(shí)以上的概率是1-0.55067=0.44933。
?
五、再來(lái)2個(gè)問(wèn)題
醫(yī)院平均每小時(shí)出生3個(gè)嬰兒,問(wèn):
1、接下來(lái)15分鐘有嬰兒出生的概率是多少?
2、在接下來(lái)的15~30分鐘內(nèi)有嬰兒出生的概率是多少?
問(wèn)題1:
這里嬰兒出生頻率,查表
p = stats.expon.cdf(15/60, scale=1/3) print(p)結(jié)果:0.5276334472589853
表明在15分鐘內(nèi)有嬰兒出生的概率是0.5276。
注意這里只是表明有嬰兒出生的概率是0.5276,并沒(méi)有指定有多少個(gè)嬰兒出生,更沒(méi)有表明有1個(gè)嬰兒出生的概率是0.5276。
問(wèn)題2:
由于指數(shù)分布是無(wú)記憶的,在接下來(lái)的15~30分鐘內(nèi)一共15分鐘,有嬰兒出生的概率與問(wèn)題1概率一樣,都是0.5276。
有些人不理解這個(gè)意思,錯(cuò)誤的用cdf(30/60)-cdf(15/60)
p15 = stats.expon.cdf(15/60, scale=1/3) p30 = stats.expon.cdf(30/60, scale=1/3) print(p30-p15)結(jié)果:0.2492363925925849
這個(gè)結(jié)果并不表明在接下來(lái)的15~30分鐘內(nèi)有嬰兒出生的概率。
而是表明在0~15分鐘內(nèi)沒(méi)有嬰兒出生并且在15~30分鐘內(nèi)有嬰兒出生的概率是0.2492,或者表明接下來(lái)出生的第一個(gè)孩子時(shí)間在15~30分鐘的概率是0.2492。
?
?
author:藍(lán)何忠
email:lanhezhong@163.com
總結(jié)
以上是生活随笔為你收集整理的python-指数分布介绍(scipy.stats.expon)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: socket网络通信实现与优化
- 下一篇: python开源怎么盈利_弄清楚Pyth