# predict.cv.nnGarrote: Predictions for cv.nnGarrote Object In nnGarrote: Non-Negative Garrote Estimation with Penalized Initial Estimators

## Description

`predict.cv.nnGarrote` returns the prediction for cv.nnGarrote for new data.

## Usage

 ```1 2``` ```## S3 method for class 'cv.nnGarrote' predict(object, newx, optimal.only = TRUE, ...) ```

## Arguments

 `object` An object of class cv.nnGarrote `newx` A matrix with the new data. `optimal.only` A boolean variable (TRUE default) to indicate if only the coefficient of the optimal split are returned. `...` Additional arguments for compatibility.

## Value

A matrix with the predictions of the `cv.nnGarrote` object.

## Author(s)

Anthony-Alexander Christidis, anthony.christidis@stat.ubc.ca

`cv.nnGarrote`
 ``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35``` ```# Setting the parameters p <- 500 n <- 100 n.test <- 5000 sparsity <- 0.15 rho <- 0.5 SNR <- 3 set.seed(0) # Generating the coefficient p.active <- floor(p*sparsity) a <- 4*log(n)/sqrt(n) neg.prob <- 0.2 nonzero.betas <- (-1)^(rbinom(p.active, 1, neg.prob))*(a + abs(rnorm(p.active))) true.beta <- c(nonzero.betas, rep(0, p-p.active)) # Two groups correlation structure Sigma.rho <- matrix(0, p, p) Sigma.rho[1:p.active, 1:p.active] <- rho diag(Sigma.rho) <- 1 sigma.epsilon <- as.numeric(sqrt((t(true.beta) %*% Sigma.rho %*% true.beta)/SNR)) # Simulate some data library(mvnfast) x.train <- mvnfast::rmvn(n, mu=rep(0,p), sigma=Sigma.rho) y.train <- 1 + x.train %*% true.beta + rnorm(n=n, mean=0, sd=sigma.epsilon) x.test <- mvnfast::rmvn(n.test, mu=rep(0,p), sigma=Sigma.rho) y.test <- 1 + x.test %*% true.beta + rnorm(n.test, sd=sigma.epsilon) # Applying the NNG with Ridge as an initial estimator nng.out <- cv.nnGarrote(x.train, y.train, intercept=TRUE, initial.model=c("LS", "glmnet")[2], lambda.nng=NULL, lambda.initial=NULL, alpha=0, nfolds=5) nng.predictions <- predict(nng.out, newx=x.test) mean((nng.predictions-y.test)^2)/sigma.epsilon^2 coef(nng.out) ```