将数据输入矩阵并预测 r 中的响应变量

Inputting data to a matrix and predicting the response variable in 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。有人可以给我建议吗?

尝试:

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 除外,因为您希望 "find" 它)。然后您 运行 命令和 2 是新变量的 lpsa 的预测值。至于最后一个值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 

如果你想知道回归计算的系数,你可以这样做:

 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