# predict.glmnet

##### make predictions from a "glmnet" object.

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

object.

- Keywords
- models, regression

##### Usage

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

##### Arguments

- 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 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.- newoffset
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.

##### Details

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

##### Value

The object returned depends on type.

##### References

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*
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/

##### See Also

`glmnet`

, and `print`

, and `coef`

methods, and `cv.glmnet`

.

##### Examples

```
# 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)
# }
```

*Documentation reproduced from package glmnet, version 2.0-18, License: GPL-2*