2015-11-10 51 views
0

所以我有一個載體相結合的矩陣將數據輸入到一個矩陣,r中預測響應變量

require(faraway) 
x<-lm(lpsa~lcavol+lweight+age+svi+lcp+gleason+pgg45,prostate) 
y<-model.matrix(x) 

我被賦予了新的數據有問題,我需要預測LPSA用。所以我想,我可以使用矢量添加數據並從那裏進行迴歸分析。

z<-c(1.44692,3.62301,65,.30010,0,-.79851,7,15) 
rbind(y,z) 

這不僅給我100行,但我不知道如何使用此方法預測lpsa。任何人都可以給我建議嗎?

回答

1

嘗試:

require(faraway) 
x<-lm(lpsa~lcavol+lweight+age+svi+lcp+gleason+pgg45,prostate) 
z<-c(1.44692,3.62301,65,.30010,0,-.79851,7,15) 
z<-z[-length(z)] 
names(z)<-names(x$coefficients)[-1] 
z<-as.list(z) 
predict(x,z) 

     1 
2.036906 

說明:當您創建x你就必須使用predict預測lpsa您的變量的新值。您創建一個列表z,其變量與模型中的變量數量相同(除非您希望「找到」,則爲lpsa)。然後運行命令,2是新變量的預測值lpsa。 AS的最後一個值爲z(即15)我不知道它是什麼。

unlist(z) # this shows that z is coherent as age is 65 (only value that makes sense for it) 
    lcavol lweight  age  svi  lcp gleason pgg45 
1.44692 3.62301 65.00000 0.30010 0.00000 -0.79851 7.00000 

如果你想知道通過迴歸calcultated係數,你可以這樣做:

coefficients(x) 
(Intercept)  lcavol  lweight   age   svi   lcp  gleason  pgg45 
-0.130150643 0.577486444 0.576247172 -0.014687934 0.698386394 -0.100954503 0.055762175 0.004769619 

如果你想確保predict是正確的,這樣做:

unname(sum(unlist(z)*coefficients(x)[-1])+coefficients(x)[1]) 
[1] 2.036906 # same estimated value for z 
相關問題