## ----setup, include=FALSE----------------------------------------------------- knitr::opts_chunk$set(collapse = TRUE, comment = "#>") library(ppmSDR) ## ----regression--------------------------------------------------------------- set.seed(1) n <- 1000; p <- 10 B <- matrix(0, p, 2); B[1, 1] <- B[2, 2] <- 1 x <- matrix(rnorm(n * p), n, p) y <- (x %*% B[, 1]) / (0.5 + (x %*% B[, 2] + 1)^2) + 0.2 * rnorm(n) ## penalized principal least-squares SVM (P^2LSM) fit <- ppm(x, y, H = 10, C = 1, loss = "lssvm", penalty = "grSCAD", lambda = 0.01) round(fit$evectors[, 1:2], 3) summary(fit, d = 2) ## ----classification----------------------------------------------------------- y.binary <- sign(y) ## penalized principal weighted least-squares SVM (P^2WLSM) fit2 <- ppm(x, y.binary, H = 10, C = 1, loss = "asls", penalty = "grSCAD", lambda = 0.03) round(fit2$evectors[, 1:2], 3) ## ----tune--------------------------------------------------------------------- set.seed(1) cv <- ppm_tune(x, y, loss = "lssvm", d = 2, n.fold = 5, nlambda = 10, lambda.max = 0.02) cv$opt.lambda summary(cv$fit, d = 2) ## ----wdbc, fig.width = 5.5, fig.height = 5------------------------------------ data(wdbc) x <- scale(as.matrix(wdbc[, -1])) y <- ifelse(wdbc$diagnosis == "M", 1, -1) fit <- ppm(x, y, loss = "wl2svm", penalty = "grSCAD", lambda = 0.3) summary(fit, d = 2) B <- fit$evectors[, 1:2] scores <- x %*% B plot(scores[, 1], scores[, 2], col = ifelse(y == 1, "red", "blue"), pch = ifelse(y == 1, 17, 1), xlab = "1st SDR direction", ylab = "2nd SDR direction") legend("topright", legend = c("malignant (+1)", "benign (-1)"), col = c("red", "blue"), pch = c(17, 1))