上圖公式可以看出在方差膨脹因子的檢測中:
每個(gè)自變量都會(huì)有一個(gè)膨脹因子值 ,最后根據(jù)值的大小來選擇是否刪減「既然 表示相關(guān)性,是誰跟誰的相關(guān)性呢?」 是自變量中的某一變量與除它外剩余的自變量進(jìn)行多元線性回歸,取回歸結(jié)果,即模型精度來作為這個(gè)變量與剩余自變量的相關(guān)性 。聽起來可能有點(diǎn)繞,這里舉一下實(shí)例(用 “面積、臥室數(shù)量和浴室數(shù)量” 作為自變量來預(yù)測房價(jià),在進(jìn)行自變量的方差膨脹因子的檢測時(shí),面積、臥室數(shù)和浴室數(shù)輪流做單獨(dú)的因變量,剩下的兩個(gè)變量作為自變量,來看看這三個(gè)自變量中那個(gè)變量對其余兩個(gè)變量的解釋性高)越大,如已經(jīng)到了 0.9,那分母就很小, 的值就等于 10,即表示這個(gè)自變量已經(jīng)同時(shí)解釋了另外的某個(gè)或多個(gè)自變量,存在多元共線性,可以考慮刪除一些自變量 。越大,顯示共線性越嚴(yán)重 。經(jīng)驗(yàn)判斷方法表明:「當(dāng) ,不存在多重共線性;當(dāng) ,存在較強(qiáng)的多重共線性;當(dāng) ,存在嚴(yán)重多重共線性」 。
方差膨脹因子的檢測我們自己來寫一個(gè)方差膨脹因子的檢測函數(shù)
defvif(df,col_i):"""df:整份數(shù)據(jù) col_i:被檢測的列名"""cols=list(df.columns)cols.remove(col_i)cols_noti=colsformula=col_i+'~'+'+'.join(cols_noti)r2=ols(formula,df).fit().rsquaredreturn1./(1.-r2)現(xiàn)在進(jìn)行檢測
test_data=https://www.520longzhigu.com/diannao/results[['area','bedrooms','bathrooms','A','B']]foriintest_data.columns:print(i,'t',vif(df=test_data,col_i=i))發(fā)現(xiàn)bedrooms和bathrooms存在強(qiáng)相關(guān)性,可能這兩個(gè)變量是解釋同一個(gè)問題,方差膨脹因子較大的自變量通常是成對出現(xiàn)的 。
果然,bedrooms和bathrooms這兩個(gè)變量的方差膨脹因子較高,這里刪除自變量bedrooms再次進(jìn)行建模
lm=ols(formula='price~area+bathrooms+A+B',data=https://www.520longzhigu.com/diannao/results).fit()lm.summary()模型精度稍降,但消除了多元共線性后能夠使模型的泛化能力提升 。再次進(jìn)行多元共線性檢測
test_data=https://www.520longzhigu.com/diannao/results[['area','bedrooms','A','B']]foriintest_data.columns:print(i,'t',vif(df=test_data,col_i=i))那么多元共線性就「只有通過方差膨脹因子才能看的出來嗎?」 其實(shí)并不一定,通過結(jié)合散點(diǎn)圖或相關(guān)稀疏矩陣和模型中自變量的系數(shù)也能看出端倪 。下圖是未處理多元共線性時(shí)的自變量系數(shù) 。
可以很明顯的看出,bathrooms的參數(shù)很可能是有問題的,怎么可能bathrooms的數(shù)據(jù)量每增加一個(gè),房屋總價(jià)還減少 1.373*10 的四次方美元呢?簡單的畫個(gè)散點(diǎn)圖和熱力圖也應(yīng)該知道房屋總價(jià)與bathrooms 個(gè)數(shù)應(yīng)該是成正比例關(guān)系的 。
模型解釋多元線性回歸模型的可解釋性比較強(qiáng),將模型參數(shù)打印出來即可求出因變量與自變量的關(guān)系
所以最終的建模結(jié)果如下,且該模型的精度為0.916
另外在等式結(jié)果中,截距項(xiàng)Intercept和area,bedrooms等變量的系數(shù)都還好理解;A,B 這兩個(gè)虛擬變量可能相對困難些 。其實(shí)根據(jù)原理部分的表格來看,如果房屋在 C 區(qū),那等式中 A 和 B 這兩個(gè)字母的值便是 0,所以這便引出了非常重要的一點(diǎn):使用了虛擬變量的多元線性回歸模型結(jié)果中,存在于模型內(nèi)的虛擬變量都是跟被刪除掉的那個(gè)虛擬變量進(jìn)行比較 。所以這個(gè)結(jié)果便表示在其他情況完全一樣時(shí)(即除虛擬變量外的項(xiàng))A 區(qū)的房屋比 C 區(qū)低 8707.18 美元,B 區(qū)則比 C 區(qū)貴 449896.73.7 美元 。當(dāng)然我們也可以畫個(gè)箱線圖來查看與檢驗(yàn),發(fā)現(xiàn)結(jié)果正如模型中 A 與 B 的系數(shù)那般顯示 。
小結(jié)本文以多元線性回歸為基礎(chǔ)和前提,在因變量房價(jià)與多個(gè)自變量的實(shí)際觀測值建立了多元線性回歸模型;分析并檢驗(yàn)各個(gè)預(yù)測變量對因變量的綜合線性影響的顯著性,并盡可能的消除多重共線性的影響,篩選出因變量有顯著線性影響的自變量,對基準(zhǔn)模型進(jìn)行優(yōu)化,并對各自變量相對重要性進(jìn)行評定,進(jìn)而提升了回歸模型的預(yù)測精度 。
以上關(guān)于本文的內(nèi)容,僅作參考!溫馨提示:如遇健康、疾病相關(guān)的問題,請您及時(shí)就醫(yī)或請專業(yè)人士給予相關(guān)指導(dǎo)!
「愛刨根生活網(wǎng)」www.malaban59.cn小編還為您精選了以下內(nèi)容,希望對您有所幫助:- arduino編程基礎(chǔ)知識 arduino編程語言入門
- 講解python常用框架 radiobutton控件
- java遠(yuǎn)程調(diào)用python腳本講解 java執(zhí)行python代碼
- 劇本殺是干什么的 劇本殺入門基礎(chǔ)知識
- 專業(yè)咖啡烘豆師的基礎(chǔ)知識與培訓(xùn) 珠??Х葞熍嘤?xùn)
- 自學(xué)wps基礎(chǔ)知識 wps文字教程技巧大全
- ??:它掌握了構(gòu)建游戲PC的基礎(chǔ)知識
- 求和函數(shù)的用法 mysql求和函數(shù)語法
- 「咖啡烘焙進(jìn)階」專業(yè)咖啡烘豆師的基礎(chǔ)知識與培訓(xùn) 珠??Х葞熍嘤?xùn)
- python就業(yè)前景 python就業(yè)方向有哪些
