## ----include = FALSE---------------------------------------------------------- knitr::opts_chunk$set( collapse = TRUE, comment = "#>", fig.width = 6, fig.height = 4 ) set.seed(1) ## ----------------------------------------------------------------------------- library(combss) ## ----------------------------------------------------------------------------- set.seed(102) n <- 300; p <- 30 beta <- c(3, 2, 1.5, 1, 0.5, rep(0, p - 5)) x <- matrix(rnorm(n * p), n, p) y <- as.numeric(x %*% beta + rnorm(n) * 0.5) itr <- 1:200; iva <- 201:300 fit <- combss(x[itr, ], y[itr], x_val = x[iva, ], y_val = y[iva], family = "gaussian", q = 10) fit ## ----------------------------------------------------------------------------- fit$subset_list[1:8] ## ----------------------------------------------------------------------------- plot(seq_along(fit$mse_path), fit$mse_path, type = "b", xlab = "k", ylab = "Validation MSE") abline(v = fit$best_k, lty = 2) ## ----------------------------------------------------------------------------- ybin <- as.numeric(plogis(x %*% beta) > 0.5) fit_bin <- combss(x[itr, ], ybin[itr], x_val = x[iva, ], y_val = ybin[iva], family = "binomial", q = 10) fit_bin ## ----------------------------------------------------------------------------- ymulti <- cut(as.numeric(x %*% beta), breaks = c(-Inf, -1, 1, Inf), labels = c("a", "b", "c")) fit_mn <- combss(x[itr, ], ymulti[itr], x_val = x[iva, ], y_val = ymulti[iva], family = "multinomial", q = 10) fit_mn ## ----eval = FALSE------------------------------------------------------------- # cv <- combss_cv(x, y, family = "gaussian", q = 6) # cv$best_lambda ## ----------------------------------------------------------------------------- preds <- predict(fit, newx = x[iva, ], x_train = x[itr, ], y_train = y[itr]) head(preds)