海藻!海藻!—R實戰(zhàn)案例一(中)

上半部分:海藻!海藻!—R實戰(zhàn)案例一(上)
本案例的目的是預(yù)測140個水樣中7種海藻的出現(xiàn)頻率,這部分是用多元線性回歸模型和回歸樹模型分別進(jìn)行預(yù)測。
首先進(jìn)行多遠(yuǎn)線性回歸,該模型給出一個有關(guān)目標(biāo)變量,和解釋變量關(guān)系的線性函數(shù)

#預(yù)測海藻a1出現(xiàn)的頻率,.代表數(shù)據(jù)框中除了a1外的變量。
lm.a1<-lm(a1~.,data=clean.algae[,1:12])
summary(lm.a1)

該模型解釋的方差比例(R-squared)表明模型與數(shù)據(jù)的吻合度。越接近于1越好。此處為0.322,還不是很理想,所以需要精簡回歸模型。
首先用anova函數(shù)提供模型擬合的方差序貫分析。

anova(lm.a1)

從圖中可見,season對減少模型擬合誤差的貢獻(xiàn)最小,將其刪除。然后再做一次線性回歸模型。

lm2.a1<-update(lm.a1,.~.-season)
summary(lm2.a1)
anova(lm.a1,lm2.a1)

此處結(jié)果略,R平方是0.328,還是不理想。所以繼續(xù)用anova對兩個模型進(jìn)行正式的比較,使用兩個模型作為參數(shù)。

盡管誤差平方和減少了(-449),但顯著性只有0.695,說明兩個模型不同的可能性為30%,應(yīng)該再次消元。使用step向后消元法。

final.lm<-step(lm.a1)
summary(final.lm)
2.png

最后的R平方仍然不理想,說明在此案例,應(yīng)用線性模型并不合適。


接下來運用另一種模型算法:回歸樹來預(yù)測?;貧w樹是對某些解釋變量分層次的邏輯測試,基于樹的模型自動篩選相關(guān)的變量。

library(rpart)
rt.a1<-rpart(a1~.,data=algae[,1:12])
rt.a1
prettyTree(rt.a1)

prettyTree主要是可視化,圖形如下:


此外,可以用復(fù)雜度損失修剪的方法,估計樹節(jié)點的參數(shù)值cp,以達(dá)到預(yù)測的準(zhǔn)確性和樹大小的折中。然后利用prune來剪枝。(這里我不是很理解,先這么看著吧)

printcp(rt.a1)
rt2.a1<-prune(rt.a1,cp=0.08)
rt2.a1

rpartXse函數(shù)是可以自動運行這個過程,但是得到的圖形很奇怪。(下右圖)

rt.a1<-rpartXse(a1~.,data=algae[,1:12])
用rpartXse做出的回歸樹

snip.rpart函數(shù)是交互的對樹進(jìn)行修剪(結(jié)果上左圖)

first.tree<-rpart(a1~.,data=algae[,1:12])
snip.rpart(first.tree,c(4,7))

或者采用直接點擊的方式修剪。(不過好像點擊了也沒有什么變化...)

prettyTree(first.tree)
snip.rpart(first.tree)

簡而言之,這部分主要講了線性和回歸樹,回歸樹那里常用的語句還是rpart??雌渌咐?,大多數(shù)也只用rpart。雖然語句很簡單,也幾乎不用輸入?yún)?shù),但內(nèi)中含義很復(fù)雜啊。
最后一部分講模型的評價和選擇~~~

第二部分完整代碼如下,不好用的語句我直接廢掉了:

#線性模型
lm.a1<-lm(a1~.,data=clean.algae[,1:12])
summary(lm.a1)
anova(lm.a1)

lm2.a1<-update(lm.a1,.~.-season)
summary(lm2.a1)
anova(lm.a1,lm2.a1)

final.lm<-step(lm.a1)
summary(final.lm)

#回歸樹
library(rpart)
rt.a1<-rpart(a1~.,data=algae[,1:12])
rt.a1
prettyTree(rt.a1)
printcp(rt.a1)

rt2.a1<-prune(rt.a1,cp=0.08)
rt2.a1

#rt.a1<-rpartXse(a1~.,data=algae[,1:12])

first.tree<-rpart(a1~.,data=algae[,1:12])
snip.rpart(first.tree,c(4,7))

#prettyTree(first.tree)
#snip.rpart(first.tree)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容