你过分指出了这个问题。由于您的模型公式使用 training$x1 ,这是它在进行预测时要寻找的确切变量。相反,请使用列共享名称的事实,并将模型创建为
training$x1
model_poly = lm(y ~ poly(x1, degree=2, raw=T) + poly(x2, degree=2, raw=T), data=df.training)
这将根据抽象变量生成模型 x1 , x2 等
x1
x2
然后你可以像这样使用预测(你可以省略 poly 在这里打电话,因为它已融入模型中):
poly
predict(model_poly, df.test)
产生预期的结果。否则,您通常会收到一条警告,指示您的输出数据与输出数据不匹配 newdata 提供以预测它们是否具有不同的长度。
newdata