羅博煒 洪智勇 王勁屹
摘 ?要: 以多元線性回歸統(tǒng)計(jì)模型為基礎(chǔ),用Python語言對(duì)美國部分地區(qū)房價(jià)數(shù)據(jù)進(jìn)行建模預(yù)測(cè),進(jìn)而探究提高多元回歸線性模型精度的方法。先對(duì)數(shù)據(jù)進(jìn)行探索性預(yù)處理,隨后設(shè)置虛擬變量并建模得出預(yù)測(cè)結(jié)果,再使用方差膨脹因子對(duì)多重共線性進(jìn)行修正,從而提高模型精度與穩(wěn)健性,使回歸結(jié)果在很大程度上得到優(yōu)化。
關(guān)鍵詞: 多元線性回歸; 多重共線性; 虛擬變量; 方差膨脹因子
中圖分類號(hào):TP3-05 ? ? ? ? ?文獻(xiàn)標(biāo)識(shí)碼:A ? ? 文章編號(hào):1006-8228(2020)06-51-04
Abstract: Based on the multiple linear regression statistical model, this paper built the model to predict the house price by utilizing some parts of the United States data, and then explores methods to improve the accuracy of the multiple linear regression model. Firstly, the data were preprocessed, and then the dummy variables were set up for modeling to obtain the predicted results. After that, the multicollinearity was modified by variance inflation factor so that the accuracy as well as robustness of the model was improved, and the regression results were optimized largely.
Key words: multiple linear regression; multicollinearity; dummy variable; variance inflation factor
0 引言
多元線性回歸具有非常廣泛的應(yīng)用范圍,但在實(shí)際預(yù)測(cè)中對(duì)存在類別變量設(shè)置不充分或多重共線性問題,導(dǎo)致統(tǒng)計(jì)模型缺乏精度和穩(wěn)健性。由此,本文對(duì)如何精準(zhǔn)且高效的排除多重共線性影響,并合理地將分類變量轉(zhuǎn)化為虛擬變量,提升多元線性回歸模型精度作了進(jìn)一步探索,并將其應(yīng)用于房價(jià)預(yù)測(cè)上。
1 多元線性回歸模型
一個(gè)因變量與兩個(gè)或更多的預(yù)測(cè)變量之間的聯(lián)系被稱為多元相關(guān)。在這種情況下做出的預(yù)測(cè)被稱為多元回歸。線性關(guān)系指因變量與自變量之間存在一次方函數(shù)關(guān)系。多元線性回歸模型如下:
其中y為因變量;為自變量;β0,β1,β2,…,βm-1是m個(gè)未知參數(shù);ε是均值為零,方差為σ2>0的不可觀測(cè)的隨機(jī)變量,稱為誤差項(xiàng),并通常假定ε~N(0,σ2)。
多元回歸模型初步建立后,是否真正解釋了預(yù)測(cè)變量和因變量的關(guān)系,還要進(jìn)行顯著性檢驗(yàn)。
1.1 回歸方程的擬合優(yōu)度檢驗(yàn)
判定指數(shù)R2描述了由自變量的線性函數(shù)值所能反應(yīng)的Y的總變化量比例。結(jié)果在0-1間,越大說明擬合效果越好,判定指數(shù)公式如下
其中,MSE表示均方誤差,SSE被稱為殘差平方和。SSR則被稱為回歸和,反映了自變量的線性函數(shù)在各組觀測(cè)值出取值的離差平方和;SST則被稱為總離差平方和,用于度量y自身的差異程度,即數(shù)據(jù)總的變動(dòng)。
1.2 回歸系數(shù)的顯著性檢驗(yàn)
t檢驗(yàn)是分別檢驗(yàn)回歸模型中各個(gè)回歸系數(shù)是否具有顯著性,以便使模型中只保留那些對(duì)因變量有顯著影響的因素。檢驗(yàn)時(shí)先計(jì)算統(tǒng)計(jì)量ti;然后根據(jù)給定的顯著水平α,自由度n-k-1查t分布表,得臨界值tα或tα/2, 若t>t-α或tα/2,則回歸系數(shù)bi與0有顯著差異,反之,則與0無顯著差異。統(tǒng)計(jì)量t的計(jì)算公式為:
2 虛擬變量的轉(zhuǎn)換
常見的變量類型有定量變量與定類變量兩種,其中定類變量也被稱為屬性變量,即該變量的分?jǐn)?shù)是屬性,或是可分類的(如房價(jià)預(yù)測(cè)中的房屋類型)。但在房價(jià)回歸分析中不宜直接使用定類變量,因?yàn)閷?duì)定類變量所賦與的離散值之間的相等間距掩蓋了不同類別之間的差異(如房屋朝向),虛擬變量是解決該問題的經(jīng)典做法之一。任意一個(gè)具有k個(gè)屬性皆可定義成一組k個(gè)取值為1或0的虛擬變量。表1以房屋朝向?yàn)槔?,舉例構(gòu)造虛擬變量。值得注意的是,轉(zhuǎn)化需要舍棄一個(gè)虛擬列,才能得到滿秩矩陣[1]。
3 多重共線性與VIF
3.1 多重共線性
多元線性回歸模型的主要假設(shè)之一是自變量彼此不存在強(qiáng)相關(guān),否則會(huì)出現(xiàn)多重共線性問題。多重共線性的一個(gè)主要問題在于,它會(huì)導(dǎo)致多元線性回歸系數(shù)的顯著性偏離真實(shí)方向。要判斷是否有多重共線性,最常見的辦法是借助方差膨脹因子來修正[2]。
3.2 方差膨脹因子
方差膨脹因子(Variance Inflation Factor,VIF)是指解釋變量之間存在多重共線性時(shí)的方差與不存在多重共線性時(shí)的方差之比。VIF越大,顯示共線性越嚴(yán)重。自變量x的方差膨脹因子記為VIF,它的計(jì)算方法為:
經(jīng)驗(yàn)判斷方法表明:當(dāng)0 4 案例分析 本文選用2019年美國波士頓地區(qū)房價(jià)作為示例數(shù)據(jù)集(6028條),已經(jīng)剔除各屬性過高或過低的異常值,并專注于多元線性回歸分析,通過實(shí)例數(shù)據(jù)驗(yàn)證回歸分析的結(jié)果,并使用方差膨脹因子對(duì)模型中可能存在的多重共線性進(jìn)行修正,進(jìn)一步提高了模型的精度與泛化能力。示例數(shù)據(jù)集屬性說明見表2。 隨機(jī)預(yù)覽5條數(shù)據(jù)如表3所示。 4.1 房價(jià)影響參數(shù)分析 正式建立模型前,使用探索性數(shù)據(jù)分析(Exploratory data analysis以下簡稱EDA)來查找數(shù)據(jù)集中變量的分布、模式、關(guān)系或異常情況,可以對(duì)數(shù)據(jù)集本身有一個(gè)快速直觀的了解,并且會(huì)在很大程度上為后續(xù)建模提供便利。Python作為一門強(qiáng)大的編程語言,在數(shù)據(jù)可視化方面為客戶提供了如Matplotlib,Seaborn等強(qiáng)大的第三方庫[3]。EDA結(jié)果如圖1所示。 圖1散點(diǎn)圖矩陣可以看出:不論房屋樣式如何,房屋的價(jià)格與占地面積、房間數(shù)量等都呈現(xiàn)不同程度的正相關(guān)關(guān)系;占地面積與房間數(shù)量的關(guān)系亦如此。 4.2 建立模型 Python的統(tǒng)計(jì)學(xué)庫 statsmodels 可以很好的處理預(yù)測(cè)變量和因變量,輸出自變量系數(shù)的同時(shí)亦能給出每個(gè)回歸系數(shù)的顯著性檢驗(yàn),置信區(qū)間,以及模型的精度情況取定量變量area,bedrooms,bathrooms作為預(yù)測(cè)變量,房屋價(jià)格price作為因變量,來初步建立多元線性回歸模型,得到表4。 表中各自變量的顯著性檢驗(yàn)結(jié)果(P>|t|)項(xiàng)表明:對(duì)變量bedrooms與bathrooms來說,我們只能保留零假設(shè),證明無顯著統(tǒng)計(jì)性,面積則具有顯著統(tǒng)計(jì)性。 4.3 多重共線性的檢測(cè) 觀測(cè)自變量bedrooms與bathrooms二者的系數(shù)時(shí),不難發(fā)現(xiàn):在模型其他變量不變的情況下,預(yù)測(cè)變量bedrooms每增加一個(gè)單位,因變量房屋價(jià)格會(huì)隨之減少2925.81美元,這就與EDA中散點(diǎn)圖的預(yù)期截然相反,見圖1。 散點(diǎn)圖是檢測(cè)是否出現(xiàn)多重共線性的其中一個(gè)方法,本身不夠精確,而Python的第三方支持庫 patsy 與 statsmodels中的方差膨脹因子函數(shù),可很好的解決該問題。當(dāng)建立的多元線性回歸模型中有存在多重共線性的風(fēng)險(xiǎn)時(shí),statsmodels 庫會(huì)在運(yùn)行結(jié)果后自動(dòng)打印 Warnings 信息作為提醒,具體檢測(cè)結(jié)果如表5。 可清晰看出自變量bedrooms與bathrooms的方差膨脹因子均大于10,因此,存在顯著的共線性,選取最大的方差膨脹因子變量為多余變量,將其剔除再重復(fù)上述多元回歸模型的建模步驟,重新計(jì)算自變量系數(shù)、截距及方差膨脹因子,結(jié)果如表6、表7。 結(jié)合表5和表7可以看出,刪除最大膨脹因子變量bedrooms后,模型精度變強(qiáng),且方差膨脹因子也回到正常水平,由此證明初步模型存在多重共線性問題。 4.4 設(shè)置虛擬變量 上述建模步驟均是將定量變量作為自變量,未能辨析街區(qū)及房屋樣式等定類變量對(duì)房價(jià)的影響。此時(shí)需要給分類變量設(shè)置虛擬變量。Python的pandas庫中的get_dummies函數(shù)可以快捷設(shè)置虛擬變量,見表8。 4.5 優(yōu)化后的多元線性回歸模型 自變量:area,bathrooms,A,B,lodge,ranch 因變量:price 優(yōu)化后的模型在運(yùn)行過程中,并沒有出現(xiàn)多重共線性的警告,穩(wěn)健起見,再次進(jìn)行方差膨脹因子檢驗(yàn),結(jié)果見表10。 綜上所述,可得知以下信息。 ⑴ 多元線性回歸模型結(jié)果為: ⑵ 判定指數(shù)R2 91.9%所反映的價(jià)格變動(dòng),可由基于占地面積、住宅區(qū)、住宅風(fēng)格和臥室數(shù)量這四個(gè)變量來解釋,經(jīng)過優(yōu)化后的模型擬合效果較好,預(yù)測(cè)結(jié)果更加可靠; ⑶ 各自變量的p值均小于1%,呈現(xiàn)出較強(qiáng)的顯著性; ⑷ 其他條件不變的情況下,一間住宅每增加一個(gè)臥室,預(yù)測(cè)其價(jià)格會(huì)增加5386美元; ⑸ 其他條件不變的情況下,預(yù)測(cè)C住宅區(qū)的房價(jià)要比A住宅區(qū)的房價(jià)少88美元,住宅區(qū)B則比C要多524400美元; ⑹ 其他條件不變的情況下,預(yù)測(cè)大農(nóng)場(chǎng)式房屋 ranch 比維多利亞住宅價(jià)格要多6224美元。 5 結(jié)論 本文以多元線性回歸為基礎(chǔ)和前提,在因變量房價(jià)與多個(gè)自變量的實(shí)際觀測(cè)值建立了多元線性回歸模型;分析并檢驗(yàn)各個(gè)預(yù)測(cè)變量對(duì)因變量的綜合線性影響的顯著性,并盡可能的消除多重共線性的影響,篩選出因變量有顯著線性影響的自變量,對(duì)基準(zhǔn)模型進(jìn)行優(yōu)化,并對(duì)各自變量相對(duì)重要性進(jìn)行評(píng)定,進(jìn)而提升了回歸模型的預(yù)測(cè)精度。 參考文獻(xiàn)(References): [1] 曹志祥.回歸分析中虛擬變量的系數(shù)轉(zhuǎn)換[J].統(tǒng)計(jì)研究,1994.11(1):69-71 [2] 肖琳,何大衛(wèi).Pls回歸在消除多重共線性中的作用[J].山西醫(yī)科大學(xué)學(xué)報(bào),2002.3:228-231 [3] Mckinney W.利用PYTHON進(jìn)行數(shù)據(jù)分析[M].機(jī)械工業(yè)出版社,2014.