今天是值得高興的一天,同時也寫得hin潦草的一天
在stats包裡翻出個看起來很高端,但我完全解釋不動的擬合算法,ppr函數
投影追蹤迴歸這個名字是直接用百度翻譯的,應該是沒錯吧,反正我沒找到啥能參考的介紹文章,所以就純粹地照著幫助文檔的操作來走個過場
上數據:
#導入數據並做Z-score標準化
Data
str(Data)
Zscore
(x-mean(x))/sd(x); }
Zdata
str(Zdata)
幫助文件裡雖然米有明確滴要求做標準化,但卻做了除法和log把每個向量都限制在差不多的數量級,所以我個人覺得這個擬合應該是需要使用距離或權重的一種算法
#照例先放個線性迴歸作為參照標準
F1
cor(Zdata$ ValueSold, F1)
吼吼,lm做出來相關係數就已經能有0.9888這麼高了呀,看來壓力還挺大的呢~~
#上ppr函數,設參數nterms = 2
PPRmod
summary(PPRmod)
F2
cor(Zdata$ ValueSold, F2)
ppr可以擬合到相關係數0.9947,很好很好,總歸還是比lm強的
而且,增大nterms參數的情況下,貌似還可以再提高一丟丟,就是不太明顯了
不求甚解,輕鬆愉快,放圖收工~~
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")
閱讀更多 jennifer5jl 的文章