Similar to other predict methods, this functions predicts fitted values, logits,
coefficients and more from a fitted `"glmnet"`

object.

```
# S3 method for glmnet
predict(object, newx, s = NULL,
type=c("link","response","coefficients","nonzero","class"), exact = FALSE, offset, ...)
# S3 method for glmnet
coef(object,s=NULL, exact=FALSE, ...)
```

object

Fitted `"glmnet"`

model object.

newx

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")`

s

Value(s) of the penalty parameter `lambda`

at which
predictions are required. Default is the entire sequence used to
create the model.

type

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`

.

exact

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. 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 strongly advisable 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 expects the data used to create it to be around.
Although it will often work fine without supplying these additional arguments, it will likely break when
used inside a nested sequence of function calls.
If additional arguments such as `weights`

and
`offset`

were used, these should be included by name as well.

offset

If an offset is used in the fit, then one must be
supplied for making predictions (except for
`type="coefficients"`

or `type="nonzero"`

)

…

This is the mechanism for passing arguments like
`x=`

when `exact=TRUE`

; see`exact`

argument.

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*, http://www.stanford.edu/~hastie/Papers/glmnet.pdf
*Journal of Statistical Software, Vol. 33(1), 1-22 Feb 2010*
http://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*
http://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