【问题标题】:Why is my use of predict in r not working - should be very simple case为什么我在 r 中使用 predict 不起作用 - 应该是非常简单的情况
【发布时间】:2014-06-20 13:31:17
【问题描述】:

所以在给定一个非常非常简单的线性模型的情况下,我很难让 r 实际预测。使用以下,

> x=1:10
> y=1:10*2
> lm(y~x)

我们得到了正确的答案,即 y 是 x 的两倍。但是当我这样做时,

predict(lm(y~x),newdata=2.5)

我才明白

 1  2  3  4  5  6  7  8  9 10 
 1  2  3  4  5  6  7  8  9 10 

发生了什么事?

【问题讨论】:

  • 你的意思是predict(lm(x~y)...) 还是你的意思是lm(y~x) 和原来的例子一样?
  • newdata 变量需要一个类 data.frame,因此只需忽略您的整数输入并输出因变量的值。
  • 所以 r 不按顺序解析函数输入?
  • 在这种情况下,如果它不喜欢你的输入,它可能应该返回一个错误,但 R 会默默地做一些其他事情而不告诉你。
  • 太棒了:-/ 至少我现在知道要寄什么了。

标签: r syntax lm


【解决方案1】:

newdata 参数应该是 data.frame,其列名与用作协变量的名称匹配。所以正确的情况是

predict(lm(x~y),newdata=data.frame(y=2.5))

predict(lm(y~x),newdata=data.frame(x=2.5))

取决于您想要进行回归的方式。

【讨论】:

    猜你喜欢
    • 2022-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多