1library(ipred)
2
3suppressWarnings(RNGversion("3.5.3"))
4actversion <- paste(R.version$major, R.version$minor, sep=".")
5thisversion <- "1.7.0"
6
7#if (compareVersion(actversion, thisversion) >= 0) {
8#  RNGversion("1.6.2")
9#}
10set.seed(29081975)
11
12data("BreastCancer", package = "mlbench")
13mod <- bagging(Class ~ Cl.thickness + Cell.size
14                + Cell.shape + Marg.adhesion
15                + Epith.c.size + Bare.nuclei
16                + Bl.cromatin + Normal.nucleoli
17                + Mitoses, data=BreastCancer, coob=TRUE)
18print(mod)
19
20print(a <- predict(mod, newdata=BreastCancer))
21stopifnot(length(a) == nrow(BreastCancer))
22
23# bagging failed if only one predictor was specified
24# by Christoph M. Friedrich <chris@uni-wh.de>, April 29th, 2002
25
26X <- as.data.frame(matrix(rnorm(1000), ncol=10))
27y <- factor(ifelse(apply(X, 1, mean) > 0, 1, 0))
28learn <- cbind(y, X)
29mt <- bagging(y ~ V1, data=learn, coob=TRUE)
30# <FIXME>
31# This won't work because of some difficulties with predict.lda
32# mt <- bagging(y ~ V1, data=learn, method="double", coob=FALSE)
33# </FIXME>
34X <- as.data.frame(matrix(rnorm(1000), ncol=10))
35y <- apply(X, 1, mean) + rnorm(nrow(X))
36learn <- cbind(y, X)
37mt <- bagging(y ~ V1, data=learn, coob=TRUE)
38
39# cv.numeric and bootest.numeric were broken, check for reasonaly values
40X <- as.data.frame(matrix(rnorm(1000), ncol=10))
41y <- apply(X, 1, mean) + rnorm(nrow(X))
42learn <- cbind(y, X)
43newy <- apply(X, 1, mean) + rnorm(nrow(X))
44mod <- lm(y ~ ., data=learn)
45trueerr <- sqrt(mean((newy - fitted(mod))^2))
46cverr <- rep(0,5)
47for (i in 1:5) cverr[i] <- errorest(y ~., data=learn, model=lm)$error
48booterr <- errorest(y ~., data=learn, model=lm,
49                    estimator="boot",est.para=control.errorest(nboot=50))$error
50print(trueerr/mean(cverr))
51print(trueerr/booterr)
52