Fit a generalized linear model as in glmnet but unpenalized. This allows all the features of glmnet such as sparse x, bounds on coefficients, offsets, and so on.

bigGlm(x, ..., path = FALSE)

Arguments

x

input matrix

...

Most other arguments to glmnet that make sense

path

Since glmnet does not do stepsize optimization, the Newton algorithm can get stuck and not converge, especially with unpenalized fits. With path=TRUE, the fit computed with pathwise lasso regularization. The current implementation does this twice: the first time to get the lambda sequence, and the second time with a zero attached to the end). Default is path=FALSE.

Value

It returns an object of class "bigGlm" that inherits from class "glmnet". That means it can be predicted from, coefficients extracted via coef. It has its own print method.

Details

This is essentially the same as fitting a "glmnet" model with a single value lambda=0, but it avoids some edge cases. CAVEAT: If the user tries a problem with N smaller than or close to p for some models, it is likely to fail (and maybe not gracefully!) If so, use the path=TRUE argument.

See also

print, predict, and coef methods.

Examples

# Gaussian x = matrix(rnorm(100 * 20), 100, 20) y = rnorm(100) fit1 = bigGlm(x, y) print(fit1)
#> #> Call: bigGlm(x = x, y = y) #> #> Df %Dev Lambda #> 1 20 0.2183 0
fit2=bigGlm(x,y>0,family="binomial") print(fit2)
#> #> Call: bigGlm(x = x, y = y > 0, family = "binomial") #> #> Df %Dev Lambda #> 1 20 0.1795 0
fit2p=bigGlm(x,y>0,family="binomial",path=TRUE) print(fit2p)
#> #> Call: bigGlm(x = x, y = y > 0, family = "binomial", path = TRUE) #> #> Df %Dev Lambda #> 1 20 0.1795 0