Learn R Programming

msaenet (version 2.1)

amnet: Adaptive MCP-Net

Description

Adaptive MCP-Net

Usage

amnet(x, y, family = c("gaussian", "binomial", "poisson", "cox"), init = c("mnet", "ridge"), nfolds = 5L, gammas = c(1.01, 1.7, 3, 100), alphas = seq(0.05, 0.95, 0.05), eps = 1e-04, max.iter = 10000L, gamma = 1, seed = 1001, parallel = FALSE, verbose = FALSE)

Arguments

x
Data matrix.
y
Response vector if family is "gaussian", "binomial" or "poisson". If family is "cox", a response matrix made by Surv.
family
Model family, can be "gaussian", "binomial", "poisson", or "cox".
init
Type of the penalty used in the initial estimation step. Can be "mnet" or "ridge".
nfolds
Fold numbers of cross-validation.
gammas
Vector of candidate gammas to use in MCP-Net.
alphas
Vector of candidate alphas to use in MCP-Net.
eps
Convergence threshhold to use in MCP-net.
max.iter
Maximum number of iterations to use in MCP-net.
gamma
Scaling factor for adaptive weights: weights = coefs^(-gamma).
seed
Random seed for cross-validation fold division.
parallel
Logical. Enable parallel parameter tuning or not, default is FALSE. To enable parallel tuning, load the doParallel package and run registerDoParallel() with the number of CPU cores before calling this function.
verbose
Should we print out the estimation progress?

Value

List of coefficients beta and ncvreg model object model.

Examples

Run this code
dat = msaenet.sim.gaussian(n = 150, p = 500, rho = 0.6,
                           coef = rep(1, 5), snr = 2, p.train = 0.7,
                           seed = 1001)

amnet.fit = amnet(dat$x.tr, dat$y.tr,
                  gammas = 3, alphas = seq(0.2, 0.8, 0.2), seed = 1002)

print(amnet.fit)
msaenet.nzv(amnet.fit)
msaenet.fp(amnet.fit, 1:5)
msaenet.tp(amnet.fit, 1:5)
amnet.pred = predict(amnet.fit, dat$x.te)
msaenet.rmse(dat$y.te, amnet.pred)
plot(amnet.fit)

Run the code above in your browser using DataLab