gpt4 book ai didi

r - 了解 R 中的线性模型

转载 作者:行者123 更新时间:2023-12-02 07:26:11 25 4
gpt4 key购买 nike

R 语言对我来说一直有点神秘——所以虽然我知道什么是线性回归——但我还是不明白下面的一些语法。

假设我有以下内容:

x <- c(1, 2, 3, 4)
y <- c(2.1, 3.8, 6.5, 7.78)
lm1 <- lm(y~x)

我的理解是 lm1 包含线性模型,当我打印出来时确认(我认为):

> lm1

Call:
lm(formula = y ~ x)

Coefficients:
(Intercept) x
0.110 1.974

现在,当我想在生产模式下运行它时,我会执行以下操作(我想预测 x=10 和 x=20 的值:

test <- c(10,20)
predict(lm1, test)

我得到以下信息:

Error in eval(predvars, data, env) : numeric 'envir' arg not of length one

感谢任何帮助。

数据

> dput(x)
c(1, 2, 3, 4)
> dput(y)
c(2.1, 3.8, 6.5, 7.78)
> dput(test)
c(10, 20)

最佳答案

predict() 需要 newdata= 参数才能成为 data.frame。它使用 data.frame 中列的名称来匹配公式中的变量。当您的模型具有多个预测变量时,这一点尤其必要。

你可以做到

predict(lm1, data.frame(x=test))

此外,最好也使用 data.frame 来拟合您的模型。

dd<-data.frame(
x = c(1, 2, 3, 4),
y = c(2.1, 3.8, 6.5, 7.78)
)
lm1 <- lm(y~x, dd)
predict(lm1, data.frame(x=c(10,20)))

这通常会减少“意外”。

关于r - 了解 R 中的线性模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31226404/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com