Similar to other predict methods, this functions predicts fitted values,
logits, coefficients and more from a fitted "glmnet"
object.
# S3 method for glmnet
coef(object, s = NULL, exact = FALSE, ...)# S3 method for glmnet
predict(object, newx, s = NULL, type = c("link",
"response", "coefficients", "nonzero", "class"), exact = FALSE,
newoffset, ...)
# S3 method for relaxed
predict(object, newx, s = NULL, gamma = 1,
type = c("link", "response", "coefficients", "nonzero", "class"),
exact = FALSE, newoffset, ...)
Fitted "glmnet"
model object or a "relaxed"
model (which inherits from class "glmnet").
Value(s) of the penalty parameter lambda
at which
predictions are required. Default is the entire sequence used to create the
model.
This argument is relevant only when predictions are made at
values of s
(lambda) different from those used in the fitting
of the original model. Not available for "relaxed"
objects. If
exact=FALSE
(default), then the predict function uses linear
interpolation to make predictions for values of s
(lambda) that do
not coincide with those used in the fitting algorithm. While this is often a
good approximation, it can sometimes be a bit coarse. With
exact=TRUE
, these different values of s
are merged (and
sorted) with object$lambda
, and the model is refit before predictions
are made. In this case, it is required to supply the original data x=
and y=
as additional named arguments to predict()
or
coef()
. The workhorse predict.glmnet()
needs to update
the model, and so needs the data used to create it. The same is true of
weights
, offset
, penalty.factor
, lower.limits
,
upper.limits
if these were used in the original call. Failure to do
so will result in an error.
This is the mechanism for passing arguments like x=
when
exact=TRUE
; seeexact
argument.
Matrix of new values for x
at which predictions are to be
made. Must be a matrix; can be sparse as in Matrix
package. This
argument is not used for type=c("coefficients","nonzero")
Type of prediction required. Type "link"
gives the linear
predictors for "binomial"
, "multinomial"
, "poisson"
or
"cox"
models; for "gaussian"
models it gives the fitted
values. Type "response"
gives the fitted probabilities for
"binomial"
or "multinomial"
, fitted mean for "poisson"
and the fitted relative-risk for "cox"
; for "gaussian"
type
"response"
is equivalent to type "link"
. Type
"coefficients"
computes the coefficients at the requested values for
s
. Note that for "binomial"
models, results are returned only
for the class corresponding to the second level of the factor response.
Type "class"
applies only to "binomial"
or
"multinomial"
models, and produces the class label corresponding to
the maximum probability. Type "nonzero"
returns a list of the indices
of the nonzero coefficients for each value of s
.
If an offset is used in the fit, then one must be supplied
for making predictions (except for type="coefficients"
or
type="nonzero"
)
Single value of gamma
at which predictions are required,
for "relaxed" objects.
The object returned depends on type.
The shape of the objects returned are different for "multinomial"
objects. This function actually calls NextMethod()
, and the
appropriate predict method is invoked for each of the three model types.
coef(...)
is equivalent to predict(type="coefficients",...)
Friedman, J., Hastie, T. and Tibshirani, R. (2008) Regularization Paths for Generalized Linear Models via Coordinate Descent, https://web.stanford.edu/~hastie/Papers/glmnet.pdf Journal of Statistical Software, Vol. 33(1), 1-22 Feb 2010 https://www.jstatsoft.org/v33/i01/ Simon, N., Friedman, J., Hastie, T., Tibshirani, R. (2011) Regularization Paths for Cox's Proportional Hazards Model via Coordinate Descent, Journal of Statistical Software, Vol. 39(5) 1-13 https://www.jstatsoft.org/v39/i05/
glmnet
, and print
, and coef
methods, and
cv.glmnet
.
# NOT RUN {
x=matrix(rnorm(100*20),100,20)
y=rnorm(100)
g2=sample(1:2,100,replace=TRUE)
g4=sample(1:4,100,replace=TRUE)
fit1=glmnet(x,y)
predict(fit1,newx=x[1:5,],s=c(0.01,0.005))
predict(fit1,type="coef")
fit2=glmnet(x,g2,family="binomial")
predict(fit2,type="response",newx=x[2:5,])
predict(fit2,type="nonzero")
fit3=glmnet(x,g4,family="multinomial")
predict(fit3,newx=x[1:3,],type="response",s=0.01)
# }
Run the code above in your browser using DataLab