【问题标题】:In R: How can I plug in values for my independent variables in a linear model?在 R 中:如何在线性模型中插入自变量的值?
【发布时间】:2012-12-04 04:14:22
【问题描述】:

我正在使用具有 3 个变量和交互作用的线性模型。与其手动输入公式并输入每个变量的值,比如 X Y 和 Z,我如何告诉 R 给我给定 X Y 和 Z 的预测值?

即 如果

model=lm(VP~G+P+Z+G:Z+P:Z+G:P+P:G:Z,data=xyz)

'[output with beta coefficients]'

如何在不手动输入每个项的单独 beta 系数的情况下将 G P 和 Z 的值传递给线性模型?

【问题讨论】:

    标签: r parameter-passing linear-regression


    【解决方案1】:

    使用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 参数的使用以及我如何传递要预测的新值。

    【讨论】:

      【解决方案2】:

      如果您想从具有所有两种(和三种)方式交互的模型中进行预测,您的模型可以简化为

       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) )
      

      【讨论】:

      • 只是一个小点,但他们的模型中确实有三向交互。
      • 啊,没注意,会修复的。
      猜你喜欢
      • 1970-01-01
      • 2015-07-21
      • 1970-01-01
      • 2017-05-20
      • 1970-01-01
      • 2020-10-06
      • 2010-12-26
      • 2021-05-09
      相关资源
      最近更新 更多