Learn R Programming

CPGLIB (version 1.1.2)

predict.cv.ProxGrad: Predictions for cv.ProxGrad Object

Description

predict.cv.ProxGrad returns the predictions for a ProxGrad object.

Usage

# S3 method for cv.ProxGrad
predict(object, newx, type = c("prob", "class")[1], ...)

Value

The predictions for the cv.ProxGrad object.

Arguments

object

An object of class cv.ProxGrad.

newx

New data for predictions.

type

The type of predictions for binary response. Options are "prob" (default) and "class".

...

Additional arguments for compatibility.

Author

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

See Also

cv.ProxGrad

Examples

Run this code
# \donttest{
# Data simulation
set.seed(1)
n <- 50
N <- 2000
p <- 1000
beta.active <- c(abs(runif(p, 0, 1/2))*(-1)^rbinom(p, 1, 0.3))
# Parameters
p.active <- 100
beta <- c(beta.active[1:p.active], rep(0, p-p.active))
Sigma <- matrix(0, p, p)
Sigma[1:p.active, 1:p.active] <- 0.5
diag(Sigma) <- 1

# Train data
x.train <- mvnfast::rmvn(n, mu = rep(0, p), sigma = Sigma) 
prob.train <- exp(x.train %*% beta)/
              (1+exp(x.train %*% beta))
y.train <- rbinom(n, 1, prob.train)
# Test data
x.test <- mvnfast::rmvn(N, mu = rep(0, p), sigma = Sigma)
prob.test <- exp(x.test %*% beta)/
             (1+exp(x.test %*% beta))
y.test <- rbinom(N, 1, prob.test)

# CV ProxGrad - Single Group
proxgrad.out <- cv.ProxGrad(x.train, y.train,
                            glm_type = "Logistic",
                            include_intercept = TRUE,
                            alpha_s = 3/4,
                            n_lambda_sparsity = 100, 
                            tolerance = 1e-5, max_iter = 1e5)

# Predictions
proxgrad.prob <- predict(proxgrad.out, newx = x.test, type = "prob")
proxgrad.class <- predict(proxgrad.out, newx = x.test, type = "class")
plot(prob.test, proxgrad.prob, pch = 20)
abline(h = 0.5,v = 0.5)
mean((prob.test-proxgrad.prob)^2)
mean(abs(y.test-proxgrad.class))

# }

Run the code above in your browser using DataLab