線性回歸可能是數(shù)據(jù)分析中最為常用的工具了,如果你認(rèn)為手上的數(shù)據(jù)存在著線性定量關(guān)系,不妨先畫個(gè)散點(diǎn)圖觀察一下,然后用線性回歸加以分析。下面簡(jiǎn)單介紹一下如何在R中進(jìn)行線性回歸。
一、回歸建模
我們利用R語(yǔ)言中內(nèi)置的trees數(shù)據(jù),其中包含了Volume(體積)、Girth(樹圍)、Height(樹高)這三個(gè)變量,我們希望以體積為因變量,樹圍為自變量進(jìn)行線性回歸。
1 | plot (Volume~Girth,data=trees,pch=16,col= 'red' ) |
2 | model= lm (Volume~Girth,data=trees) |
首先繪制了兩變量的散點(diǎn)圖,然后用lm函數(shù)建立線性回歸模型,并將回歸直線加在原圖上,最后用summary將模型結(jié)果進(jìn)行了展示,從變量P值和F統(tǒng)計(jì)量可得回歸模型是顯著的。但截距項(xiàng)不應(yīng)該為負(fù)數(shù),所以也可以用下面方法將截距強(qiáng)制為0。
1 | model2= lm (Volume~Girth-1,data=trees) |
二、模型診斷
在模型建立后會(huì)利用各種方式來(lái)檢驗(yàn)?zāi)P偷恼_性,對(duì)殘差進(jìn)行分析是常見(jiàn)的方法,下面我們來(lái)生成四種用于模型診斷的圖形。
這里左上圖是殘差對(duì)擬合值作圖,整體呈現(xiàn)出一種先下降后下升的模式,顯示殘差中可能還存在未提煉出來(lái)的影響因素。右上圖殘差QQ圖,用以觀察殘差是否符合正態(tài)分布。左下圖是標(biāo)準(zhǔn)化殘差對(duì)擬合值,用于判斷模型殘差是否等方差。右下圖是標(biāo)準(zhǔn)化殘差對(duì)杠桿值,虛線表示的cooks距離等高線。我們發(fā)現(xiàn)31號(hào)樣本有較大的影響。
三、變量變換
因?yàn)?1號(hào)樣本有著高影響力,為了降低其影響,一種方法就是將變量進(jìn)行開(kāi)方變換來(lái)改善回歸結(jié)果,從殘差標(biāo)準(zhǔn)誤到殘差圖,各項(xiàng)觀察都說(shuō)明變換是有效的。
1 | plot ( sqrt (Volume)~Girth,data=trees,pch=16,col= 'red' ) |
2 | model2= lm ( sqrt (Volume)~Girth,data=trees) |
四、模型預(yù)測(cè)
下面根據(jù)上述模型計(jì)算預(yù)測(cè)值以及置信區(qū)間,predict函數(shù)可以獲得模型的預(yù)測(cè)值,加入?yún)?shù)可以得到預(yù)測(cè)區(qū)間
1 | plot ( sqrt (Volume)~Girth,data=trees,pch=16,col= 'red' ) |
2 | model2= lm ( sqrt (Volume)~Girth,data=trees) |
3 | data.pre= data.frame ( predict (model2,interval= 'prediction' )) |
4 | lines (data.pre$lwr~trees$Girth,col= 'blue' ,lty=2) |
5 | lines (data.pre$upr~trees$Girth,col= 'blue' ,lty=2) |
我們還可以將樹圍和樹高都加入到模型中去,進(jìn)行多元回歸。如果要考慮的變量很多,可以用step函數(shù)進(jìn)行變量篩選,它是以AIC作為評(píng)價(jià)指標(biāo)來(lái)判斷一個(gè)變量是否應(yīng)該加入模型,建議使用這種自動(dòng)判斷函數(shù)時(shí)要謹(jǐn)慎。對(duì)于嵌套模型,還可以使用anova建立方差分析表來(lái)比較模型。對(duì)于變量變換的形式,則可以使用MASS擴(kuò)展包中的boxcox函數(shù)來(lái)進(jìn)行COX變換。
本文來(lái)自:http://www./lang/chinese/546
|