多项式回归中的新预测

问题描述 投票:1回答:1

我得到了以下回归模型,我正在尝试做一些预测,但我总是得到一个错误:

model1 <- lm(Sepal.Length ~ Petal.Length +  poly(Sepal.Width, 2), data = iris)
predict(model1, model1$model)

poly(Sepal.Width,2,coefs = list(alpha = c)(3.05733333333333,:找不到对象'Sepal.Width'时出错)

我知道我可以简单地访问预测的拟合值。但是,假设我的新数据如下所示:

newdata <- head(model1$model) + 1

如何在不收到此错误的情况下对此新数据集进行预测?

r regression prediction poly
1个回答
0
投票

问题是你使用model对象中的lm槽,它不包含原始数据,而是矩阵,其中多项式部分已经展开:

head(model1$model)
#   Sepal.Length Petal.Length poly(Sepal.Width, 2).1 poly(Sepal.Width, 2).2
# 1          5.1          1.4            0.083201357           -0.016039377
# 2          4.9          1.4           -0.010776079           -0.053252127
# 3          4.7          1.3            0.026814895           -0.056361540
# 4          4.6          1.5            0.008019408           -0.057805919
# 5          5.0          1.4            0.101996844            0.009397687
# 6          5.4          1.7            0.158383306            0.121697905

这当然不起作用,因为predict希望有一个Sepal.Width专栏。您可以提供正确的数据参数:

predict(model1, head(iris[, 1:4]) + 1)
#       1        2        3        4        5        6 
# 6.306370 5.845728 5.973836 5.979895 6.406965 6.868732
© www.soinside.com 2019 - 2024. All rights reserved.