R:如何使用 gamboost 进行预测

R: how to make predictions using gamboost

library(mboost)
### a simple two-dimensional example: cars data
cars.gb <- gamboost(dist ~ speed, data = cars, dfbase = 4,
                    control = boost_control(mstop = 50))
set.seed(1)
cars_new <- cars + rnorm(nrow(cars))
> predict(cars.gb, newdata = cars_new$speed)
Error in check_newdata(newdata, blg, mf) : 
  ‘newdata’ must contain all predictor variables, which were used to specify the model.

我使用 help(gamboost) 页面上的示例拟合模型。我想用这个模型来预测一个新的数据集,cars_new,但是遇到了上面的错误。我该如何解决这个问题?

predict 函数寻找一个名为 speed 的变量,但是当你用 $ 符号对它进行子集化时,它就没有名字了。

因此,这种预测变体有效;

predict(cars.gb, newdata = data.frame(speed = cars_new$speed))

或保留原名;

predict(cars.gb, newdata = cars_new['speed'])