本质上,@greg-snow 给出了一个合适的解决方案。我将详细说明这一点。
在mboost
你可以使用
plot(mod, which = "Day")
仅绘制效果Day
。当我们使用正则表达式时,您甚至可以使用参数做更多的事情which
。例如,在具有线性和平滑效果的模型中,您可以提取所有平滑效果以进行绘图:
airquality$Month <- as.factor(airquality$Month)
mod <- mod <- gamboost(Ozone ~ bbs(Solar.R) + bbs(Wind) + bbs(Temp) + bols(Month) + bbs(Day), data=airquality[complete.cases(airquality),])
## now plot bbs effects, i.e., smooth effects:
par(mfrow = c(2,2))
plot(mod, which = "bbs")
## or the linear effect only
par(mfrow = c(1,1))
plot(mod, which = "bols")
您可以使用名称的任何部分(参见例如names(coef(mod))
)来定义要绘制的效果。您还可以使用整数值来定义which
要绘制的效果:
plot(mod, which = 1:2)
请注意,这也可用于某些提取系数。例如
coef(mod, which = 1)
coef(mod, which = "Solar")
coef(mod, which = "bbs(Solar.R)")
都是一样的。有关如何指定的更多信息,which
请参阅我们的教程论文(Hofner et al. (2014), Model-based Boosting in R - A Hands-on Tutorial Using the R Package mboost. Computational Statistics, 29:3-35 . DOI 10.1007/s00180-012-0382-5)。coef
plot
我们承认这目前没有记录在案,mboost
但它在我们的待办事项列表中(参见github 问题 14)。