R中的predict给出了错误的预测数

R中的predict给出了错误的预测数,r,R,我将数据集分为两个数据帧:train(830行)和test(200行)。列名相同且顺序相同 我建立了一个自然样条模型来预测单一变量水泥的强度 当我尝试使用该模型在测试集上进行预测时,我得到的不是预期的200个预测,而是830个预测。我不知道为什么会这样。我已经浏览了帮助页面和web,但还没有找到任何解决此问题的方法 我已经检查了test$cement的尺寸,它只有200个条目 这是我现在的代码: library(tidyverse) library(caret) library(splines)

我将数据集分为两个数据帧:train(830行)和test(200行)。列名相同且顺序相同

我建立了一个自然样条模型来预测单一变量水泥的强度

当我尝试使用该模型在测试集上进行预测时,我得到的不是预期的200个预测,而是830个预测。我不知道为什么会这样。我已经浏览了帮助页面和web,但还没有找到任何解决此问题的方法

我已经检查了test$cement的尺寸,它只有200个条目

这是我现在的代码:

library(tidyverse)
library(caret)
library(splines)

attach(train)
fit1 <- lm(strength~ns(cement, 4), data = train)
summary(fit1)
pred1 <- predict(fit1, newdata = data.frame(test$cement), se=T)
pred1
detach(train)
库(tidyverse)
图书馆(插入符号)
库(样条曲线)
附加(列车)
fit1%

pred=predict.bSpline(fit1,newdata=test$concement,se=T)

pred=predict.bSpline2(fit1,newdata=test$concement,se=T)

-->虽然我打开了样条线和样条线2库,但这两个函数都告诉我它们找不到函数predict.bSpline或predict.bSpline2

另外,predict.ns似乎不存在


非常感谢您的帮助。

我没有您的数据,但您应该尝试通过整个数据帧测试:

pred1 <- predict(fit1, newdata = test, se=T)

pred1我认为我们需要查看您的数据集的可还原示例,因为我认为这可能会导致您的问题。当我使用以下代码时,我得到了正确的结果:

library(dplyr)
library(splines)

train <- sample_frac(mtcars, .8)

test <- setdiff(mtcars, train)

fit1 <- lm(mpg~ns(wt, 4), data = train)

pred1 <- predict(fit1, newdata = test, se=T)

pred1
库(dplyr)
库(样条曲线)

train
newdata
应与模型中的预测器同名,因此请尝试
newdata=data.frame(水泥=test$cement)
。请不要使用
attach
,因为这会导致一系列问题。