原文:https://www.cnblogs.com/hdu-zsk/p/6293721.html
無(wú)論你從事何種領(lǐng)域的科學(xué)研究還是統(tǒng)計(jì)調(diào)查,顯著性檢驗(yàn)作為判斷兩個(gè)乃至多個(gè)數(shù)據(jù)集之間是否存在差異的方法被廣泛應(yīng)用于各個(gè)科研領(lǐng)域。筆者作為科研界一名新人也曾經(jīng)在顯著性檢驗(yàn)方面吃過(guò)許多苦頭。后來(lái)醉心于統(tǒng)計(jì)理論半載有余才摸到顯著性檢驗(yàn)的皮毛,也為顯著性檢驗(yàn)理論之精妙,品種之繁多,邏輯之嚴(yán)謹(jǐn)所折服。在此,特寫(xiě)下這篇博文,以供那些仍然掙扎在顯著性檢驗(yàn)?zāi)嗵兜姆墙y(tǒng)計(jì)專(zhuān)業(yè)的科研界同僚們參考。由于筆者本人也并非統(tǒng)計(jì)專(zhuān)業(yè)畢業(yè),所持觀點(diǎn)粗陋淺鄙,貽笑大方之處還望諸位業(yè)界前輩,領(lǐng)域翹楚不吝賜教。小可在此謝過(guò)諸位看官了。
本篇博文致力于解決一下幾點(diǎn)問(wèn)題,在此羅列出來(lái):1.什么是顯著性檢驗(yàn)? 2.為什么要做顯著性檢驗(yàn)? 3.怎么做顯著性檢驗(yàn)?下面就請(qǐng)跟隨筆者的步伐一步步走入顯著性檢驗(yàn)的“前世與今生”。
一:顯著性檢驗(yàn)前傳:什么是顯著性檢驗(yàn)?它與統(tǒng)計(jì)假設(shè)檢驗(yàn)有什么關(guān)系?為什么要做顯著性檢驗(yàn)?
“顯著性檢驗(yàn)”實(shí)際上是英文significance test的漢語(yǔ)譯名。在統(tǒng)計(jì)學(xué)中,顯著性檢驗(yàn)是“統(tǒng)計(jì)假設(shè)檢驗(yàn)”(Statistical hypothesis testing)的一種,顯著性檢驗(yàn)是用于檢測(cè)科學(xué)實(shí)驗(yàn)中實(shí)驗(yàn)組與對(duì)照組之間是否有差異以及差異是否顯著的辦法。實(shí)際上,了解顯著性檢驗(yàn)的“宗門(mén)背景”(統(tǒng)計(jì)假設(shè)檢驗(yàn))更有助于一個(gè)科研新手理解顯著性檢驗(yàn)?!敖y(tǒng)計(jì)假設(shè)檢驗(yàn)”這一正名實(shí)際上指出了“顯著性檢驗(yàn)”的前提條件是“統(tǒng)計(jì)假設(shè)”,換言之“無(wú)假設(shè),不檢驗(yàn)”。任何人在使用顯著性檢驗(yàn)之前必須在心里明白自己的科研假設(shè)是什么,否則顯著性檢驗(yàn)就是“水中月,鏡中花”,可望而不可即。用更通俗的話來(lái)說(shuō)就是要先對(duì)科研數(shù)據(jù)做一個(gè)假設(shè),然后用檢驗(yàn)來(lái)檢查假設(shè)對(duì)不對(duì)。一般而言,把要檢驗(yàn)的假設(shè)稱(chēng)之為原假設(shè),記為H0;把與H0相對(duì)應(yīng)(相反)的假設(shè)稱(chēng)之為備擇假設(shè),記為H1。
如果原假設(shè)為真,而檢驗(yàn)的結(jié)論卻勸你放棄原假設(shè)。此時(shí),我們把這種錯(cuò)誤稱(chēng)之為第一類(lèi)錯(cuò)誤。通常把第一類(lèi)錯(cuò)誤出現(xiàn)的概率記為α
如果原假設(shè)不真,而檢驗(yàn)的結(jié)論卻勸你不放棄原假設(shè)。此時(shí),我們把這種錯(cuò)誤稱(chēng)之為第二類(lèi)錯(cuò)誤。通常把第二類(lèi)錯(cuò)誤出現(xiàn)的概率記為β
通常只限定犯第一類(lèi)錯(cuò)誤的最大概率α, 不考慮犯第二類(lèi)錯(cuò)誤的概率β。我們把這樣的假設(shè)檢驗(yàn)稱(chēng)為顯著性檢驗(yàn),概率α稱(chēng)為顯著性水平。顯著性水平是數(shù)學(xué)界約定俗成的,一般有α =0.05,0.025.0.01這三種情況。代表著顯著性檢驗(yàn)的結(jié)論錯(cuò)誤率必須低于5%或2.5%或1%(統(tǒng)計(jì)學(xué)中,通常把在現(xiàn)實(shí)世界中發(fā)生幾率小于5%的事件稱(chēng)之為“不可能事件”)。(以上這一段話實(shí)際上講授了顯著性檢驗(yàn)與統(tǒng)計(jì)假設(shè)檢驗(yàn)的關(guān)系)
為了方便接下來(lái)的講授,這里舉一個(gè)例子。趙先生開(kāi)了一家日用百貨公司,該公司分別在鄭州和杭州開(kāi)設(shè)了分公司?,F(xiàn)在存在下列數(shù)據(jù)作為兩個(gè)分公司的銷(xiāo)售額,集合中的每一個(gè)數(shù)代表著一年中某一個(gè)月的公司銷(xiāo)售額。
鄭州分公司Z = {23,25,26,27,23,24,22,23,25,29,30}
杭州分公司H = {24,25,23,26,27,25,25,28,30,31,29}
現(xiàn)在,趙先生想要知道兩個(gè)公司的銷(xiāo)售額是否有存在明顯的差異(是否存在鄭州分公司銷(xiāo)售額>杭州分公司銷(xiāo)售額,抑或反之),以便對(duì)接下來(lái)公司的戰(zhàn)略業(yè)務(wù)調(diào)整做出規(guī)劃。下屬們知道趙老板的難處,紛紛建議“只需要求平均值就知道哪個(gè)分公司的銷(xiāo)售額更大了”。但是作為擁有高學(xué)歷的趙先生懂得這樣一件哲學(xué)即“我們生活在概率的世界之中”。那也就意味著,平均值并不能夠說(shuō)明什么問(wèn)題,即便杭州分公司的銷(xiāo)售額平均值大于鄭州分公司的銷(xiāo)售額平均值仍然不能說(shuō)明杭州分公司的銷(xiāo)售額一定就大于鄭州分公司的銷(xiāo)售額,因?yàn)椤斑@樣一種看似存在的大于關(guān)系實(shí)質(zhì)上是偶然造成的而并不是一種必然”。
趙先生最終決定,使用方差驗(yàn)檢查這兩個(gè)數(shù)據(jù)。(請(qǐng)先忽略為什么用方差檢驗(yàn),檢驗(yàn)方法的選擇下文中會(huì)詳述)
最后趙先生發(fā)現(xiàn),方差檢驗(yàn)的p 值= 0.2027,那也就意味著,雖然杭州分公司的年平均銷(xiāo)售額26.63大于鄭州分公司的銷(xiāo)售額25.18,但是實(shí)質(zhì)上,兩個(gè)分公司的銷(xiāo)售額并沒(méi)有明顯的差異。(相信此時(shí)的你心中有萬(wàn)千草泥馬奔過(guò):方差檢驗(yàn)是怎么做的?p值是什么鬼?為什么p=0.2027意味著銷(xiāo)售額沒(méi)有明顯差異?信息量好大腫么辦?)
不要急,不要慌,讓我們從頭來(lái)過(guò),整理一下趙先生這里究竟發(fā)生了什么。這里很有必要了解一下根植于趙先生思維里的“慢動(dòng)作”。
第一點(diǎn):如上文所述的一樣,“無(wú)假設(shè),不檢驗(yàn)”,趙先生做了什么樣的假設(shè)(Hypothesis)?
由于趙先生想要知道兩個(gè)公司的銷(xiāo)售額是否有存在明顯的差異 ,所以他的假設(shè)就是“樣本集Z(鄭州分公司)和樣本集H(杭州分公司)不存在顯著性差異,換言之這兩個(gè)集合沒(méi)有任何區(qū)別(銷(xiāo)售額間沒(méi)有區(qū)別)!”這就是趙先生的假設(shè)。那么問(wèn)題來(lái)了,為什么趙先生要假設(shè)這兩個(gè)樣本集之間不存在任何區(qū)別,而不是假設(shè)這兩個(gè)樣本集存在區(qū)別。因?yàn)檫@個(gè)假設(shè)(Hypothesis)正是方差檢驗(yàn)的原假設(shè)(null hypothesis)。那么問(wèn)題又來(lái)了,什么是原假設(shè)。所謂原假設(shè)是數(shù)學(xué)界為了方便討論而默認(rèn)的“原始的假設(shè)”。沒(méi)有什么為甚么可言,約定俗成罷了。
第二點(diǎn):p值怎么回事?
這里并不用管p值是怎樣得到的,直接給出結(jié)論。在顯著性水平α =0.05的情況下,p>0.05接受原假設(shè),p值<0.05拒絕原假設(shè)。我們的原假設(shè)是樣本集Z和樣本集H間不存在顯著性差異,但是由于p=0.2027>0.05,所以接受原假設(shè),即樣本集Z和樣本集H間不存在顯著性差異。當(dāng)然有接受就有拒接,如果這里的p值小于0.05,那么就要拒絕原假設(shè),即集合Z和集合H間存在顯著性差異。
第三點(diǎn):怎么做方差檢驗(yàn)以及為何做方差檢驗(yàn)之后再細(xì)講,這里暫且不表。
在這一章節(jié)的最后,給出本章的兩個(gè)問(wèn)題的答案,相信你現(xiàn)在已經(jīng)可以理解:
1什么是統(tǒng)計(jì)假設(shè)檢驗(yàn)?
所謂統(tǒng)計(jì)假設(shè)檢驗(yàn)就是事先對(duì)總體(隨機(jī)變量)的參數(shù)或總體分布形式做出一個(gè)假設(shè),然后利用樣本信息來(lái)判斷這個(gè)假設(shè)是否合理。而把只限定第一類(lèi)錯(cuò)誤概率的統(tǒng)計(jì)假設(shè)檢驗(yàn)就稱(chēng)之為顯著性檢驗(yàn)。在上例中,我們的假設(shè)就是一種顯著性檢驗(yàn)。因?yàn)榉讲顧z驗(yàn)不適用于估計(jì)參數(shù)和估計(jì)總體分布,而是用于檢驗(yàn)試驗(yàn)的兩個(gè)組間是否有差異。而方差檢驗(yàn)正是用于檢測(cè)我們所關(guān)心的是這兩個(gè)集合(兩個(gè)分布)的均值是否存在差異。
2.為什么要做顯著性檢驗(yàn)?
因?yàn)槲覀兿胍袛鄻颖九c我們對(duì)總體所做的假設(shè)之間的差異是純屬機(jī)會(huì)變異,還是由我們所做的假設(shè)與總體真實(shí)情況之間不一致所引起的。 在我們的例子中,差異就是H的均值要高于Z的均值,但是最終的結(jié)論p>0.05證明,這個(gè)差異純屬機(jī)會(huì)變異(H均值>Z均值是偶然的,當(dāng)H和Z的采樣點(diǎn)數(shù)趨于無(wú)窮多時(shí),H的均值會(huì)趨近等于Z的均值)而不是假設(shè)與真實(shí)情況不一致。如果p值<0.05,那么也就意味著我們的假設(shè)(H集合和Z集合沒(méi)差別)與真實(shí)情況不一致,這就使得假設(shè)不成立,即H集合和Z集合有差別。
二:怎么做顯著性檢驗(yàn)?(基于MATLAB)
顯著性檢驗(yàn)可以分為參數(shù)檢驗(yàn)和非參數(shù)檢驗(yàn)。參數(shù)檢驗(yàn)要求樣本來(lái)源于正態(tài)總體(服從正態(tài)分布),且這些正態(tài)總體擁有相同的方差,在這樣的基本假定(正態(tài)性假定和方差齊性假定)下檢驗(yàn)各總體均值是否相等,屬于參數(shù)檢驗(yàn)。
當(dāng)數(shù)據(jù)不滿足正態(tài)性和方差齊性假定時(shí),參數(shù)檢驗(yàn)可能會(huì)給出錯(cuò)誤的答案,此時(shí)應(yīng)采用基于秩的非參數(shù)檢驗(yàn)。
參數(shù)檢驗(yàn)的方法及其相應(yīng)知識(shí)點(diǎn)的解釋?zhuān)ㄟ@里只給出參數(shù)檢驗(yàn)中常見(jiàn)的方差分析):
方差分析主要分為'①單因素一元方差分析'; '②雙因素一元方差分析 '; '③多因素一元方差分析 '; '④單因素多元方差分析 '。下面一節(jié)對(duì)各種方差分析的實(shí)現(xiàn)方法進(jìn)行介紹。但在介紹之前,我要首先“劇透”一下兩個(gè)重要的點(diǎn),理解這些點(diǎn)有助于區(qū)別不同類(lèi)型的方差分析。
什么叫做因素,什么叫做元?
先解釋一下什么叫做"元"。我假定正在看這篇博文的人一定具有小學(xué)以上文化水平,那么想必你一定對(duì)“一元二次方程”“二元一次方程”“多元一次方程”這種概念不陌生。所謂的“元”,正是指未知變量的個(gè)數(shù)。在統(tǒng)計(jì)假設(shè)檢驗(yàn)中,仍然把待檢驗(yàn)的未知變量稱(chēng)之為“元”而把影響未知變量的行為(事件)稱(chēng)之為“因素”。有過(guò)機(jī)器學(xué)習(xí)基礎(chǔ)的同學(xué)可以把“元”和“因素”分別理解成機(jī)器學(xué)習(xí)中的“特征個(gè)數(shù)”和“標(biāo)簽個(gè)數(shù)”。擁有多個(gè)特征便是“多元”,而擁有多個(gè)標(biāo)簽便是“多因素”。
①單因素一元方差分析的方法和案例:
相關(guān)MATLAB函數(shù):
函數(shù)一:anova1( X, Group, displayopt)
參數(shù)解釋?zhuān)涸诘谝环N用法中,X是一個(gè)n行1列的數(shù)組,Group也是一個(gè)n行1列的數(shù)組。X為待檢驗(yàn)的樣本集,這個(gè)樣本集中包括若干個(gè)對(duì)照組和實(shí)驗(yàn)組的全部數(shù)據(jù)。那么機(jī)器怎么知道哪個(gè)數(shù)據(jù)屬于哪個(gè)組呢?很簡(jiǎn)單,通過(guò)Group這個(gè)列向量一一對(duì)應(yīng)指明即可。一下這個(gè)例子來(lái)自于MATLAB的help文檔,在這里用于實(shí)例說(shuō)明:
假定現(xiàn)在有三組數(shù)據(jù)
組一(st):82 86 79 83 84 85 86 87
組二(al1):74 82 78 75 76 77
組三(al2):79 79 77 78 82 79
現(xiàn)在需要對(duì)這三組數(shù)據(jù)做方差檢驗(yàn),使用anova1函數(shù)的方法如下
1.首先將所有的數(shù)據(jù)放在同一個(gè)數(shù)組strength中:
strength = [82 86 79 83 84 85 86 87 74 82 78 75 76 77 79 79 77 78 82 79];
2.設(shè)置對(duì)應(yīng)與strength對(duì)應(yīng)位置的標(biāo)簽為alloy:
alloy = {'st','st','st','st','st','st','st','st','al1','al1','al1','al1','al1','al1','al2','al2','al2','al2','al2','al2'};
3.調(diào)用anova1函數(shù)
p = anova1(strength,alloy)
最終得到的結(jié)果會(huì)是一個(gè)數(shù)值和兩幅圖,一個(gè)值是p值。p值得看法在上文已經(jīng)介紹過(guò),這里不再細(xì)細(xì)的介紹。在本例中,p的值如下
p =
1.5264e-004
顯然,從p值看,三組值之間存在顯著性差異。有一點(diǎn)必須提一下:這里p存在顯著性差異并不意味著三組之間兩兩都存在顯著性差異,而只是說(shuō)明顯著性差異在這三組之間存在。
第一幅圖是一張表,這張表被稱(chēng)之為ANOVA表。相信許多非統(tǒng)計(jì)專(zhuān)業(yè)的同學(xué)見(jiàn)到ANOVA表的一瞬間是崩潰的,一堆問(wèn)題奔涌而出:
Source是什么鬼?SS是什么鬼,df是什么鬼,MS是什么鬼,F(xiàn)是什么鬼,Prob>F是什么鬼,etc.
這里為了解決“什么鬼”的問(wèn)題,對(duì)這張表給出詳細(xì)的解釋?zhuān)?/p>
[圖片上傳失敗...(image-a36187-1562429013457)]
Source表示方差來(lái)源(誰(shuí)的方差),這里的方差來(lái)源包括Groups(組間),Error(組內(nèi)),Total(總計(jì));
SS(Sum of squares)表示平方和
df(Degree of freedom)表示自由度
MS(Mean squares)表示均方差
F表示F值(F統(tǒng)計(jì)量),F(xiàn)值等于組間均方和組內(nèi)均方的比值,它反映的是隨機(jī)誤差作用的大小。
Prob>F表示p值
這里需要引出兩個(gè)小問(wèn)題:第一個(gè)小問(wèn)題是F值怎么使用,第二個(gè)小問(wèn)題是p值和F值的關(guān)系是什么?
率先普及一下p值和F值之間的關(guān)系:
F實(shí)際值>F查表值,則p<=0.05
F實(shí)際值<F查表值,則p>0.05
不難看出F值在本例中等于15.4,它正是組間方差92.4和組內(nèi)方差6的比值。查F分布表(下圖),
[圖片上傳失敗...(image-2936b9-1562429013457)]
根據(jù) n=19( Total 的df),m=2(Groups的df)
可得F0.05( m, n-m-1) = F0.05( 2, 16) = 3.634。F實(shí)際值15.4>F查表值3.634,所以可以判定顯著性差異存在,且p值小于0.05
以上講述了如何僅僅使用F值判斷顯著性差異的方法并講述了F值同p值之間的關(guān)系。下面這張表格是箱型圖,它的看法如下圖所表注:
[圖片上傳失敗...(image-bf4d5c-1562429013457)]
這里有必要提一下anova1函數(shù)中的參數(shù)displayopt 的作用。在大規(guī)模的anova1調(diào)用中(例如把a(bǔ)nova1放在for循環(huán)中反復(fù)調(diào)用),需要把displayopt設(shè)置為'off',否則anova1每調(diào)用一次就會(huì)繪制兩幅圖,這樣會(huì)迅速的耗費(fèi)計(jì)算機(jī)的內(nèi)存,容易造成程序崩潰。
除了上文中介紹的第一種調(diào)用anova1的方式,還有一種方式用于均衡的方差分析。所謂均衡就是要求不同的組別內(nèi)的統(tǒng)計(jì)數(shù)據(jù)個(gè)數(shù)必須相同。在上例中出現(xiàn)的各個(gè)組的統(tǒng)計(jì)個(gè)數(shù)分別為{8,6,6}就屬于非均衡。在均衡狀態(tài)下,每個(gè)組的數(shù)據(jù)單獨(dú)構(gòu)成X中的一列,這樣便可以省略參數(shù)Group,調(diào)用方式就可以簡(jiǎn)化為anova1(X)
在上文中,我們提到過(guò)。方差分析必須滿足兩條假設(shè),分別是正態(tài)性假定和方差齊性假定。因此,在一個(gè)完整的統(tǒng)計(jì)工程中,必須首先檢測(cè)數(shù)據(jù)的正態(tài)性假定和方差齊性假定,這就涉及到另外兩個(gè)函數(shù)lillietest正態(tài)檢驗(yàn)函數(shù)(這正是我們上文提到的分布假設(shè)檢驗(yàn)而不是參數(shù)檢驗(yàn),它檢驗(yàn)的目標(biāo)是數(shù)據(jù)集服從何種分布)和vartestn方差齊性檢驗(yàn)(這正是我們上文提到的參數(shù)檢驗(yàn)而不是分布假設(shè)檢驗(yàn) ,它檢測(cè)的目標(biāo)是數(shù)據(jù)集的分布服從什么樣的參數(shù),這里就是方差)
函數(shù)二:lillietest(X)
[h,p] = lillietest (strength(1:8))
h =
0
p =
0.5000
解釋?zhuān)篽 = 0可以認(rèn)為數(shù)據(jù)服從正態(tài)分布,h=1則認(rèn)為不服從正態(tài)分布
p >0.05可以認(rèn)為接受原假設(shè)h = 0,則數(shù)據(jù)服從正態(tài)分布
[h,p] = lillietest (strength(9:14))
h =
0
p =
0.5000
[h,p] = lillietest (strength(15:20))
h =
0
p =
0.5000
可以得出結(jié)論,strength中三組數(shù)都服從正態(tài)分布
函數(shù)三:vartestn(X, Group)
p = vartestn(strength,alloy,'off')
p
=0.5142
注意:X和Group必須是列向量,否則會(huì)報(bào)錯(cuò)
p>0.05則說(shuō)明X中的不同Group是齊次的,也就是方差性齊。
②雙因素一元方差分析的方法和案例:
正如上文所述,既然是雙因素,那便是有多個(gè)標(biāo)簽了。因此雙因素一元方差分析可以理解成“單特征雙標(biāo)簽機(jī)器學(xué)習(xí)技術(shù)”。由于雙因素一元方差分析要求數(shù)據(jù)是均衡的,所以它的標(biāo)簽可以省略,就如同上文中介紹的anova1的第二種使用方法一樣。這里的例子引用于MATLAB的anova2的help文檔,用于說(shuō)明anova2的使用方法。
這里有一批爆米花數(shù)據(jù),現(xiàn)在我們知道這些爆米花的質(zhì)量打分同兩個(gè)因素相關(guān),一個(gè)是爆米花的品牌(有三個(gè)品牌:Gourmet,National,Generic)另一個(gè)是爆米花的制作工藝(油炸,氣壓)。這些數(shù)據(jù)如下所述:
brand Gourmet National Generic
methods
油炸 5.5000 4.5000 3.5000
油炸 5.5000 4.5000 4.0000
油炸 6.0000 4.0000 3.0000
氣壓 6.5000 5.0000 4.0000
氣壓 7.0000 5.5000 5.0000
氣壓 7.0000 5.0000 4.5000
現(xiàn)在需要了解的目標(biāo)有三個(gè),第一:列和列之間是否有顯著性差異(品牌間的顯著性差異),原假設(shè)是顯著性差異不存在;第二:行與行之間是否存在顯著性差異,原假設(shè)是顯著性差異不存在 ;第三:品牌和方法之間的交互作用是否明顯,原假設(shè)是交互作用不明顯
為了完成以上三個(gè)問(wèn)題,所以特別引入anova2函數(shù),anova2函數(shù)的參數(shù)如下:
p = anova2( X, reps, displayopt)
X即為待檢驗(yàn)數(shù)組。其中,X的每列一代表一種因素,X的每若干行代表另一種因素,這里的若干使用reps指明。displayopt同anova1一樣,這里不再詳述。anova2的返回是一值一幅圖。下面是具體的MATLAB方法:
popcorn =[
5.5000 4.5000 3.5000
5.5000 4.5000 4.0000
6.0000 4.0000 3.0000
6.5000 5.0000 4.0000
7.0000 5.5000 5.0000
7.0000 5.0000 4.5000];
[p,table,stats] = anova2(popcorn,3)
p =
0.0000 0.0001 0.7462
[圖片上傳失敗...(image-4cc07d-1562429013457)]
解釋?zhuān)簆(1) = 0.0000, 推翻原假設(shè),所以列與列之間的顯著性差異存在(品牌間存在顯著性差異);p(2) = 0.0001,推翻原假設(shè),所以行與行之間的顯著性差異存在(方法間的顯著性差異存在);p(3) = 0.7462,保留原假設(shè),則品牌和方法間的交互作用不明顯。
圖表中的Columns代表列,Rows代表行,Interaction代表交互作用,其他的與我們?cè)赼nova2中講述的完全相同,這里也不再詳細(xì)分析。
③多因素一元方差分析的方法和案例:
p = anovan(X, Group, Opt);
其中,X代表著待檢驗(yàn)數(shù)據(jù);Group代表著X的因素,由于是多因素,所以Group是多個(gè)列組成的。Opt可以選擇為'model',model后面可以填寫(xiě)'full'和'interaction'。
比如因素有三個(gè)x,y,z,那么如果model為interaction,計(jì)算結(jié)果會(huì)包括x的顯著性,y的顯著性,z的顯著性,xy,xz,yz的交互影響顯著性
如果model為full,計(jì)算結(jié)果會(huì)包括x的顯著性,y的顯著性,z的顯著性,xy,xz,yz的交互影響顯著性以及xyz的交互顯著性。
這里的例子仍然來(lái)自于MATLAB的help文檔,y是待檢驗(yàn)的數(shù)據(jù),g1,g2,g3是與y中數(shù)據(jù)一一對(duì)應(yīng)的3個(gè)因素(數(shù)據(jù)標(biāo)簽)
y = [52.7 57.5 45.9 44.5 53.0 57.0 45.9 44.0]';
g1 = [1 2 1 2 1 2 1 2];
g2 = {'hi';'hi';'lo';'lo';'hi';'hi';'lo';'lo'};
g3 = {'may';'may';'may';'may';'june';'june';'june';'june'};
p = anovan(y,{g1 g2 g3},'model','interaction')
p =
0.0347
0.0048
0.2578
0.0158
0.1444
0.5000
[圖片上傳失敗...(image-dbeb66-1562429013456)]
這里有一個(gè)使用的小竅門(mén),如果你想做非平衡雙因素一元方差分析那么也可以采用多因素一元方差分析函數(shù)。
④單因素多元方差分析的方法和案例:
[d, p] = manova1(X, Group);
p,X和Group與之前相同。該方差分析的原假設(shè)是“各組的組均值是相同的多元向量”這里對(duì)d做出解釋?zhuān)?/p>
d=0,接受原假設(shè)
d=1,拒絕原假設(shè),認(rèn)為各組的組均值不完全相同,但是不能拒絕它們共線的假設(shè)。
d=2,拒絕原假設(shè),各組的組均值向量可能共面,但是不共線。
四種商品(x1,x2,x3,x4)按照不同的兩種銷(xiāo)售方式進(jìn)行銷(xiāo)售,數(shù)據(jù)如下:
編號(hào) x1 x2 x3 x4 銷(xiāo)售方式
1 125 60 338 210 1
2 119 80 233 330 1
3 63 51 260 203 1
4 65 51 429 150 1
5 130 65 403 205 1
6 65 33 480 260 1
7 100 34 468 295 2
8 65 63 416 265 2
9 110 69 377 260 2
10 88 78 299 360 2
11 73 63 390 320 2
12 103 54 416 310 2
13 64 51 507 320 2
X =
125 60 338 210
119 80 233 330
63 51 260 203
65 51 429 150
130 65 403 205
65 33 480 260
100 34 468 295
65 63 416 265
110 69 377 260
88 78 299 360
73 63 390 320
103 54 416 310
64 51 507 320
Groups =
1
1
1
1
1
1
2
2
2
2
2
2
2
[d, p] = manova1(X, Groups);
d =
0
p =
0.0695
因此,拒絕原假設(shè),各組的組均值不是相同的多元向量。
非參數(shù)檢驗(yàn):
到這類(lèi),參數(shù)檢驗(yàn)部分就算是說(shuō)完了。我們可以回顧一下,參數(shù)檢驗(yàn)的四種函數(shù)分為anova1,anova2,anovan,manova1。他們都基于共同的兩個(gè)假設(shè):正態(tài)性假定和方差齊性假定 ,分別對(duì)應(yīng)著函數(shù)lillietest 和vartestn。但是,我們?cè)趯?shí)際工作中,不可能總是遇到滿足這兩個(gè)假定的統(tǒng)計(jì)數(shù)據(jù),這時(shí)候,如果強(qiáng)行采用參數(shù)檢驗(yàn)就會(huì)造成錯(cuò)誤。此時(shí),可以采用基于秩和的非參數(shù)檢驗(yàn)。這里我們介紹兩種非參數(shù)檢驗(yàn):Kruskal-Wallis檢驗(yàn),F(xiàn)riedman檢驗(yàn)。通過(guò)參數(shù)檢驗(yàn)的部分介紹,想必讀者已經(jīng)對(duì)顯著性檢驗(yàn)入門(mén),有些細(xì)節(jié)這里不再詳細(xì)介紹,留作有興趣讀者自行查詢。這里對(duì)分參數(shù)檢驗(yàn)只做必要介紹。
①Kruskal-Wallis檢驗(yàn)
Kruskal-Wallis檢驗(yàn)又被稱(chēng)之為單因素非參數(shù)方差分析,是非參數(shù)版的anova1。該檢驗(yàn)的原假設(shè)是:k個(gè)獨(dú)立樣本來(lái)自于相同的正態(tài)總體。其MATLAB函數(shù)如下:
p = kruskalwallis(X,Group)
X,Group,p和參數(shù)檢驗(yàn)里的完全相同。不再詳細(xì)介紹。
②Friedman檢驗(yàn)
Friedman檢驗(yàn)又被稱(chēng)之為雙因素秩方差分析,是非參數(shù)版的anova2。同anova2一樣,待檢驗(yàn)的數(shù)據(jù)也必須是均衡的。但是需要特別注意的是,F(xiàn)riedman檢驗(yàn)和anova2檢驗(yàn)不完全相同,anova2同時(shí)注意兩個(gè)因素對(duì)待檢驗(yàn)數(shù)據(jù)的影響,但是,F(xiàn)riedman檢驗(yàn)只注重2個(gè)因素中的其中一個(gè)對(duì)待檢驗(yàn)數(shù)據(jù)的影響,而另一個(gè)因素則是用來(lái)區(qū)分區(qū)組用的。
[圖片上傳失敗...(image-902df0-1562429013456)]
如上圖所示矩陣X,F(xiàn)riedman檢驗(yàn)只關(guān)注X的各個(gè)列(因素A)水平之間有無(wú)顯著差異,他對(duì)各行之間(因素B,也被稱(chēng)之為區(qū)組因素)完全不感興趣。因此,F(xiàn)riedman檢驗(yàn)的原假設(shè)是k個(gè)獨(dú)立樣本(X的各列)來(lái)自于相同的正態(tài)總體。至于為何Friedman檢驗(yàn)對(duì)因素B不感興趣,這里通過(guò)一個(gè)例子說(shuō)明。該例子來(lái)源于《MATLAB統(tǒng)計(jì)分析與應(yīng)用40個(gè)案例分析》
有4名美食評(píng)委1234對(duì)來(lái)自于四個(gè)地區(qū)ABCD的名廚的名菜水煮魚(yú)做出評(píng)價(jià)打分,數(shù)據(jù)如下:
地區(qū) A B C D
美食評(píng)委
1 85 82 82 79
2 87 75 86 82
3 90 81 80 76
4 80 75 81 75
現(xiàn)在我們想知道,這四個(gè)地方的水煮魚(yú)品質(zhì)是否相同。
數(shù)據(jù)分析:我們的目標(biāo)是四個(gè)地方水煮魚(yú)的品質(zhì)是否相同。那么同一個(gè)評(píng)委對(duì)四個(gè)地區(qū)廚師的打分就具有可參考性,而不同地區(qū)評(píng)委之間對(duì)同一個(gè)廚師的打分參考性幾乎沒(méi)有(受評(píng)委自己的主觀意識(shí)影響太強(qiáng))。因此,我們認(rèn)為四個(gè)地區(qū)是因素A,而評(píng)委是因素B(區(qū)組因素),不同區(qū)組之間的數(shù)據(jù)沒(méi)有可比較性。
X =
85 82 82 79
87 75 86 82
90 81 80 76
80 75 81 75
p = friedman(X,1)
p = 0.0434
因此可以認(rèn)為,四個(gè)地區(qū)制作水煮魚(yú)的水平有顯著性差別。至于是那兩個(gè)之間有顯著性差別還需要一一比較。
結(jié)語(yǔ):講到這里,常見(jiàn)的顯著性檢驗(yàn)方法就算是講完了。希望通過(guò)這篇博文可以使顯著性檢驗(yàn)不再成為各位看官的心頭大患,不必再談“檢”色變。如果真的可以做到這樣,于愿足矣。
alloy = {'st','st','st','st','st','st','st','st','al1','al1','al1','al1','al1','al1','al2','al2','al2','al2','al2','al2'};
3.調(diào)用anova1函數(shù)
p = anova1(strength,alloy)
最終得到的結(jié)果會(huì)是一個(gè)數(shù)值和兩幅圖,一個(gè)值是p值。p值得看法在上文已經(jīng)介紹過(guò),這里不再細(xì)細(xì)的介紹。在本例中,p的值如下
p =
1.5264e-004
顯然,從p值看,三組值之間存在顯著性差異。有一點(diǎn)必須提一下:這里p存在顯著性差異并不意味著三組之間兩兩都存在顯著性差異,而只是說(shuō)明顯著性差異在這三組之間存在。
第一幅圖是一張表,這張表被稱(chēng)之為ANOVA表。相信許多非統(tǒng)計(jì)專(zhuān)業(yè)的同學(xué)見(jiàn)到ANOVA表的一瞬間是崩潰的,一堆問(wèn)題奔涌而出:
Source是什么鬼?SS是什么鬼,df是什么鬼,MS是什么鬼,F(xiàn)是什么鬼,Prob>F是什么鬼,etc.
這里為了解決“什么鬼”的問(wèn)題,對(duì)這張表給出詳細(xì)的解釋?zhuān)?/p>

[圖片上傳失敗...(image-f437b1-1562428959760)]
Source表示方差來(lái)源(誰(shuí)的方差),這里的方差來(lái)源包括Groups(組間),Error(組內(nèi)),Total(總計(jì));
SS(Sum of squares)表示平方和
df(Degree of freedom)表示自由度
MS(Mean squares)表示均方差
F表示F值(F統(tǒng)計(jì)量),F(xiàn)值等于組間均方和組內(nèi)均方的比值,它反映的是隨機(jī)誤差作用的大小。
Prob>F表示p值
這里需要引出兩個(gè)小問(wèn)題:第一個(gè)小問(wèn)題是F值怎么使用,第二個(gè)小問(wèn)題是p值和F值的關(guān)系是什么?
率先普及一下p值和F值之間的關(guān)系:
F實(shí)際值>F查表值,則p<=0.05
F實(shí)際值<F查表值,則p>0.05
不難看出F值在本例中等于15.4,它正是組間方差92.4和組內(nèi)方差6的比值。查F分布表(下圖),
[圖片上傳失敗...(image-c3aeb0-1562428959760)]

根據(jù) n=19( Total 的df),m=2(Groups的df)
可得F0.05( m, n-m-1) = F0.05( 2, 16) = 3.634。F實(shí)際值15.4>F查表值3.634,所以可以判定顯著性差異存在,且p值小于0.05
以上講述了如何僅僅使用F值判斷顯著性差異的方法并講述了F值同p值之間的關(guān)系。下面這張表格是箱型圖,它的看法如下圖所表注:
[圖片上傳失敗...(image-1e2374-1562428959759)]

這里有必要提一下anova1函數(shù)中的參數(shù)displayopt 的作用。在大規(guī)模的anova1調(diào)用中(例如把a(bǔ)nova1放在for循環(huán)中反復(fù)調(diào)用),需要把displayopt設(shè)置為'off',否則anova1每調(diào)用一次就會(huì)繪制兩幅圖,這樣會(huì)迅速的耗費(fèi)計(jì)算機(jī)的內(nèi)存,容易造成程序崩潰。
除了上文中介紹的第一種調(diào)用anova1的方式,還有一種方式用于均衡的方差分析。所謂均衡就是要求不同的組別內(nèi)的統(tǒng)計(jì)數(shù)據(jù)個(gè)數(shù)必須相同。在上例中出現(xiàn)的各個(gè)組的統(tǒng)計(jì)個(gè)數(shù)分別為{8,6,6}就屬于非均衡。在均衡狀態(tài)下,每個(gè)組的數(shù)據(jù)單獨(dú)構(gòu)成X中的一列,這樣便可以省略參數(shù)Group,調(diào)用方式就可以簡(jiǎn)化為anova1(X)
在上文中,我們提到過(guò)。方差分析必須滿足兩條假設(shè),分別是正態(tài)性假定和方差齊性假定。因此,在一個(gè)完整的統(tǒng)計(jì)工程中,必須首先檢測(cè)數(shù)據(jù)的正態(tài)性假定和方差齊性假定,這就涉及到另外兩個(gè)函數(shù)lillietest正態(tài)檢驗(yàn)函數(shù)(這正是我們上文提到的分布假設(shè)檢驗(yàn)而不是參數(shù)檢驗(yàn),它檢驗(yàn)的目標(biāo)是數(shù)據(jù)集服從何種分布)和vartestn方差齊性檢驗(yàn)(這正是我們上文提到的參數(shù)檢驗(yàn)而不是分布假設(shè)檢驗(yàn) ,它檢測(cè)的目標(biāo)是數(shù)據(jù)集的分布服從什么樣的參數(shù),這里就是方差)
函數(shù)二:lillietest(X)
[h,p] = lillietest (strength(1:8))
h =
0
p =
0.5000
解釋?zhuān)篽 = 0可以認(rèn)為數(shù)據(jù)服從正態(tài)分布,h=1則認(rèn)為不服從正態(tài)分布
p >0.05可以認(rèn)為接受原假設(shè)h = 0,則數(shù)據(jù)服從正態(tài)分布
[h,p] = lillietest (strength(9:14))
h =
0
p =
0.5000
[h,p] = lillietest (strength(15:20))
h =
0
p =
0.5000
可以得出結(jié)論,strength中三組數(shù)都服從正態(tài)分布
函數(shù)三:vartestn(X, Group)
p = vartestn(strength,alloy,'off')
p
=0.5142
注意:X和Group必須是列向量,否則會(huì)報(bào)錯(cuò)
p>0.05則說(shuō)明X中的不同Group是齊次的,也就是方差性齊。
②雙因素一元方差分析的方法和案例:
正如上文所述,既然是雙因素,那便是有多個(gè)標(biāo)簽了。因此雙因素一元方差分析可以理解成“單特征雙標(biāo)簽機(jī)器學(xué)習(xí)技術(shù)”。由于雙因素一元方差分析要求數(shù)據(jù)是均衡的,所以它的標(biāo)簽可以省略,就如同上文中介紹的anova1的第二種使用方法一樣。這里的例子引用于MATLAB的anova2的help文檔,用于說(shuō)明anova2的使用方法。
這里有一批爆米花數(shù)據(jù),現(xiàn)在我們知道這些爆米花的質(zhì)量打分同兩個(gè)因素相關(guān),一個(gè)是爆米花的品牌(有三個(gè)品牌:Gourmet,National,Generic)另一個(gè)是爆米花的制作工藝(油炸,氣壓)。這些數(shù)據(jù)如下所述:
brand Gourmet National Generic
methods
油炸 5.5000 4.5000 3.5000
油炸 5.5000 4.5000 4.0000
油炸 6.0000 4.0000 3.0000
氣壓 6.5000 5.0000 4.0000
氣壓 7.0000 5.5000 5.0000
氣壓 7.0000 5.0000 4.5000
現(xiàn)在需要了解的目標(biāo)有三個(gè),第一:列和列之間是否有顯著性差異(品牌間的顯著性差異),原假設(shè)是顯著性差異不存在;第二:行與行之間是否存在顯著性差異,原假設(shè)是顯著性差異不存在 ;第三:品牌和方法之間的交互作用是否明顯,原假設(shè)是交互作用不明顯
為了完成以上三個(gè)問(wèn)題,所以特別引入anova2函數(shù),anova2函數(shù)的參數(shù)如下:
p = anova2( X, reps, displayopt)
X即為待檢驗(yàn)數(shù)組。其中,X的每列一代表一種因素,X的每若干行代表另一種因素,這里的若干使用reps指明。displayopt同anova1一樣,這里不再詳述。anova2的返回是一值一幅圖。下面是具體的MATLAB方法:
popcorn =[
5.5000 4.5000 3.5000
5.5000 4.5000 4.0000
6.0000 4.0000 3.0000
6.5000 5.0000 4.0000
7.0000 5.5000 5.0000
7.0000 5.0000 4.5000];
[p,table,stats] = anova2(popcorn,3)
p =
0.0000 0.0001 0.7462

[圖片上傳失敗...(image-355f66-1562428959759)]
解釋?zhuān)簆(1) = 0.0000, 推翻原假設(shè),所以列與列之間的顯著性差異存在(品牌間存在顯著性差異);p(2) = 0.0001,推翻原假設(shè),所以行與行之間的顯著性差異存在(方法間的顯著性差異存在);p(3) = 0.7462,保留原假設(shè),則品牌和方法間的交互作用不明顯。
圖表中的Columns代表列,Rows代表行,Interaction代表交互作用,其他的與我們?cè)赼nova2中講述的完全相同,這里也不再詳細(xì)分析。
③多因素一元方差分析的方法和案例:
p = anovan(X, Group, Opt);
其中,X代表著待檢驗(yàn)數(shù)據(jù);Group代表著X的因素,由于是多因素,所以Group是多個(gè)列組成的。Opt可以選擇為'model',model后面可以填寫(xiě)'full'和'interaction'。
比如因素有三個(gè)x,y,z,那么如果model為interaction,計(jì)算結(jié)果會(huì)包括x的顯著性,y的顯著性,z的顯著性,xy,xz,yz的交互影響顯著性
如果model為full,計(jì)算結(jié)果會(huì)包括x的顯著性,y的顯著性,z的顯著性,xy,xz,yz的交互影響顯著性以及xyz的交互顯著性。
這里的例子仍然來(lái)自于MATLAB的help文檔,y是待檢驗(yàn)的數(shù)據(jù),g1,g2,g3是與y中數(shù)據(jù)一一對(duì)應(yīng)的3個(gè)因素(數(shù)據(jù)標(biāo)簽)
y = [52.7 57.5 45.9 44.5 53.0 57.0 45.9 44.0]';
g1 = [1 2 1 2 1 2 1 2];
g2 = {'hi';'hi';'lo';'lo';'hi';'hi';'lo';'lo'};
g3 = {'may';'may';'may';'may';'june';'june';'june';'june'};
p = anovan(y,{g1 g2 g3},'model','interaction')
p =
0.0347
0.0048
0.2578
0.0158
0.1444
0.5000

[圖片上傳失敗...(image-d840-1562428959759)]
這里有一個(gè)使用的小竅門(mén),如果你想做非平衡雙因素一元方差分析那么也可以采用多因素一元方差分析函數(shù)。
④單因素多元方差分析的方法和案例:
[d, p] = manova1(X, Group);
p,X和Group與之前相同。該方差分析的原假設(shè)是“各組的組均值是相同的多元向量”這里對(duì)d做出解釋?zhuān)?/p>
d=0,接受原假設(shè)
d=1,拒絕原假設(shè),認(rèn)為各組的組均值不完全相同,但是不能拒絕它們共線的假設(shè)。
d=2,拒絕原假設(shè),各組的組均值向量可能共面,但是不共線。
四種商品(x1,x2,x3,x4)按照不同的兩種銷(xiāo)售方式進(jìn)行銷(xiāo)售,數(shù)據(jù)如下:
編號(hào) x1 x2 x3 x4 銷(xiāo)售方式
1 125 60 338 210 1
2 119 80 233 330 1
3 63 51 260 203 1
4 65 51 429 150 1
5 130 65 403 205 1
6 65 33 480 260 1
7 100 34 468 295 2
8 65 63 416 265 2
9 110 69 377 260 2
10 88 78 299 360 2
11 73 63 390 320 2
12 103 54 416 310 2
13 64 51 507 320 2
X =
125 60 338 210
119 80 233 330
63 51 260 203
65 51 429 150
130 65 403 205
65 33 480 260
100 34 468 295
65 63 416 265
110 69 377 260
88 78 299 360
73 63 390 320
103 54 416 310
64 51 507 320
Groups =
1
1
1
1
1
1
2
2
2
2
2
2
2
[d, p] = manova1(X, Groups);
d =
0
p =
0.0695
因此,拒絕原假設(shè),各組的組均值不是相同的多元向量。
非參數(shù)檢驗(yàn):
到這類(lèi),參數(shù)檢驗(yàn)部分就算是說(shuō)完了。我們可以回顧一下,參數(shù)檢驗(yàn)的四種函數(shù)分為anova1,anova2,anovan,manova1。他們都基于共同的兩個(gè)假設(shè):正態(tài)性假定和方差齊性假定 ,分別對(duì)應(yīng)著函數(shù)lillietest 和vartestn。但是,我們?cè)趯?shí)際工作中,不可能總是遇到滿足這兩個(gè)假定的統(tǒng)計(jì)數(shù)據(jù),這時(shí)候,如果強(qiáng)行采用參數(shù)檢驗(yàn)就會(huì)造成錯(cuò)誤。此時(shí),可以采用基于秩和的非參數(shù)檢驗(yàn)。這里我們介紹兩種非參數(shù)檢驗(yàn):Kruskal-Wallis檢驗(yàn),F(xiàn)riedman檢驗(yàn)。通過(guò)參數(shù)檢驗(yàn)的部分介紹,想必讀者已經(jīng)對(duì)顯著性檢驗(yàn)入門(mén),有些細(xì)節(jié)這里不再詳細(xì)介紹,留作有興趣讀者自行查詢。這里對(duì)分參數(shù)檢驗(yàn)只做必要介紹。
①Kruskal-Wallis檢驗(yàn)
Kruskal-Wallis檢驗(yàn)又被稱(chēng)之為單因素非參數(shù)方差分析,是非參數(shù)版的anova1。該檢驗(yàn)的原假設(shè)是:k個(gè)獨(dú)立樣本來(lái)自于相同的正態(tài)總體。其MATLAB函數(shù)如下:
p = kruskalwallis(X,Group)
X,Group,p和參數(shù)檢驗(yàn)里的完全相同。不再詳細(xì)介紹。
②Friedman檢驗(yàn)
Friedman檢驗(yàn)又被稱(chēng)之為雙因素秩方差分析,是非參數(shù)版的anova2。同anova2一樣,待檢驗(yàn)的數(shù)據(jù)也必須是均衡的。但是需要特別注意的是,F(xiàn)riedman檢驗(yàn)和anova2檢驗(yàn)不完全相同,anova2同時(shí)注意兩個(gè)因素對(duì)待檢驗(yàn)數(shù)據(jù)的影響,但是,F(xiàn)riedman檢驗(yàn)只注重2個(gè)因素中的其中一個(gè)對(duì)待檢驗(yàn)數(shù)據(jù)的影響,而另一個(gè)因素則是用來(lái)區(qū)分區(qū)組用的。

[圖片上傳失敗...(image-d197dc-1562428959759)]
如上圖所示矩陣X,F(xiàn)riedman檢驗(yàn)只關(guān)注X的各個(gè)列(因素A)水平之間有無(wú)顯著差異,他對(duì)各行之間(因素B,也被稱(chēng)之為區(qū)組因素)完全不感興趣。因此,F(xiàn)riedman檢驗(yàn)的原假設(shè)是k個(gè)獨(dú)立樣本(X的各列)來(lái)自于相同的正態(tài)總體。至于為何Friedman檢驗(yàn)對(duì)因素B不感興趣,這里通過(guò)一個(gè)例子說(shuō)明。該例子來(lái)源于《MATLAB統(tǒng)計(jì)分析與應(yīng)用40個(gè)案例分析》
有4名美食評(píng)委1234對(duì)來(lái)自于四個(gè)地區(qū)ABCD的名廚的名菜水煮魚(yú)做出評(píng)價(jià)打分,數(shù)據(jù)如下:
地區(qū) A B C D
美食評(píng)委
1 85 82 82 79
2 87 75 86 82
3 90 81 80 76
4 80 75 81 75
現(xiàn)在我們想知道,這四個(gè)地方的水煮魚(yú)品質(zhì)是否相同。
數(shù)據(jù)分析:我們的目標(biāo)是四個(gè)地方水煮魚(yú)的品質(zhì)是否相同。那么同一個(gè)評(píng)委對(duì)四個(gè)地區(qū)廚師的打分就具有可參考性,而不同地區(qū)評(píng)委之間對(duì)同一個(gè)廚師的打分參考性幾乎沒(méi)有(受評(píng)委自己的主觀意識(shí)影響太強(qiáng))。因此,我們認(rèn)為四個(gè)地區(qū)是因素A,而評(píng)委是因素B(區(qū)組因素),不同區(qū)組之間的數(shù)據(jù)沒(méi)有可比較性。
X =
85 82 82 79
87 75 86 82
90 81 80 76
80 75 81 75
p = friedman(X,1)
p = 0.0434
因此可以認(rèn)為,四個(gè)地區(qū)制作水煮魚(yú)的水平有顯著性差別。至于是那兩個(gè)之間有顯著性差別還需要一一比較。
結(jié)語(yǔ):講到這里,常見(jiàn)的顯著性檢驗(yàn)方法就算是講完了。希望通過(guò)這篇博文可以使顯著性檢驗(yàn)不再成為各位看官的心頭大患,不必再談“檢”色變。如果真的可以做到這樣,于愿足矣。