Learn R Programming

glmnet (version 4.0)

get_start: Get null deviance, starting mu and lambda max

Description

Return the null deviance, starting mu and lambda max values for initialization. For internal use only.

Usage

get_start(x, y, weights, family, intercept, is.offset, offset, exclude, vp,
  alpha, xm = NULL, xs = NULL)

Arguments

x

Input matrix, of dimension nobs x nvars; each row is an observation vector. If it is a sparse matrix, it is assumed to be unstandardized and the user must also provide the xm and xs arguments. If it is not a sparse matrix, it is assumed to be standardized.

y

Quantitative response variable.

weights

Observation weights.

family

A description of the error distribution and link function to be used in the model. This is the result of a call to a family function. (See family for details on family functions.)

intercept

Does the model we are fitting have an intercept term or not?

is.offset

Is the model being fit with an offset or not?

offset

Offset for the model. If is.offset=FALSE, this should be a zero vector of the same length as y.

exclude

Indices of variables to be excluded from the model.

vp

Separate penalty factors can be applied to each coefficient.

alpha

The elasticnet mixing parameter, with \(0 \le \alpha \le 1\).

xm

Vector of length nvars: xm(j) is the centering factor for variable j. User should only provide them if x is a sparse matrix.

xs

Vector of length nvars: xs(j) is the scaling factor for variable j. User should only provide them if x is a sparse matrix.

Details

This function is called by glmnet.path for null deviance, starting mu and lambda max values. It is also called by glmnet.fit and spglmnet.fit when used without warmstart, but they only use the null deviance and starting mu values.

When x is not sparse, the xm and xs arguments are ignored (x is expected to already by centered and scaled). When x is sparse, these arguments represent the centering and scaling factors for x.

Note that whether x is centered & scaled or not, the values of mu and nulldev don't change. However, the value of lambda_max does change, and we need xm and xs to get the correct value.