我正在使用具有 3 个变量和交互作用的线性模型。与其手动输入公式并输入每个变量的值,比如 XY 和 Z,我如何告诉 R 给我给定 XY 和 Z 的预测值?
即如果
model=lm(VP~G+P+Z+G:Z+P:Z+G:P+P:G:Z,data=xyz)
'[output with beta coefficients]'
如何在不手动输入每个术语的单独 beta 系数的情况下将 GP 和 Z 的值传递给线性模型?
我正在使用具有 3 个变量和交互作用的线性模型。与其手动输入公式并输入每个变量的值,比如 XY 和 Z,我如何告诉 R 给我给定 XY 和 Z 的预测值?
即如果
model=lm(VP~G+P+Z+G:Z+P:Z+G:P+P:G:Z,data=xyz)
'[output with beta coefficients]'
如何在不手动输入每个术语的单独 beta 系数的情况下将 GP 和 Z 的值传递给线性模型?
使用predict()
. 阅读帮助页面上的所有详细信息,可以通过?predict
. 这是一个使用示例的示例?lm
ctl <- c(4.17,5.58,5.18,6.11,4.50,4.61,5.17,4.53,5.33,5.14)
trt <- c(4.81,4.17,4.41,3.59,5.87,3.83,6.03,4.89,4.32,4.69)
group <- gl(2,10,20, labels=c("Ctl","Trt"))
weight <- c(ctl, trt)
lm.D9 <- lm(weight ~ group)
并预测:
> predict(lm.D9, newdata=data.frame(group = c("Ctl", "Trt")))
1 2
5.032 4.661
请注意newdata
参数的使用以及我如何传递要预测的新值。
如果您想从具有所有二(和三)向交互的模型中进行预测,您的模型可以简化为
model=lm(VP ~ (G+P+Z)^3, data=xyz) # see ?formula
当您从“模型”对象进行预测时,您需要提供一个数据框,其中包含名为 G、P 和 Z 的值
pred123 <- predict(model, newdata=data.frame(G=1, P=2, Z=3) )
如果您想为单个值的特定选择构建所有可能的值组合,expand.grid 函数将非常有用:
pred.all <- predict(modlel, newdat=expand.grid(G;1:3, P=2:5, Z=6:8) )