data("bodyfat", package = "mboost")
### fit linear model to data
model <- glmboost(DEXfat ~ ., data = bodyfat,
control = boost_control(center = TRUE))
### AIC-based selection of number of boosting iterations
maic <- AIC(model)
maic
### inspect coefficient path and AIC-based stopping criterion
par(mai = par("mai") * c(1, 1, 1, 1.8))
plot(model)
abline(v = mstop(maic), col = "lightgray")
### 10-fold cross-validation
n <- nrow(bodyfat)
k <- 10
ntest <- floor(n / k)
cv10f <- matrix(c(rep(c(rep(0, ntest), rep(1, n)), k - 1),
rep(0, n * k - (k - 1) * (n + ntest))), nrow = n)
cvm <- cvrisk(model, folds = cv10f)
print(cvm)
mstop(cvm)
plot(cvm)
### 25 bootstrap iterations
set.seed(290875)
bs25 <- rmultinom(25, n, rep(1, n)/n)
cvm <- cvrisk(model, folds = bs25)
print(cvm)
mstop(cvm)
layout(matrix(1:2, ncol = 2))
plot(cvm)
### trees
blackbox <- blackboost(DEXfat ~ ., data = bodyfat)
cvtree <- cvrisk(blackbox, folds = bs25)
plot(cvtree)
Run the code above in your browser using DataCamp Workspace