R 使用新数据评估线性模型会返回拟合值

R 使用新数据评估线性模型会返回拟合值,r,lm,predict,poly,R,Lm,Predict,Poly,我正在构建和评估我的模型,如下所示 yData <- rnorm(10) xData <- matrix(rnorm(20), 10, 2) polyModel <- lm(yData~polym(xData, degree=2, raw=T)) newData <- matrix(rnorm(100), 50, 2) yPredicted <- predict(polyModel, polym(newData, degree=2, raw=T)) yDatapr

我正在构建和评估我的模型,如下所示

yData <- rnorm(10)
xData <- matrix(rnorm(20), 10, 2)
polyModel <- lm(yData~polym(xData, degree=2, raw=T))
newData <- matrix(rnorm(100), 50, 2)
yPredicted <- predict(polyModel, polym(newData, degree=2, raw=T))
yData
predict()
除非在
data
参数中指定了数据,否则效果不太好。这似乎有效:

polyModel <- lm(yData~poly(V1, V2, degree=2, raw=TRUE),
                data=as.data.frame(xData))
length(fitted(polyModel))  ## 10
newData <- matrix(rnorm(100), 50, 2)
yPredicted <- predict(polyModel, newdata=as.data.frame(newData))
length(yPredicted) ## 50

(未经测试)

我担心这与此有关。问题是我事先不知道扩展数据将有多少列。最大列数为5。最坏的情况是,我可以切换一个案例,然后输入不同的场景(V1)/(V1,V2)/(V1,V2,V3)。。。但我宁愿不去。有没有办法将其扩展到扩展数据中的可变列数?
f <- as.formula(sprintf("yData~poly(%s, degree=2, raw=TRUE)",
           paste("V", seq(ncol(xData)), sep="", collapse=", "))
polyModel <- lm(f, data=as.frame(xData))