python實(shí)現(xiàn)統(tǒng)計(jì)學(xué)包Scipy所有語(yǔ)法
本文是基于統(tǒng)計(jì)學(xué)理論和scipy實(shí)踐完成,是對(duì)統(tǒng)計(jì)學(xué)基本概念的講解。我試圖以一種有趣且互動(dòng)的方式來(lái)呈現(xiàn)這些概念,鼓勵(lì)你使用這些代碼來(lái)更好地理解這些概念。

目錄表
準(zhǔn)備
隨機(jī)變量
PMF (Probability Mass Function)
PDF (Probability Density Function)
CDF (Cumulative Distribution Function)
分布
均勻分布
正態(tài)分布
二項(xiàng)分布
泊松
對(duì)數(shù)正態(tài)分布
描述性統(tǒng)計(jì)方法
評(píng)價(jià)指標(biāo),偏差Bias、均方誤差MSE、標(biāo)準(zhǔn)誤差SE
采樣方法
方差
相關(guān)性
線性回歸
Anscombe's Quartet
Bootstrapping
假設(shè)檢驗(yàn)
p-value
q-q plot
離群值
Grubbs Test
Tukey's Method
過(guò)擬合
防止過(guò)擬合
交叉驗(yàn)證
廣義線性模型
Link函數(shù)
邏輯回歸
概率論vs貝葉斯
文獻(xiàn)
準(zhǔn)備
隨機(jī)變量
一個(gè)離散變量是一個(gè)只能接受“可數(shù)”的變量。如果你能數(shù)一組項(xiàng)目,那么它就是一個(gè)離散變量。離散變量的一個(gè)例子是扔骰子的結(jié)果。它只能有6種可能的結(jié)果中的1種,因此是離散的。一個(gè)離散隨機(jī)變量可以有無(wú)限個(gè)值。例如,自然數(shù)(1、2、3等)的整個(gè)集合是可數(shù)的,因此是離散的。
連續(xù)變量具有“不可數(shù)”的值。連續(xù)變量的一個(gè)例子是長(zhǎng)度。長(zhǎng)度可以測(cè)量到任意程度,因此是連續(xù)的。
在統(tǒng)計(jì)中,我們用PMF(概率質(zhì)量函數(shù))和CDF(累積分布函數(shù))表示離散變量的分布。我們用概率密度函數(shù)(PDF)和累積分布函數(shù)(CDF)表示連續(xù)變量的分布。
PMF定義了隨機(jī)變量的所有可能值x的概率。PDF是相同的,但用于連續(xù)值。CDF表示隨機(jī)變量X的結(jié)果小于或等于值X的概率。CDF這個(gè)名字既用于離散分布,也用于連續(xù)分布。
描述PMF、PDF和CDF的功能起初可能相當(dāng)令人生畏,但它們的視覺(jué)對(duì)等物通??雌饋?lái)相當(dāng)直觀。
i.PMF (Probability Mass Function)
在這里我們可以看到一個(gè)二項(xiàng)分布的PMF??梢钥吹剑赡艿闹刀际钦麛?shù)。例如,50 ~ 51之間沒(méi)有值。
函數(shù)形式的二項(xiàng)分布的PMF:
有關(guān)二項(xiàng)分布的更多信息,請(qǐng)參見(jiàn)“分布”部分。

ii.PDF (Probability Density Functions)
PDF與PMF相同,但是是連續(xù)的??梢哉f(shuō),分布有無(wú)窮多個(gè)可能的值。這里是一個(gè)均值為0,標(biāo)準(zhǔn)差為1的簡(jiǎn)單正態(tài)分布。
正態(tài)分布的PDF:


iii.CDF (Cumulative Distribution Function)
CDF映射隨機(jī)變量X取小于或等于值X?的概率。CDF可以是離散的也可以是連續(xù)的。在這一節(jié)中,我們把連續(xù)的情況形象化??梢栽趫D中看到,CDF累積了所有的概率,因此在0≤x≤1之間。
正態(tài)分布的CDF為:

注:erf表示“錯(cuò)誤函數(shù)”

分布
概率分布告訴我們隨機(jī)變量每個(gè)值的概率。
隨機(jī)變量X是一個(gè)將事件映射到實(shí)數(shù)的函數(shù)。
本節(jié)中的可視化是離散分布,當(dāng)然也可以是連續(xù)的。
i.均勻分布
均勻分布非常簡(jiǎn)單。每個(gè)值的發(fā)生變化相等。因此,分布由沒(méi)有模式的隨機(jī)值組成。在這個(gè)例子中,我們生成0到1之間的隨機(jī)浮點(diǎn)數(shù)。
均勻分布的PDF:

均勻分布的CDF:



ii.正態(tài)分布
正態(tài)分布(也稱為高斯曲線或鐘形曲線)是非常常見(jiàn)和方便的。這主要是因?yàn)橹行臉O限定理(CLT),該定理指出,當(dāng)獨(dú)立隨機(jī)樣本的數(shù)量(如多次拋硬幣)趨于無(wú)窮時(shí),樣本均值的分布趨于正態(tài)分布。
正態(tài)分布的PDF:

正態(tài)分布的CDF:



iii.二項(xiàng)分布
二項(xiàng)分布有數(shù)個(gè)結(jié)果,因此是離散的。
二項(xiàng)分布必須滿足以下三個(gè)條件:
a. 觀察或試驗(yàn)的次數(shù)是固定的。換句話說(shuō),你只能計(jì)算出某件事發(fā)生的概率,如果你做了一定次數(shù)。
b. 每次觀察或試驗(yàn)都是獨(dú)立的。換句話說(shuō),你的任何試驗(yàn)對(duì)下一次試驗(yàn)的概率都沒(méi)有影響。
c. 每次試驗(yàn)成功的概率都是一樣的。
二項(xiàng)分布的一個(gè)直觀解釋是投擲10次硬幣。如果是一枚均勻硬幣,得到正面的概率是0.5?,F(xiàn)在我們?nèi)佑矌?0次,數(shù)一數(shù)出現(xiàn)正面的次數(shù)。大多數(shù)情況下,我們得到正面5次,但也有一個(gè)變化,我們得到正面9次。如果我們說(shuō)N = 10,p = 0.5,那么二項(xiàng)分布的PMF將給出這些概率。我們說(shuō)正面的x是1,反面的x是0。
伯努利分布是二項(xiàng)分布的一種特例。伯努利分布中的所有值不是0就是1。
例如,如果我們?nèi)∫幻恫痪鶆虻挠矌?,?0%的概率是正面朝上,我們可以這樣描述伯努利分布:
p (change of heads) = 0.6
1 - p (change of tails) = 0.4
其中:
heads = 1
tails = 0
形式上,我們可以用以下PMF(概率質(zhì)量函數(shù))來(lái)描述伯努利分布:


iv.泊松分布
泊松分布是一種離散分布,用于模擬一個(gè)事件在時(shí)間或空間間隔內(nèi)發(fā)生的次數(shù)。
它取值為,等于分布的均值。
PMF:


v.對(duì)數(shù)正態(tài)分布
對(duì)數(shù)正態(tài)分布是連續(xù)的。對(duì)數(shù)正態(tài)分布的主要特征是它的對(duì)數(shù)是正態(tài)分布。它也被稱為Galton分布。
PDF:

CDF:

其中Phi是標(biāo)準(zhǔn)正態(tài)分布的CDF。

描述性統(tǒng)計(jì)
i.均值,中值和眾數(shù)
注:均值也稱第一矩。

ii.矩
矩是一個(gè)定量的指標(biāo),它反映了分布的形狀,有中心矩和非中心矩。這部分集中在中心矩上。
第0中心矩是總概率,總是等于1。
第一個(gè)矩是平均值(期望值)。
第二個(gè)中心矩是方差。
方差?= 均值距離平方的平均值。從數(shù)學(xué)意義上說(shuō),方差很有趣,但標(biāo)準(zhǔn)差通常是更好的衡量分布的分散程度的方法。

標(biāo)準(zhǔn)差?= 方差的平方根

第三個(gè)中心矩是偏態(tài)分布
偏度?= 描述一只尾巴與另一只尾巴對(duì)比的一種方法。例如,如果你的分布中高值比低值更多,那么你的分布就會(huì)向高值“傾斜”。

第四個(gè)中心矩是峰度
峰度?= 衡量分布中尾部有多“肥”

矩越高,就越難用樣本進(jìn)行估計(jì)。為了得到良好的估計(jì),需要更大的樣本。

評(píng)價(jià)指標(biāo),偏差、MSE、SE
偏差?是衡量樣本均值偏離總體均值的程度。樣本均值也稱為期望值。
偏差公式:

從期望值(EV)公式可以看出,偏差也可以表述為期望值減去總體均值:


均方誤差(Mean Squared Error)?是一個(gè)用來(lái)測(cè)量估計(jì)量偏離真實(shí)分布的公式。這對(duì)于評(píng)估回歸模型是非常有用的。

**均方根誤差(RMSE)**是MSE的根。


標(biāo)準(zhǔn)誤差(SE)?測(cè)量分布從樣本均值的擴(kuò)散程度。
公式也可以定義為標(biāo)準(zhǔn)差除以樣本數(shù)量的平方根。


采樣方法
非典型抽樣
方便取樣 = 挑選最方便的樣品,比如架子頂部或容易接近的人。
隨機(jī)抽樣 = 隨意抽取樣本。這常常給人一種你是隨機(jī)挑選樣本的錯(cuò)覺(jué)。
目的性抽樣 = 為特定目的抽取樣本。一個(gè)例子是關(guān)注極端情況。這是有用的,但有限的,因?yàn)樗辉试S你對(duì)整體進(jìn)行陳述。
典型抽樣
簡(jiǎn)單隨機(jī)抽樣=隨機(jī)抽取樣本(偽)
系統(tǒng)抽樣=以固定的時(shí)間間隔抽取樣本。例如每10個(gè)樣本(0、10、20等)。
分層抽樣=從人群中不同的群體(階層)中選取相同數(shù)量的樣本。
整群抽樣=將總體分為組(整群),并從這些組中選取樣本。


方差
協(xié)方差是衡量?jī)蓚€(gè)隨機(jī)變量一起變化的程度。方差和協(xié)方差相似方差表示一個(gè)變量的變化量。協(xié)方差告訴你兩個(gè)變量如何同時(shí)變化。
如果兩個(gè)變量是獨(dú)立的,它們的協(xié)方差是0。然而,協(xié)方差為0并不意味著變量是獨(dú)立的。

相關(guān)性
相關(guān)性是協(xié)方差的標(biāo)準(zhǔn)化版本。在我們的數(shù)據(jù)集中,年齡和收入之間沒(méi)有很強(qiáng)的相關(guān)性。
皮爾遜相關(guān)系數(shù)的公式由兩個(gè)隨機(jī)變量之間的協(xié)方差除以第一個(gè)隨機(jī)變量的標(biāo)準(zhǔn)差乘以第二個(gè)隨機(jī)變量的標(biāo)準(zhǔn)差組成。
Pearson相關(guān)系數(shù)公式:

另一種計(jì)算相關(guān)系數(shù)的方法是“Spearman Rho”。這個(gè)公式看起來(lái)不同,但它會(huì)給出與皮爾遜方法相似的結(jié)果。在本例中,我們幾乎看不到任何區(qū)別,但這部分是因?yàn)閿?shù)據(jù)集中的年齡和收入列顯然沒(méi)有相關(guān)性。
Spearman's Rho公式:


線性回歸
線性回歸可以通過(guò)普通最小二乘(OLS)或最大似然估計(jì)(MLE)進(jìn)行。
大多數(shù)Python庫(kù)使用OLS來(lái)擬合線性模型。


這里我們觀察到線性模型是很好的擬合。然而,線性模型可能不適合我們的數(shù)據(jù),因?yàn)閿?shù)據(jù)遵循二次型。多項(xiàng)式回歸模型可以更好地?cái)M合數(shù)據(jù),但這超出了本教程的范圍。
我們還可以用簡(jiǎn)單的方法實(shí)現(xiàn)線性回歸。在下面的例子中,我們測(cè)量一個(gè)隨機(jī)數(shù)據(jù)點(diǎn)與回歸線之間的垂直距離和水平距離。


線性模型的系數(shù)也可以用均方誤差(MSE)來(lái)計(jì)算,無(wú)需迭代方法。我也為這種技術(shù)實(shí)現(xiàn)了Python代碼。
i.Anscombe's Quartet
Anscombe's Quartet是四組數(shù)據(jù)集的集合,它們具有相同的描述性統(tǒng)計(jì)和線性回歸擬合。然而,這些數(shù)據(jù)集彼此非常不同。
這概述了一個(gè)問(wèn)題,即盡管匯總統(tǒng)計(jì)數(shù)據(jù)和回歸模型確實(shí)有助于理解數(shù)據(jù),但你應(yīng)該始終將數(shù)據(jù)可視化,以了解實(shí)際發(fā)生了什么。同時(shí)一些異常值真的可以搞亂你的模型。Anscombe's Quartet更多資料:https://en.wikipedia.org/wiki/Anscombe%27s_quartet

Bootstrapping
Bootstrapping是一種對(duì)給定樣本數(shù)據(jù)的估計(jì)量的不確定性進(jìn)行量化的重采樣技術(shù)。換句話說(shuō),我們有一個(gè)數(shù)據(jù)樣本我們從這個(gè)樣本中取多個(gè)樣本。例如,我們可以為每個(gè)采樣樣本取均值,從而做出均值的分布。
一旦我們創(chuàng)建了一個(gè)估計(jì)值的分布,我們就可以用它來(lái)做決策。
Bootstrapping可以:
a. 非參數(shù)(樣本中隨機(jī)抽取樣本)
b. 參數(shù)(取樣本均值和方差的(正態(tài))分布)。缺點(diǎn):你對(duì)分布做了假設(shè)。優(yōu)點(diǎn):計(jì)算上更輕
c. Bootstrapping引導(dǎo)(從數(shù)據(jù)流中獲取樣本)
下面的代碼實(shí)現(xiàn)了一個(gè)簡(jiǎn)單的非參數(shù)Bootstrapping,以創(chuàng)建我們的Toy數(shù)據(jù)集中收入分布的平均值、中值和中值的分布。我們可以用這個(gè)來(lái)推斷哪些收入意味著對(duì)后續(xù)的樣本有意義。



假設(shè)檢驗(yàn)
我們建立了兩個(gè)假設(shè),H0(原假設(shè))和Ha(備擇假設(shè))。
我們可以通過(guò)假設(shè)檢驗(yàn)做出四種不同的決定:
a. 拒絕H0且H0不正確(沒(méi)有錯(cuò)誤)
b. 接受H0且H0為真(無(wú)錯(cuò)誤)
c. 拒絕H0且H0是真的(一類錯(cuò)誤)
d. 接受H0和H0不正確(二類錯(cuò)誤)
一類錯(cuò)誤也稱為Alpha錯(cuò)誤。二類錯(cuò)誤也稱為Beta錯(cuò)誤。


i.p-values
p值是當(dāng)零假設(shè)(H0)為真時(shí)找到相等或更極端結(jié)果的概率。換句話說(shuō),一個(gè)低的p值意味著我們有令人信服的證據(jù)來(lái)拒絕零假設(shè)。
p值小于5% (p < 0.05)。我們經(jīng)常拒絕H0,而接受Ha是真的。我們說(shuō)p < 0.05具有統(tǒng)計(jì)學(xué)意義,因?yàn)槲覀兙芙^零假設(shè)錯(cuò)誤的概率小于5%。
一種計(jì)算p值的方法是通過(guò)t檢驗(yàn)。我們可以使用Scipy的ttest_ind函數(shù)來(lái)計(jì)算兩個(gè)獨(dú)立樣本得分的均值的t檢驗(yàn)。在這個(gè)例子中,我們計(jì)算了兩個(gè)隨機(jī)樣本的t統(tǒng)計(jì)量和p值10次。
我們看到p值有時(shí)很低,但這并不意味著這兩個(gè)隨機(jī)樣本是相關(guān)的。這就是為什么你必須小心過(guò)度依賴p值的原因。如果你多次重復(fù)一個(gè)實(shí)驗(yàn),你可能會(huì)陷入一種錯(cuò)覺(jué),認(rèn)為只有隨機(jī)性存在相關(guān)性。

ii.q-q plot (quantile-quantile plot)
許多統(tǒng)計(jì)技術(shù)要求數(shù)據(jù)來(lái)自正態(tài)分布(例如,t檢驗(yàn))。因此,在應(yīng)用統(tǒng)計(jì)技術(shù)之前驗(yàn)證這一點(diǎn)是很重要的。
一種方法是對(duì)分布進(jìn)行可視化和判斷。q-q圖對(duì)于確定一個(gè)分布是否正態(tài)是非常有用的。還有其他測(cè)試“正態(tài)”的方法,但這超出了本教程的范圍。
在第一個(gè)圖中,我們可以很容易地看到這些值很好地對(duì)齊。由此我們得出結(jié)論,數(shù)據(jù)是正態(tài)分布的。
在第二個(gè)圖中,我們可以看到這些值沒(méi)有對(duì)齊。我們的結(jié)論是數(shù)據(jù)不是正態(tài)分布的。在這種情況下,數(shù)據(jù)是均勻分布的。


離群值
離群值是一種與其他觀測(cè)值有偏差的觀測(cè)值。一個(gè)異常值通常很突出,可能是一個(gè)錯(cuò)誤。
離群值會(huì)打亂你的統(tǒng)計(jì)模型。但是,只有當(dāng)你建立了移除離群值的良好理由時(shí),才應(yīng)該移除離群值。
有時(shí),離群值是我們感興趣的主題。這是欺詐檢測(cè)的一個(gè)例子。異常值檢測(cè)方法有很多,但這里我們將討論Grubbs測(cè)試和Tukey方法。兩種測(cè)試都假設(shè)數(shù)據(jù)是正態(tài)分布的。
i.Grubbs test
在Grubbs檢驗(yàn)中,零假設(shè)是沒(méi)有觀察值是離群值,而備擇假設(shè)是有一個(gè)觀察值是離群值。因此,格拉布斯檢驗(yàn)只尋找一個(gè)異常的觀察值。
Grubbs Test公式:

其中Y_hat是樣本均值,s是標(biāo)準(zhǔn)差。Grubbs檢驗(yàn)統(tǒng)計(jì)量是在樣本標(biāo)準(zhǔn)差單位內(nèi)與樣本均值的最大絕對(duì)偏差。
ii.Tukey's method
Tukey認(rèn)為,當(dāng)一個(gè)觀察值是低于第一個(gè)四分位數(shù)的四分位數(shù)范圍的1.5倍或高于第三個(gè)四分位數(shù)的四分位數(shù)范圍的1.5倍時(shí),該觀察值就是異常值。這聽(tīng)起來(lái)可能很復(fù)雜,但如果你直觀地看到它,就會(huì)覺(jué)得很直觀。
對(duì)于正態(tài)分布,如果沒(méi)有異常值,Tukey關(guān)于異常值觀測(cè)的標(biāo)準(zhǔn)是不太可能的,但是對(duì)于其他分布使用Tukey的標(biāo)準(zhǔn)應(yīng)該持保留態(tài)度。
Tukey方法的公式:

其中Ya是兩個(gè)均值中較大的一個(gè),SE是均值之和的標(biāo)準(zhǔn)誤差。

過(guò)擬合
如果我們的模型也建模了數(shù)據(jù)中的“噪聲”,那么它就是過(guò)擬合。這意味著該模型不能很好地推廣到新數(shù)據(jù),即使訓(xùn)練數(shù)據(jù)上的誤差變得非常小。線性模型不太可能過(guò)擬合,但隨著模型變得更加靈活,我們必須警惕過(guò)擬合。我們的模型也可以欠擬合,這意味著它對(duì)訓(xùn)練數(shù)據(jù)有很大的誤差。
尋找過(guò)擬合和欠擬合之間的最佳點(diǎn)被稱為偏差方差權(quán)衡。知道這個(gè)定理很好,但更重要的是理解如何防止它。
i.防止過(guò)擬合
a. 將數(shù)據(jù)劃分為訓(xùn)練數(shù)據(jù)和測(cè)試數(shù)據(jù)
b. 正則化:限制模型的靈活性
c. 交叉驗(yàn)證
ii.防止過(guò)擬合
交叉驗(yàn)證是一種估計(jì)統(tǒng)計(jì)模型準(zhǔn)確性的技術(shù)。它也被稱為樣本外測(cè)試或旋轉(zhuǎn)估計(jì)。交叉驗(yàn)證將幫助我們識(shí)別過(guò)擬合,并檢查我們的模型是否適用于新的(樣本外)數(shù)據(jù)。
一種流行的交叉驗(yàn)證技術(shù)稱為k折交叉驗(yàn)證。這個(gè)想法很簡(jiǎn)單,我們把我們的數(shù)據(jù)集分割成k個(gè)數(shù)據(jù)集,從每個(gè)數(shù)據(jù)集k個(gè)中我們選出一些樣本。然后我們對(duì)k的其余部分進(jìn)行擬合,并試圖預(yù)測(cè)我們選出的樣本。我們使用像均方誤差這樣的指標(biāo)來(lái)估計(jì)我們的預(yù)測(cè)有多好。重復(fù)這個(gè)過(guò)程,然后我們查看多個(gè)交叉驗(yàn)證數(shù)據(jù)集的預(yù)測(cè)平均值。
我們挑出一個(gè)樣本的特殊情況稱為“留一交叉驗(yàn)證(LOOCV)”。然而,LOOCV的方差較高。
有關(guān)交叉驗(yàn)證的更多信息,請(qǐng)查看這篇博客:https://machinelearningmastery.com/k-fold-cross-validation/
廣義線性模型(GLMs)
i.Link函數(shù)
廣義線性模型(GLMs)中使用了一個(gè)Link函數(shù)來(lái)對(duì)給定的連續(xù)和/或分類預(yù)測(cè)器的連續(xù)響應(yīng)變量應(yīng)用線性模型。經(jīng)常使用的Link函數(shù)稱為逆logit或logistic sigmoid函數(shù)。
Link函數(shù)提供了線性預(yù)測(cè)器和分布均值之間的關(guān)系。

ii.邏輯回歸
在邏輯回歸中,我們使用類似于上面提到的逆logit函數(shù)的鏈接函數(shù)來(lái)建模一個(gè)二元因變量。線性回歸模型直接預(yù)測(cè)給定x的y的期望值,而GLM使用鏈接函數(shù)。
我們可以很容易地實(shí)現(xiàn)邏輯回歸與sklearn的邏輯回歸函數(shù)。

概率論vs貝葉斯
概率論:
a. 固定參數(shù)(過(guò)程是固定的)
b. 重復(fù)采樣?概率
貝葉斯:
a. 作為“先驗(yàn)程度”的概率
b. P(parameter)?參數(shù)的所有合理值
c. 在先前的信念基礎(chǔ)上更新先驗(yàn)概率
概率論者和貝葉斯論者一致認(rèn)為貝葉斯定理是有效的。這個(gè)定理的解釋見(jiàn)下圖。

貝葉斯定理推廣到分布和隨機(jī)變量。
文獻(xiàn)
轉(zhuǎn)載:https://mp.weixin.qq.com/s/6o7EuwS9f21M7q8tlWFKjA
https://dataconomy.com/2015/02/introduction-to-bayes-theorem-with-python
https://www.statisticshowto.datasciencecentral.com/discrete-variable/
https://www.statisticshowto.datasciencecentral.com/probability-and-statistics/binomial-theorem/binomial-distribution-formula/
https://www.statisticshowto.datasciencecentral.com/probability-and-statistics/descriptive-statistics/sample-variance/
https://machinelearningmastery.com/a-gentle-introduction-to-the-bootstrap-method
https://machinelearningmastery.com/k-fold-cross-validation/
https://en.wikipedia.org/wiki/Poisson_distribution
https://www.tutorialspoint.com/python/python_p_value.htm
https://towardsdatascience.com/inferential-statistics-series-t-test-using-numpy-2718f8f9bf2f
https://www.slideshare.net/dessybudiyanti/simple-linier-regression
https://www.youtube.com/channel/UCgBncpylJ1kiVaPyP-PZauQ
https://en.wikipedia.org/wiki/Bias%E2%80%93variance_tradeoff
歡迎學(xué)習(xí)更多相關(guān)知識(shí)《呆瓜半小時(shí)入門python數(shù)據(jù)分析課程介紹》
