我們這次的任務(wù)是利用Python來模擬拋硬幣的情況,并且記錄正面朝上占所有試驗(yàn)中的比率,大家是不是想起了課堂中提到過的蒲豐,皮爾遜等人做的試驗(yàn)?當(dāng)然,我們現(xiàn)在已經(jīng)不再需要再去扔幾千次,幾萬次硬幣了;Python為我們提供了一個(gè)相當(dāng)便捷的解決方案。Python 的randint(0,1)函數(shù)可以等概率,隨機(jī)地返回0與1兩個(gè)數(shù),我們可以將返回的數(shù)值0記為硬幣的反面,1記為硬幣的正面,所以問題就轉(zhuǎn)換成了:統(tǒng)計(jì)大量重復(fù)試驗(yàn)中,結(jié)果為1占總試驗(yàn)次數(shù)的比例。
為柳南等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計(jì)制作服務(wù),及柳南網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為成都網(wǎng)站制作、網(wǎng)站設(shè)計(jì)、柳南網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!
簡單地畫一個(gè)流程圖,希望有助于大家理解。
*流程圖是網(wǎng)上使用ProcessOn畫的,一個(gè)免費(fèi)的在線流程圖繪制平臺(tái),簡單容易上手,強(qiáng)烈安利給大家~
廢話不多說,上圖:
可以看見,隨著硬幣投擲次數(shù)的增加,正面朝上的幾率逐漸穩(wěn)定在0.5,這就是我們?cè)谡n堂上講過的內(nèi)容:在重復(fù)試驗(yàn)中,我們可以使用頻率的穩(wěn)定值作為事件發(fā)生的概率。
怎么樣,是不是學(xué)到了一招?
在這個(gè)程序的基礎(chǔ)上,我相信大家有能力進(jìn)行進(jìn)一步地延伸與發(fā)散。
大家可以嘗試著去完成這樣三個(gè)問題:
1,比較一下當(dāng)投擲次數(shù)為100次,1000次與10000次的圖像差別(提示:為了使區(qū)別更加顯著,大家可以嘗試將X軸使用對(duì)數(shù)坐標(biāo)表示)
好的,就先寫到這里,感覺有意思的話點(diǎn)個(gè)贊再走唄~
random.seed()用來設(shè)置初始值,這里random.seed(0)是從0開始。
random.choice() 用來隨機(jī)分配,這里表示隨機(jī)分配從20,20,40,50,60,70里隨機(jī)分配。
random.random() 用于隨機(jī)生成從0到1的浮點(diǎn)數(shù),即0=n=1.0。
“_” 是占位符,表示不在意變量的值,用來循環(huán)n次。
二、安裝python的科學(xué)計(jì)算包scipy
在python的科學(xué)計(jì)算包scipy的stats模塊計(jì)算出常見概率分布的概率值,并用matplotlib包進(jìn)行繪圖。
在notebook環(huán)境下安裝科學(xué)計(jì)算包scipy。如果已安裝忽略下面安裝步驟。
安裝步驟:
1)打開終端Anaconda Prompt
2)在conda中運(yùn)行以下命令:conda install scipy
如果存在多個(gè)python環(huán)境,先進(jìn)入想要的環(huán)境再安裝,比如我自己設(shè)置了py2和py3兩個(gè)環(huán)境,先在conda中進(jìn)入python環(huán)境:activate py3,再按上面步驟2執(zhí)行
如果還沒有安裝numpy包和matplotlib包,也按上述命令安裝這些包
c(下面是總數(shù),上面是出現(xiàn)的次數(shù))。看式子比較容易明白。如:c(上面是2,下面是3)=(3*2)/(2*1)=3。上面的數(shù)規(guī)定幾個(gè)數(shù)相乘,數(shù)是從大往小
R編程語言已經(jīng)成為統(tǒng)計(jì)分析中的事實(shí)標(biāo)準(zhǔn)。但在這篇文章中,我將告訴你在Python中實(shí)現(xiàn)統(tǒng)計(jì)學(xué)概念會(huì)是如此容易。我要使用Python實(shí)現(xiàn)一些離散和連續(xù)的概率分布。雖然我不會(huì)討論這些分布的數(shù)學(xué)細(xì)節(jié),但我會(huì)以鏈接的方式給你一些學(xué)習(xí)這些統(tǒng)計(jì)學(xué)概念的好資料。在討論這些概率分布之前,我想簡單說說什么是隨機(jī)變量(random variable)。隨機(jī)變量是對(duì)一次試驗(yàn)結(jié)果的量化。
舉個(gè)例子,一個(gè)表示拋硬幣結(jié)果的隨機(jī)變量可以表示成
Python
1
2
X = {1 如果正面朝上,
2 如果反面朝上}
隨機(jī)變量是一個(gè)變量,它取值于一組可能的值(離散或連續(xù)的),并服從某種隨機(jī)性。隨機(jī)變量的每個(gè)可能取值的都與一個(gè)概率相關(guān)聯(lián)。隨機(jī)變量的所有可能取值和與之相關(guān)聯(lián)的概率就被稱為概率分布(probability distributrion)。
我鼓勵(lì)大家仔細(xì)研究一下scipy.stats模塊。
概率分布有兩種類型:離散(discrete)概率分布和連續(xù)(continuous)概率分布。
離散概率分布也稱為概率質(zhì)量函數(shù)(probability mass function)。離散概率分布的例子有伯努利分布(Bernoulli distribution)、二項(xiàng)分布(binomial distribution)、泊松分布(Poisson distribution)和幾何分布(geometric distribution)等。
連續(xù)概率分布也稱為概率密度函數(shù)(probability density function),它們是具有連續(xù)取值(例如一條實(shí)線上的值)的函數(shù)。正態(tài)分布(normal distribution)、指數(shù)分布(exponential distribution)和β分布(beta distribution)等都屬于連續(xù)概率分布。
若想了解更多關(guān)于離散和連續(xù)隨機(jī)變量的知識(shí),你可以觀看可汗學(xué)院關(guān)于概率分布的視頻。
二項(xiàng)分布(Binomial Distribution)
服從二項(xiàng)分布的隨機(jī)變量X表示在n個(gè)獨(dú)立的是/非試驗(yàn)中成功的次數(shù),其中每次試驗(yàn)的成功概率為p。
E(X) =?np, Var(X) =?np(1?p)
如果你想知道每個(gè)函數(shù)的原理,你可以在IPython筆記本中使用help file命令。?E(X)表示分布的期望或平均值。
鍵入stats.binom?了解二項(xiàng)分布函數(shù)binom的更多信息。
二項(xiàng)分布的例子:拋擲10次硬幣,恰好兩次正面朝上的概率是多少?
假設(shè)在該試驗(yàn)中正面朝上的概率為0.3,這意味著平均來說,我們可以期待有3次是硬幣正面朝上的。我定義擲硬幣的所有可能結(jié)果為k = np.arange(0,11):你可能觀測(cè)到0次正面朝上、1次正面朝上,一直到10次正面朝上。我使用stats.binom.pmf計(jì)算每次觀測(cè)的概率質(zhì)量函數(shù)。它返回一個(gè)含有11個(gè)元素的列表(list),這些元素表示與每個(gè)觀測(cè)相關(guān)聯(lián)的概率值。
您可以使用.rvs函數(shù)模擬一個(gè)二項(xiàng)隨機(jī)變量,其中參數(shù)size指定你要進(jìn)行模擬的次數(shù)。我讓Python返回10000個(gè)參數(shù)為n和p的二項(xiàng)式隨機(jī)變量。我將輸出這些隨機(jī)變量的平均值和標(biāo)準(zhǔn)差,然后畫出所有的隨機(jī)變量的直方圖。
泊松分布(Poisson Distribution)
一個(gè)服從泊松分布的隨機(jī)變量X,表示在具有比率參數(shù)(rate parameter)λ的一段固定時(shí)間間隔內(nèi),事件發(fā)生的次數(shù)。參數(shù)λ告訴你該事件發(fā)生的比率。隨機(jī)變量X的平均值和方差都是λ。
E(X) =?λ, Var(X) =?λ
泊松分布的例子:已知某路口發(fā)生事故的比率是每天2次,那么在此處一天內(nèi)發(fā)生4次事故的概率是多少?
讓我們考慮這個(gè)平均每天發(fā)生2起事故的例子。泊松分布的實(shí)現(xiàn)和二項(xiàng)分布有些類似,在泊松分布中我們需要指定比率參數(shù)。泊松分布的輸出是一個(gè)數(shù)列,包含了發(fā)生0次、1次、2次,直到10次事故的概率。我用結(jié)果生成了以下圖片。
你可以看到,事故次數(shù)的峰值在均值附近。平均來說,你可以預(yù)計(jì)事件發(fā)生的次數(shù)為λ。嘗試不同的λ和n的值,然后看看分布的形狀是怎么變化的。
現(xiàn)在我來模擬1000個(gè)服從泊松分布的隨機(jī)變量。
正態(tài)分布(Normal Distribution)
正態(tài)分布是一種連續(xù)分布,其函數(shù)可以在實(shí)線上的任何地方取值。正態(tài)分布由兩個(gè)參數(shù)描述:分布的平均值μ和方差σ2?。
E(X) =?μ, Var(X) =?σ2
正態(tài)分布的取值可以從負(fù)無窮到正無窮。你可以注意到,我用stats.norm.pdf得到正態(tài)分布的概率密度函數(shù)。
β分布(Beta Distribution)
β分布是一個(gè)取值在?[0, 1]?之間的連續(xù)分布,它由兩個(gè)形態(tài)參數(shù)α和β的取值所刻畫。
β分布的形狀取決于α和β的值。貝葉斯分析中大量使用了β分布。
當(dāng)你將參數(shù)α和β都設(shè)置為1時(shí),該分布又被稱為均勻分布(uniform distribution)。嘗試不同的α和β取值,看看分布的形狀是如何變化的。
指數(shù)分布(Exponential Distribution)
指數(shù)分布是一種連續(xù)概率分布,用于表示獨(dú)立隨機(jī)事件發(fā)生的時(shí)間間隔。比如旅客進(jìn)入機(jī)場(chǎng)的時(shí)間間隔、打進(jìn)客服中心電話的時(shí)間間隔、中文維基百科新條目出現(xiàn)的時(shí)間間隔等等。
我將參數(shù)λ設(shè)置為0.5,并將x的取值范圍設(shè)置為 $[0, 15]$ 。
接著,我在指數(shù)分布下模擬1000個(gè)隨機(jī)變量。scale參數(shù)表示λ的倒數(shù)。函數(shù)np.std中,參數(shù)ddof等于標(biāo)準(zhǔn)偏差除以 $n-1$ 的值。
結(jié)語(Conclusion)
概率分布就像蓋房子的藍(lán)圖,而隨機(jī)變量是對(duì)試驗(yàn)事件的總結(jié)。我建議你去看看哈佛大學(xué)數(shù)據(jù)科學(xué)課程的講座,Joe Blitzstein教授給了一份摘要,包含了你所需要了解的關(guān)于統(tǒng)計(jì)模型和分布的全部。
有ramdom模塊可以取隨機(jī)數(shù),所以
from random import readom
rnd = random()
if rnd0.5:
....return 技能1
elif rnd0.8:
....return 技能2
else:
....return 技能3
如果隨機(jī)變量X的所有取值都可以逐個(gè)列舉出來,則稱X為離散型隨機(jī)變量。相應(yīng)的概率分布有二項(xiàng)分布,泊松分布。
如果隨機(jī)變量X的所有取值無法逐個(gè)列舉出來,而是取數(shù)軸上某一區(qū)間內(nèi)的任一點(diǎn),則稱X為連續(xù)型隨機(jī)變量。相應(yīng)的概率分布有正態(tài)分布,均勻分布,指數(shù)分布,伽馬分布,偏態(tài)分布,卡方分布,beta分布等。(真多分布,好恐怖~~)
在離散型隨機(jī)變量X的一切可能值中,各可能值與其對(duì)應(yīng)概率的乘積之和稱為該隨機(jī)變量X的期望值,記作E(X) 。比如有隨機(jī)變量,取值依次為:2,2,2,4,5。求其平均值:(2+2+2+4+5)/5 = 3。
期望值也就是該隨機(jī)變量總體的均值。 推導(dǎo)過程如下:
= (2+2+2+4+5)/5
= 1/5 2 3 + 4/5 + 5/5
= 3/5 2 + 1/5 4 + 1/5 5
= 0.6 2 + 0.2 4 + 0.2 5
= 60% 2 + 20% 4 + 20%*5
= 1.2 + 0.8 + 1
= 3
倒數(shù)第三步可以解釋為值為2的數(shù)字出現(xiàn)的概率為60%,4的概率為20%,5的概率為20%。 所以E(X) = 60% 2 + 20% 4 + 20%*5 = μ = 3。
0-1分布(兩點(diǎn)分布),它的隨機(jī)變量的取值為1或0。即離散型隨機(jī)變量X的概率分布為:P{X=0} = 1-p, P{X=1} = p,即:
則稱隨機(jī)變量X服從參數(shù)為p的0-1分布,記作X~B(1,p)。
在生活中有很多例子服從兩點(diǎn)分布,比如投資是否中標(biāo),新生嬰兒是男孩還是女孩,檢查產(chǎn)品是否合格等等。
大家非常熟悉的拋硬幣試驗(yàn)對(duì)應(yīng)的分布就是二項(xiàng)分布。拋硬幣試驗(yàn)要么出現(xiàn)正面,要么就是反面,只包含這兩個(gè)結(jié)果。出現(xiàn)正面的次數(shù)是一個(gè)隨機(jī)變量,這種隨機(jī)變量所服從的概率分布通常稱為 二項(xiàng)分布 。
像拋硬幣這類試驗(yàn)所具有的共同性質(zhì)總結(jié)如下:(以拋硬幣為例)
通常稱具有上述特征的n次重復(fù)獨(dú)立試驗(yàn)為n重伯努利試驗(yàn)。簡稱伯努利試驗(yàn)或伯努利試驗(yàn)概型。特別地,當(dāng)試驗(yàn)次數(shù)為1時(shí),二項(xiàng)分布服從0-1分布(兩點(diǎn)分布)。
舉個(gè)栗子:拋3次均勻的硬幣,求結(jié)果出現(xiàn)有2個(gè)正面的概率 。
已知p = 0.5 (出現(xiàn)正面的概率) ,n = 3 ,k = 2
所以拋3次均勻的硬幣,求結(jié)果出現(xiàn)有2個(gè)正面的概率為3/8。
二項(xiàng)分布的期望值和方差 分別為:
泊松分布是用來描述在一 指定時(shí)間范圍內(nèi)或在指定的面積或體積之內(nèi)某一事件出現(xiàn)的次數(shù)的分布 。生活中服從泊松分布的例子比如有每天房產(chǎn)中介接待的客戶數(shù),某微博每月出現(xiàn)服務(wù)器癱瘓的次數(shù)等等。 泊松分布的公式為 :
其中 λ 為給定的時(shí)間間隔內(nèi)事件的平均數(shù),λ = np。e為一個(gè)數(shù)學(xué)常數(shù),一個(gè)無限不循環(huán)小數(shù),其值約為2.71828。
泊松分布的期望值和方差 分別為:
使用Python繪制泊松分布的概率分布圖:
因?yàn)檫B續(xù)型隨機(jī)變量可以取某一區(qū)間或整個(gè)實(shí)數(shù)軸上的任意一個(gè)值,所以通常用一個(gè)函數(shù)f(x)來表示連續(xù)型隨機(jī)變量,而f(x)就稱為 概率密度函數(shù) 。
概率密度函數(shù)f(x)具有如下性質(zhì) :
需要注意的是,f(x)不是一個(gè)概率,即f(x) ≠ P(X = x) 。在連續(xù)分布的情況下,隨機(jī)變量X在a與b之間的概率可以寫成:
正態(tài)分布(或高斯分布)是連續(xù)型隨機(jī)變量的最重要也是最常見的分布,比如學(xué)生的考試成績就呈現(xiàn)出正態(tài)分布的特征,大部分成績集中在某個(gè)范圍(比如60-80分),很小一部分往兩端傾斜(比如50分以下和90多分以上)。還有人的身高等等。
正態(tài)分布的定義 :
如果隨機(jī)變量X的概率密度為( -∞x+∞):
則稱X服從正態(tài)分布,記作X~N(μ,σ2)。其中-∞μ+∞,σ0, μ為隨機(jī)變量X的均值,σ為隨機(jī)變量X的標(biāo)準(zhǔn)差。 正態(tài)分布的分布函數(shù)
正態(tài)分布的圖形特點(diǎn) :
使用Python繪制正態(tài)分布的概率分布圖:
正態(tài)分布有一個(gè)3σ準(zhǔn)則,即數(shù)值分布在(μ-σ,μ+σ)中的概率為0.6827,分布在(μ-2σ,μ+2σ)中的概率為0.9545,分布在(μ-3σ,μ+3σ)中的概率為0.9973,也就是說大部分?jǐn)?shù)值是分布在(μ-3σ,μ+3σ)區(qū)間內(nèi),超出這個(gè)范圍的可能性很小很小,僅占不到0.3%,屬于極個(gè)別的小概率事件,所以3σ準(zhǔn)則可以用來檢測(cè)異常值。
當(dāng)μ=0,σ=1時(shí),有
此時(shí)的正態(tài)分布N(0,1) 稱為標(biāo)準(zhǔn)正態(tài)分布。因?yàn)棣蹋叶际谴_定的取值,所以其對(duì)應(yīng)的概率密度曲線是一條 形態(tài)固定 的曲線。
對(duì)標(biāo)準(zhǔn)正態(tài)分布,通常用φ(x)表示概率密度函數(shù),用Φ(x)表示分布函數(shù):
假設(shè)有一次物理考試特別難,滿分100分,全班只有大概20個(gè)人及格。與此同時(shí)語文考試很簡單,全班絕大部分都考了90分以上。小明的物理和語文分別考了60分和80分,他回家后告訴家長,這時(shí)家長能僅僅從兩科科目的分值直接判斷出這次小明的語文成績要比物理好很多嗎?如果不能,應(yīng)該如何判斷呢?此時(shí)Z-score就派上用場(chǎng)了。 Z-Score的計(jì)算定義 :
即 將隨機(jī)變量X先減去總體樣本均值,再除以總體樣本標(biāo)準(zhǔn)差就得到標(biāo)準(zhǔn)分?jǐn)?shù)啦。如果X低于平均值,則Z為負(fù)數(shù),反之為正數(shù) 。通過計(jì)算標(biāo)準(zhǔn)分?jǐn)?shù),可以將任何一個(gè)一般的正態(tài)分布轉(zhuǎn)化為標(biāo)準(zhǔn)正態(tài)分布。
小明家長從老師那得知物理的全班平均成績?yōu)?0分,標(biāo)準(zhǔn)差為10,而語文的平均成績?yōu)?2分,標(biāo)準(zhǔn)差為4。分別計(jì)算兩科成績的標(biāo)準(zhǔn)分?jǐn)?shù):
物理:標(biāo)準(zhǔn)分?jǐn)?shù) = (60-40)/10 = 2
語文:標(biāo)準(zhǔn)分?jǐn)?shù) = (85-95)/4 = -2.5
從計(jì)算結(jié)果來看,說明這次考試小明的物理成績?cè)谌客瑢W(xué)中算是考得很不錯(cuò)的,而語文考得很差。
指數(shù)分布可能容易和前面的泊松分布混淆,泊松分布強(qiáng)調(diào)的是某段時(shí)間內(nèi)隨機(jī)事件發(fā)生的次數(shù)的概率分布,而指數(shù)分布說的是 隨機(jī)事件發(fā)生的時(shí)間間隔 的概率分布。比如一班地鐵進(jìn)站的間隔時(shí)間。如果隨機(jī)變量X的概率密度為:
則稱X服從指數(shù)分布,其中的參數(shù)λ0。 對(duì)應(yīng)的分布函數(shù) 為:
均勻分布的期望值和方差 分別為:
使用Python繪制指數(shù)分布的概率分布圖:
均勻分布有兩種,分為 離散型均勻分布和連續(xù)型均勻分布 。其中離散型均勻分布最常見的例子就是拋擲骰子啦。拋擲骰子出現(xiàn)的點(diǎn)數(shù)就是一個(gè)離散型隨機(jī)變量,點(diǎn)數(shù)可能有1,2,3,4,5,6。每個(gè)數(shù)出現(xiàn)的概率都是1/6。
設(shè)連續(xù)型隨機(jī)變量X具有概率密度函數(shù):
則稱X服從區(qū)間(a,b)上的均勻分布。X在等長度的子區(qū)間內(nèi)取值的概率相同。對(duì)應(yīng)的分布函數(shù)為:
f(x)和F(x)的圖形分別如下圖所示:
均勻分布的期望值和方差 分別為:
本文名稱:python概率函數(shù),python中概率函數(shù)
網(wǎng)站地址:http://chinadenli.net/article30/hesdpo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供營銷型網(wǎng)站建設(shè)、網(wǎng)站改版、微信公眾號(hào)、網(wǎng)站制作、手機(jī)網(wǎng)站建設(shè)、面包屑導(dǎo)航
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)