R語言——投影追蹤迴歸(PPR)

今天是值得高興的一天,同時也寫得hin潦草的一天

R語言——投影追蹤迴歸(PPR)

在stats包裡翻出個看起來很高端,但我完全解釋不動的擬合算法,ppr函數

投影追蹤迴歸這個名字是直接用百度翻譯的,應該是沒錯吧,反正我沒找到啥能參考的介紹文章,所以就純粹地照著幫助文檔的操作來走個過場

上數據:

#導入數據並做Z-score標準化

Data

str(Data)

Zscore

(x-mean(x))/sd(x); }

Zdata

str(Zdata)

R語言——投影追蹤迴歸(PPR)

幫助文件裡雖然米有明確滴要求做標準化,但卻做了除法和log把每個向量都限制在差不多的數量級,所以我個人覺得這個擬合應該是需要使用距離或權重的一種算法

#照例先放個線性迴歸作為參照標準

F1

cor(Zdata$ ValueSold, F1)

R語言——投影追蹤迴歸(PPR)

吼吼,lm做出來相關係數就已經能有0.9888這麼高了呀,看來壓力還挺大的呢~~

#上ppr函數,設參數nterms = 2

PPRmod

summary(PPRmod)

F2

cor(Zdata$ ValueSold, F2)

R語言——投影追蹤迴歸(PPR)

ppr可以擬合到相關係數0.9947,很好很好,總歸還是比lm強的

而且,增大nterms參數的情況下,貌似還可以再提高一丟丟,就是不太明顯了

R語言——投影追蹤迴歸(PPR)

不求甚解,輕鬆愉快,放圖收工~~

par(mfrow = c(3,1)) #把畫圖區域劃分成縱向的3塊

plot(Zdata$ ValueSold, main = "lm model")

lines(F1, col="red")

plot(Zdata$ ValueSold, main = "ppr model, nterms = 2")

lines(F2, col ="blue")

plot(Zdata$ ValueSold, main = "ppr model, nterms = 3")

lines(F3, col ="lightblue")

R語言——投影追蹤迴歸(PPR)


分享到:


相關文章: