Nothing
### R code from vignette source 'lmSubsets.Rnw'
###################################################
### code chunk number 1: preamble
###################################################
options(width = 70, prompt = "R> ", continue = "+ ")
library("lmSubsets")
data("AirPollution", package = "lmSubsets")
###################################################
### code chunk number 2: data-init
###################################################
data("IbkTemperature", package = "lmSubsets")
IbkTemperature <- na.omit(IbkTemperature)
###################################################
### code chunk number 3: mos0-def
###################################################
MOS0 <- lm(temp ~ t2m + time + sin + cos + sin2 + cos2,
data = IbkTemperature)
###################################################
### code chunk number 4: mos1-def
###################################################
MOS1_best <- lmSelect(temp ~ ., data = IbkTemperature,
include = c("t2m", "time", "sin", "cos", "sin2", "cos2"),
penalty = "BIC", nbest = 20)
MOS1 <- refit(MOS1_best)
###################################################
### code chunk number 5: mos2-def
###################################################
MOS2_all <- lmSubsets(temp ~ ., data = IbkTemperature)
MOS2 <- refit(lmSelect(MOS2_all, penalty = "BIC"))
###################################################
### code chunk number 6: mos-stats
###################################################
sum0 <- summary(MOS0)
sum1 <- summary(MOS1)
sum2 <- summary(MOS2)
xnms0 <- rownames(sum0$coefficients)
xnms1 <- rownames(sum1$coefficients)
xnms2 <- rownames(sum2$coefficients)
xnms <- unique(c(xnms0, xnms1, xnms2))
symb <- c("***", "**", "*", ".", "")
cpts <- c(0, 0.001, 0.01, 0.05, 0.1, 1)
sgnf0 <- symnum(unname(sum0$coefficients[, 4]), corr = FALSE, na = FALSE,
cutpoints = cpts, symbols = symb)
sgnf1 <- symnum(unname(sum1$coefficients[, 4]), corr = FALSE, na = FALSE,
cutpoints = cpts, symbols = symb)
sgnf2 <- symnum(unname(sum2$coefficients[, 4]), corr = FALSE, na = FALSE,
cutpoints = cpts, symbols = symb)
sgnf_tab <- matrix("", nrow = length(xnms), ncol = 3)
rownames(sgnf_tab) <- xnms
sgnf_tab[xnms0, 1] <- sgnf0
sgnf_tab[xnms1, 2] <- sgnf1
sgnf_tab[xnms2, 3] <- sgnf2
coef0 <- unname(sum0$coefficients[, 1])
coef1 <- unname(sum1$coefficients[, 1])
coef2 <- unname(sum2$coefficients[, 1])
coef0 <- formatC(coef0, format = "f", digits = 3)
coef1 <- formatC(coef1, format = "f", digits = 3)
coef2 <- formatC(coef2, format = "f", digits = 3)
coef_tab <- matrix("", nrow = length(xnms), ncol = 3)
rownames(coef_tab) <- xnms
coef_tab[xnms0, 1] <- coef0
coef_tab[xnms1, 2] <- coef1
coef_tab[xnms2, 3] <- coef2
stde0 <- unname(sum0$coefficients[, 2])
stde1 <- unname(sum1$coefficients[, 2])
stde2 <- unname(sum2$coefficients[, 2])
stde0 <- formatC(stde0, format = "f", digits = 3)
stde1 <- formatC(stde1, format = "f", digits = 3)
stde2 <- formatC(stde2, format = "f", digits = 3)
stde0 <- paste0("(", format(stde0, justify = "right"), ")")
stde1 <- paste0("(", format(stde1, justify = "right"), ")")
stde2 <- paste0("(", format(stde2, justify = "right"), ")")
stde_tab <- matrix("", nrow = length(xnms), ncol = 3)
rownames(stde_tab) <- xnms
stde_tab[xnms0, 1] <- stde0
stde_tab[xnms1, 2] <- stde1
stde_tab[xnms2, 3] <- stde2
stde_tab <- gsub("\\s", "~", stde_tab)
stat_tab <- matrix(NA, nrow = 5, ncol = 3)
rownames(stat_tab) <- c("AIC", "BIC", "RSS", "Sigma", "R-sq.")
stat_tab["AIC", 1] <- AIC(MOS0)
stat_tab["BIC", 1] <- BIC(MOS0)
stat_tab["RSS", 1] <- deviance(MOS0)
stat_tab["Sigma", 1] <- sum0$sigma
stat_tab["R-sq.", 1] <- sum0$r.squared
stat_tab["AIC", 2] <- AIC(MOS1)
stat_tab["BIC", 2] <- BIC(MOS1)
stat_tab["RSS", 2] <- deviance(MOS1)
stat_tab["Sigma", 2] <- sum1$sigma
stat_tab["R-sq.", 2] <- sum1$r.squared
stat_tab["AIC", 3] <- AIC(MOS2)
stat_tab["BIC", 3] <- BIC(MOS2)
stat_tab["RSS", 3] <- deviance(MOS2)
stat_tab["Sigma", 3] <- sum2$sigma
stat_tab["R-sq.", 3] <- sum2$r.squared
stat_tab <- formatC(stat_tab, format = "f", digits = 3)
###################################################
### code chunk number 7: mos-stats-tex-coefs
###################################################
for (nm in xnms) {
cat(nm, " & ", coef_tab[nm, 1], " & ", sgnf_tab[nm, 1], " & ", stde_tab[nm, 1],
" & ", coef_tab[nm, 2], " & ", sgnf_tab[nm, 2], " & ", stde_tab[nm, 2],
" & ", coef_tab[nm, 3], " & ", sgnf_tab[nm, 3], " & ", stde_tab[nm, 3],
"\\\\", "\n", sep = "")
}
###################################################
### code chunk number 8: mos-stats-tex
###################################################
for (nm in rownames(stat_tab)) {
cat(nm, " & ", stat_tab[nm, 1], " & ", " & ",
" & ", stat_tab[nm, 2], " & ", " & ",
" & ", stat_tab[nm, 3], " & ", " & ",
"\\\\", "\n")
}
###################################################
### code chunk number 9: mos1-echo
###################################################
MOS1_best <- lmSelect(temp ~ ., data = IbkTemperature,
include = c("t2m", "time", "sin", "cos", "sin2", "cos2"),
penalty = "BIC", nbest = 20)
MOS1 <- refit(MOS1_best)
###################################################
### code chunk number 10: mos1-best-image
###################################################
image(MOS1_best, hilite = 1, lab_hilite = "bold(lab)", pad_size = 2,
pad_which = 2)
###################################################
### code chunk number 11: mos2-all-image
###################################################
image(MOS2_all, size = 8:27, hilite = 1, hilite_penalty = "BIC",
lab_hilite = "bold(lab)", pad_size = 2, pad_which = 2)
###################################################
### code chunk number 12: mos1-best-plot
###################################################
plot(MOS1_best)
###################################################
### code chunk number 13: mos2-all-plot
###################################################
plot(MOS2_all, ylim_ic = c(9000, 9700))
###################################################
### code chunk number 14: mos2-echo
###################################################
MOS2_all <- lmSubsets(temp ~ ., data = IbkTemperature)
MOS2 <- refit(lmSelect(MOS2_all, penalty = "BIC"))
###################################################
### code chunk number 15: bm-01
###################################################
source("bm-01.R")
df <- report_benchmark()
goop <- lapply(split(df, with(df, SD)), function (grp) {
sd <- grp[1, "SD"]
grp <- with(grp, {
SPEEDUP <- LEAPS / LM_SUBSETS
SPEEDUP1 <- LEAPS1 / LM_SUBSETS
cbind(SD = "", formatC(NVAR, format = "d"),
formatC(cbind(LEAPS, LEAPS1, LM_SUBSETS),
format = "f", digits = 3),
formatC(cbind(SPEEDUP, SPEEDUP1),
format = "f", digits = 1))
})
grp[1, "SD"] <- formatC(sd, format = "f", digits = 2)
grp[, 3:5] <- paste0(grp[, 3:5], "\\,s")
grp <- apply(grp, 1, paste0, collapse = " & ")
cat("\\midrule\n")
for (row in grp) {
cat(row)
cat("\\\\\n")
}
})
###################################################
### code chunk number 16: bm-02
###################################################
source("bm-02.R")
df <- report_benchmark()
df <- subset(df, IC == "BIC")
goop <- lapply(split(df, with(df, SD)), function (grp) {
sd <- grp[1, "SD"]
grp <- with(grp, {
SPEEDUP <- BESTGLM / LM_SELECT
SPEEDUP1 <- BESTGLM1 / LM_SELECT
cbind(SD = "", formatC(NVAR, format = "d"),
formatC(cbind(BESTGLM, BESTGLM1, LM_SELECT),
format = "f", digits = 3),
formatC(cbind(SPEEDUP, SPEEDUP1),
format = "f", digits = 1))
})
grp[1, "SD"] <- formatC(sd, format = "f", digits = 2)
grp[, 3:5] <- paste0(grp[, 3:5], "\\,s")
grp <- apply(grp, 1, paste0, collapse = " & ")
cat("\\midrule\n")
for (row in grp) {
cat(row)
cat("\\\\\n")
}
})
###################################################
### code chunk number 17: bm-03
###################################################
source("bm-03.R")
df <- report_benchmark()
goop <- lapply(split(df, with(df, SD)), function (grp) {
sd <- grp[1, "SD"]
grp <- do.call(rbind, lapply(split(grp, with(grp, NVAR)), function (grp) {
nvar <- grp[1, "NVAR"]
nmin <- grp[1, "NMIN"]
nmax <- grp[1, "NMAX"]
c(nvar, nmin, nmax,
with(subset(grp, TOLERANCE == 0.0),
c(LM_SUBSETS, LM_SELECT, LM_SUBSETS / LM_SELECT)),
with(subset(grp, TOLERANCE == 0.1),
c(LM_SUBSETS, LM_SELECT, LM_SUBSETS / LM_SELECT)))
}))
grp <- cbind(SD = "", formatC(grp[, 1], format = "d"),
ifelse(is.na(grp[, 2:3]), "-",
formatC(grp[, 2:3], format = "d")),
formatC(grp[, 4:5], format = "f", digits = 3),
formatC(grp[, 6], format = "f", digits = 1),
formatC(grp[, 7:8], format = "f", digits = 3),
formatC(grp[, 9], format = "f", digits = 1))
grp[1, "SD"] <- formatC(sd, format = "f", digits = 2)
grp[, c(5:6, 8:9)] <- paste0(grp[, c(5:6, 8:9)], "\\,s")
grp <- apply(grp, 1, paste0, collapse = " & ")
cat("\\midrule\n")
for (row in grp) {
cat(row)
cat("\\\\\n")
}
})
###################################################
### code chunk number 18: bm-04
###################################################
source("bm-04.R")
df <- report_benchmark()
df <- {
x <- unique(with(df, data.frame(NVAR, IC)))
for (nbest in c(1, 5, 10, 15, 20)) {
x <- merge(x, with(subset(df, NBEST == nbest), {
z <- data.frame(NVAR, IC, LM_SELECT)
names(z)[3] <- nbest
z
}))
}
x
}
goop <- lapply(split(df, with(df, NVAR)), function (grp) {
nvar <- grp[1, "NVAR"]
grp <- cbind(NVAR = "", as.character(grp[, 2]),
formatC(as.matrix(grp[, 3:7]), format = "f", digits = 3))
grp[1, "NVAR"] <- formatC(nvar, format = "d")
grp[, 3:7] <- paste0(grp[, 3:7], "\\,s")
grp <- apply(grp, 1, paste0, collapse = " & ")
cat("\\midrule\n")
for (row in grp) {
cat(row)
cat("\\\\\n")
}
})
###################################################
### code chunk number 19: bm-05
###################################################
source("bm-05.R")
df <- report_benchmark()
df <- {
x <- unique(with(df, data.frame(NVAR)))
for (ic in c(1, 2, 4, 8, 16, 32)) {
x <- merge(x, with(subset(df, IC == ic), {
z <- data.frame(NVAR, LM_SELECT)
names(z)[2] <- ic
z
}))
}
x
}
grp <- cbind(formatC(df[, 1], format = "d"),
formatC(as.matrix(df[, 2:7]), format = "f", digits = 3))
grp[, 2:7] <- paste0(grp[, 2:7], "\\,s")
grp <- apply(grp, 1, paste0, collapse = " & ")
cat("\\midrule\n")
for (row in grp) {
cat(row)
cat("\\\\\n")
}
###################################################
### code chunk number 20: bm-lasso
###################################################
source("bm-lasso.R")
df <- report_benchmark()
goop <- lapply(split(df, with(df, SD)), function (grp) {
sd <- grp[1, "SD"]
grp <- do.call(rbind, lapply(split(grp, with(grp, NVAR)), function (grp) {
nvar <- grp[1, "NVAR"]
with(grp, c(nvar, LMSELECT, LASSO, LMSELECT / LASSO, HITS))
}))
grp <- cbind(SD = "", formatC(grp[, 1], format = "d"),
formatC(grp[, 2:3], format = "f", digits = 3),
formatC(grp[, 4], format = "f", digits = 1),
formatC(grp[, 5], format = "f", digits = 1))
grp[1, "SD"] <- formatC(sd, format = "f", digits = 2)
grp[, 3:4] <- paste0(grp[, 3:4], "\\,s")
grp <- apply(grp, 1, paste0, collapse = " & ")
cat("\\midrule\n")
for (row in grp) {
cat(row)
cat("\\\\\n")
}
})
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.