【问题标题】:Predicting multivariant linear model in R在 R 中预测多变量线性模型
【发布时间】:2021-02-01 13:14:34
【问题描述】:

我对具有两个变体(多变体)的线性模型的预测有疑问。我正在尝试使用我训练过的模型来预测新数据。我有这段代码可以根据 x 和 y 训练 z。数据大约有 60,000 行:

fit <- lm(z ~ poly(x, y, degree = 4), data = data)

然后我想通过执行以下操作来预测一行

x <- -20
y <-  20
data2 <- data.frame(cbind(x,y))
prediction <- predict(fit,data2)

r 出现此错误:

Error in Z[, 2] <- x - alpha[1L] : replacement has length zero

感谢您的帮助!

【问题讨论】:

  • 试试predict(fit, newdata = data2)
  • 在您的示例中,您在data2 &lt;- data.frame(cbind(x,y)) 中缺少),但更好的是这样做data.frame(x,y)
  • 它没有用。

标签: r lm predict poly


【解决方案1】:

以下代码使用末尾注释中显示的可重现输入运行,没有任何错误消息。

fit <- lm(z ~ poly(cbind(x, y), degree = 4), data = data)

data2 <- data.frame(x = -20, y = 20))
predict(fit, data2)
##        1 
## 436884.4

注意

set.seed(123)

n <- 25
data <- data.frame(x = rnorm(n), y = rnorm(n), z = rnorm(n))

【讨论】:

  • 这很完美!请问为什么我需要在训练步骤中进行cbind?
  • 如果您在 R 命令行中输入 poly,它将显示代码,您可以查看它并查看它是如何工作的。
猜你喜欢
  • 1970-01-01
  • 2014-05-01
  • 1970-01-01
  • 2022-01-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-30
  • 2020-06-20
相关资源
最近更新 更多