我在R中使用lm()函数生成了一个线性模型,例如,
lm.cars = lm(mtcars$mpg ~ mtcars$hp)这将产生以下结果:
Call:
lm(formula = mtcars$mpg ~ mtcars$hp)
Coefficients:
(Intercept) mtcars$hp
30.09886 -0.06823 现在我想在不同的数据集上使用这个模型定义的函数(y = -0.07x + 30.1) (我有不同的数据,这样做更有意义,但想法是一样的)。所以,我有一组不同的x值,我想用lm拟合得到的函数来预测y值。我想知道是否有更好的方法来做到这一点,而不是手动读取所有参数并使用它们定义一个函数。我有很多不同的线性模型,参数很多,这似乎有点乏味。有内置的功能可以为我做到这一点吗?
谢谢!
发布于 2020-07-20 18:06:11
是的,你可以用predict来做。重要的是,您的新数据集必须具有与原始数据集中相同的列名。在本例中,这意味着您必须创建一个带有hp列的数据框架:
my_model <- lm(mpg ~ hp, data = mtcars)
my_new_data <- data.frame(hp = runif(n=10, 50, 300))
predict(my_model, my_new_data)输出
> predict(my_model, my_new_data)
1 2 3 4 5 6 7 8
22.40625 19.90452 12.62276 14.01068 18.85295 22.92663 20.56899 24.95091
9 10
25.68709 18.39930 https://stackoverflow.com/questions/63001242
复制相似问题