fit a glm with all the options in glmnet
bigGlm.RdFit 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.
Arguments
- x
input matrix
- ...
Most other arguments to glmnet that make sense
- path
Since
glmnetdoes not do stepsize optimization, the Newton algorithm can get stuck and not converge, especially with unpenalized fits. Withpath=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 ispath=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.
Author
Trevor Hastie
Maintainer: Trevor Hastie
hastie@stanford.edu
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 8.81 0
fit2=bigGlm(x,y>0,family="binomial")
print(fit2)
#>
#> Call: bigGlm(x = x, y = y > 0, family = "binomial")
#>
#> Df %Dev Lambda
#> 1 20 5.65 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 5.65 0