R語言——手工做個線性迴歸模型

昨天一整篇寫得不算太過空洞,但總結下來其實也就一句話的意思——所謂公式接口,不過是一串轉成公式格式的文本

R語言——手工做個線性迴歸模型

按這邏輯,今天的內容,其實也可以總結成一句話:

所謂預測模型,就是個自定義類型名稱的列表

不信,咱拆解一個看看,比方說線性迴歸預測,用的建模函數是lm,配套了一個預測算法predict.lm,咱先按平時正常用的自動版建一個lm的模型:

R語言——手工做個線性迴歸模型

用str看看結構,上頭很清楚的顯示出這是由12個成分組成的列表,由於太長,沒能全部截進圖裡去

試驗一:破壞性試驗

儘可能多的砍掉LM1列表中的成分,看看是否還能完成預測

這裡要用到一個專業轉數據類型的函數,class

#產生一份新數據NewData
NewData predict(LM1, NewData)
#從LM1中拆掉一部分不要
LM2 #此時由於LM1結構被破壞,LM2的類型為列表(list),需轉回lm類型
class(LM2)
class(LM2) #試試沒有完整組成的LM2是否還可以做predict
predict(LM2, NewData)
R語言——手工做個線性迴歸模型

歐耶,試驗一通過~~ 此時迴歸模型中保留的列表內容如下:

R語言——手工做個線性迴歸模型

12個成分被切到還剩4個,雖然還是有點長,但一個屏已經能截得下了,既然都做到這兒了,不妨玩得再過一點,咱。。。自己組個lm模型試試?

試驗二:組裝試驗,手製lm模型

qr那個函數我沒怎麼看懂,不過這不是今天的重點,先隨便出點數據用著吧

#手敲搞出四個組件,其中qr和terms是有現成函數的
Co1 Rk1 Q1 Te1 #把四個組件拼起來,注意要把名字打對
LM3 #整體轉成lm模型
class(LM3) #代入predict看看能不能出結果
predict(LM3, NewData)
R語言——手工做個線性迴歸模型

O~Yeah~~~這下真是玩夠了,我可以去看電視了


分享到:


相關文章: