肖明魁

摘要:近年隨著大數據時代的來臨,python語言作為一種廣泛使用的編程工具被人們越來越多地運用于數據分析,建模及數據挖掘等領域。而今大數據時代,數據研究和分析在各行各業得到廣泛的應用,在對多樣本數據做檢驗時,經常會使用單因素方差分析方法,用于考察單個自變量對因變量產生的變化和影響,并通過兩兩比較進一步驗證準確性,本文以實際數據作為案例,研究和分析pthon語言如何實現單因素方差和兩兩比較具體應用。
關鍵詞:大數據;python;方差分析
中圖分類號:TP393? ? ? ? ? ? ? ?文獻標識碼:A
文章編號:1009-3044(2019)26-0029-02
開放科學(資源服務)標識碼(OSID):
1 基本概念介紹
單因素方差分析是指,對多組樣本進行分析過程中,檢驗具體某個影響因子的差異是否可能對總體觀察對象產生顯著影響。例如,不同的患者使用不同的藥物是否會產生明顯不同的臨床效果;不同品牌商品在不同的城市的銷量是否存在顯著差異等。通常被考察的分組樣本為分類變量,而考察結果則為連續型變量。
單因素方差分析是有效解決這個問題的方法之一,單因素方差分析中,多組樣本總體差異分兩部分構成:隨機差異和處理因素差異,即:總體差異=隨機差異+處理因素差異。隨機差異是指不同分組中各獨立樣本的個體差異,由于分組樣本是隨機分布,其個體差也是隨機存在,而處理因素差異則是指由于樣本不同分組規則導致的差異,例如, 同一患者在使用不同的藥物之后產生的不同臨床效果,同一商品在不同城市銷量會有顯著差異。與此同時,樣本總體差異還和組內差異和組間差異有關,即:樣本總體差異=組內差異+組間差異,通常,組內差異是由于隨機差異導致,而組間差異的產生則是隨機差異和處理因素差異共同影響的結果,對于方差分析研究,重點考察的對象是處理因素差異對總體樣本差異產生的影響,即通過組內差異與組間差異相比較,來判斷總體樣本是否存在處理因素差異,因此,我們需要尋找一個合適的指標作為判斷標準,統計學中的離均差,平方和,標準差,方差等都具有一定參考價值,同時還要充分考慮樣本分析中數據標準化問題,我們可用以下公式表示兩者間的關系:F=MSA/MSE,其中,MSA和MSE分別表示組間和組內差異的方差,又稱均方,二者的比值F代表處理因素的影響值,當F?1,組間差異遠大于組內差異,說明處理因素差異顯著,若F=1,則認為處理因素影響可以忽略,F值的大小通常采用P值確定。
在對總體樣本作差異分析之后,如果拒絕H0原假設,即各分組樣本之間可能存在顯著差異,若想具體了解不同分組之間的差異,需要對樣本檢驗做進一步分析,即兩兩比較,同時,方差分析對樣本分布也有明確的要求,第一,各樣本必須相互獨立,第二,樣本總體必須符合正態分布,第三,樣本必須滿足方差齊性要求。
對多組樣本假設分析理論上可采用兩兩比較的方法,對各組樣本作T檢驗分析,分別考察兩組樣本的差異,然而實際研究過程中,每次T檢驗都可能會出現棄真錯誤,即統計學概念中的第一類錯誤,誤將H0原假設拒絕,通常假設檢驗的允許誤差為0.05,即α=0.05,相對的,每次正確推斷的概率為0.95,而經過N組樣本比較之后,最終檢驗正確概率為0.95^N,檢驗準確率呈指數級下降,而α=1-0.95^N,顯然無法滿足假設檢驗的允許誤差范圍,可見對于實際研究中多組樣本假設檢驗,簡單的兩兩比較方法是不可行的。
解決兩兩比較方法中一類錯誤放大問題的關鍵在于控制一類錯誤的大小,即對一類錯誤作校正。在實際樣本分析過程中,誤差校正通常會遇到三種情形:一,比較誤差CER,指每次分組比較時所出現的一類錯誤概率,即α值;二,完全無效假設條件下的檢驗誤差率EERC,指當原假設H0完全成立時一類錯誤出現的概率,因此,方差分析檢驗也可被認為是對EERC的控制;三,最大試驗誤差率MEER,指在任何完全或部分無效假設成立時,一類錯誤出現的最大概率,在實際研究過程中,MEER使用范圍最廣。
兩兩比較對于一類錯誤的控制方法有很多種,通常可分為兩大類:直接校正P值法和聯合檢驗法。直接校正法是通過控制每次分組檢驗的假設概率,使得樣本總α水準被限制在0.05之內,從而確保總體檢驗的有效性,常用的直接校正法有sidak校正,bonferroni校正等,直接校正法存在一定缺陷,由于該方法對每組樣本都做兩兩比較,因此不僅效率低,而且增加了誤差影響,其次,直接校正法對于一類錯誤控制較嚴,檢驗結果關于陽性結論過于保守。聯合檢驗法克服了這一缺陷,該方法在標準誤和自由度的計算上利用了全部樣本信息,使得結果相對于直接校正法更準確,然而,如果不對聯合檢驗結果做校正,也有可能使得假陽性的概率增加。聯合檢驗法通常包括以下幾種,SNK法,Turkey,Duncan,Scheffe,Dunnet等。
兩兩比較方法有很多種,在實際研究中,應當根據樣本分析的具體情況采用不同方法,對于各個樣本互相獨立,或者有針對性地對若干對均數做分析時,此時不必使用兩兩比較,一般采用T檢驗就夠了;若總體樣本檢驗結果接受原假設H0,各樣本之間無明顯差異,則無須進行兩兩比較;對于某些明確對照組進行驗證性研究時,適合采用Bonferroni法;對于隨機多組均數間的探索性驗證研究,為確保原假設的準確性,需要嚴格控制一類錯誤,通常采用Turkey法和Scheffe法。
2 具體案例實現
本文以某市多所中學在校生各科成績匯總表數據為例,以各學校在校生成績作為作為分組樣本, 具體闡述單因素方差和兩兩比較分析方法。
Python語言集成了大量用于數據分析挖掘的工具包,最常用的包括statsmodels,scipy等模塊,其中statsmodels包含了大量統計模型,非常方便用于描述統計,模型估計和推斷,使用之前,需要做模型設定,代碼如下:
輸出結果顯示為標準方差分析表格,對分組變量學校的檢驗結果表明,該樣本離均差平方和為8.085729e+07,自由度為12,統計量F值為849.921572,PR值為0,因此,檢驗結果拒絕原假設H0,可以認為分組樣本之間存在顯著差異。
確定分組樣本之間存在差異之后,還須進一步研究分析各分組樣本之間差異程度,即兩兩比較。Python提供了一個有效的工具包scikit,用于分析研究。代碼如下:
輸出部分結果如下:
表格行列分別表示分組變量學校,表格中的每個數字則表示兩兩比較的PR值,若PR<0.05,則檢驗結果拒絕原假設H0,即兩組樣本之間存在顯著差異;反之,則接受原假設,即兩組樣本可以被認為無顯著差異。
表格數據展示相對比較復雜,python還可以通過熱力圖的可視化方式展示更加直觀,以上數據可以通過繪圖模塊matplotlib處理,達到理想效果,代碼如下:
輸出結果如圖所示:
熱力圖通過不同顏色色塊,很直觀地展示出分組樣本兩兩比較的驗證結果。
3 結束語
作為近年最受歡迎的編程工具之一,python語法簡潔,清晰,且易于理解和維護,尤其是附帶的功能強大,種類豐富的各種工具包和模塊,為數據研究分析工程提供了更多創新思路和可行性解決方案,除了簡單的一般線性模型,python工具包還提供了多種回歸模型,樹模型,隨機森林,神經網絡等更為復雜的建模和功能,充分滿足用戶工程開發需要,在數據分析和研究過程中,應當充分利用開發工具提供的各種模塊和方法,可以達到事半功倍的效果。與此同時,更為豐富強大的python模塊也在源源不斷地開發和發布過程中,相信在未來大數據時代,作為重要的軟件開發工具,python必將發揮更大的潛力和應用價值。
參考文獻:
[1] 陳明.大數據可視化分析[J].計算機教育,2015-3-10.
[2] 聶晶.python在大數據挖掘和分析中的應用優勢[J].廣西民族大學學報,2018-2-15.
[3] 劉雨珂,王平.基于Python+Pandas+Matplotlib的學生成績數據統計與圖形輸出實現[J].福建電腦,2017-10-31.
[4] 翟高粵.基于Python的數據分析概述[J].甘肅科技縱橫,2018-11-25.
[5] 聶晶.Python在大數據挖掘和分析中的應用優勢[J].廣西民族大學學報(自然科學版),2018-01.
[6] 葉惠仙.Python在學院招生數據分析中的應用[J].計算機時代,2018-11.
【通聯編輯:梁書】