Prediction method for Orthogonalizing EM fitted objects
# S3 method for oem
predict(
object,
newx,
s = NULL,
which.model = 1,
type = c("link", "response", "coefficients", "nonzero", "class"),
...
)
An object depending on the type argument
fitted "oem" model object
Matrix of new values for x
at which predictions are to be made. Must be a matrix; can be sparse as in the
CsparseMatrix
objects of the Matrix package.
This argument is not used for type=c("coefficients","nonzero")
Value(s) of the penalty parameter lambda at which predictions are required. Default is the entire sequence used to create the model.
If multiple penalties are fit and returned in the same oem object, the which.model
argument is used to
specify which model to make predictions for. For example, if the oem object oemobj
was fit with argument
penalty = c("lasso", "grp.lasso")
, then which.model = 2 provides predictions for the group lasso model.
Type of prediction required. type = "link"
gives the linear predictors for the "binomial"
model; for "gaussian"
models it gives the fitted values.
type = "response"
gives the fitted probabilities for "binomial"
. type = "coefficients"
computes the coefficients at the requested values for s
.
type = "class"
applies only to "binomial"
and produces the class label corresponding to the maximum probability.
not used
set.seed(123)
n.obs <- 1e4
n.vars <- 100
n.obs.test <- 1e3
true.beta <- c(runif(15, -0.5, 0.5), rep(0, n.vars - 15))
x <- matrix(rnorm(n.obs * n.vars), n.obs, n.vars)
y <- rnorm(n.obs, sd = 3) + x %*% true.beta
x.test <- matrix(rnorm(n.obs.test * n.vars), n.obs.test, n.vars)
y.test <- rnorm(n.obs.test, sd = 3) + x.test %*% true.beta
fit <- oem(x = x, y = y,
penalty = c("lasso", "grp.lasso"),
groups = rep(1:10, each = 10),
nlambda = 10)
preds.lasso <- predict(fit, newx = x.test, type = "response", which.model = 1)
preds.grp.lasso <- predict(fit, newx = x.test, type = "response", which.model = 2)
apply(preds.lasso, 2, function(x) mean((y.test - x) ^ 2))
apply(preds.grp.lasso, 2, function(x) mean((y.test - x) ^ 2))
Run the code above in your browser using DataLab