fastLR {RcppNumerical} | R Documentation |
Fast Logistic Regression Fitting Using L-BFGS Algorithm
Description
fastLR()
uses the L-BFGS algorithm to efficiently fit logistic
regression. It is in fact an application of the C++ function
optim_lbfgs()
provided by RcppNumerical to perform L-BFGS
optimization.
Usage
fastLR(
x,
y,
start = rep(0, ncol(x)),
eps_f = 1e-08,
eps_g = 1e-05,
maxit = 300
)
Arguments
x |
The model matrix. |
y |
The response vector. |
start |
The initial guess of the coefficient vector. |
eps_f |
Iteration stops if |
eps_g |
Iteration stops if
|
maxit |
Maximum number of iterations. |
Value
fastLR()
returns a list with the following components:
coefficients |
Coefficient vector |
fitted.values |
The fitted probability values |
linear.predictors |
The fitted values of the linear part, i.e.,
|
loglikelihood |
The maximized log likelihood |
converged |
Whether the optimization algorithm has converged |
Author(s)
Yixuan Qiu https://statr.me
See Also
glm.fit()
Examples
set.seed(123)
n = 1000
p = 100
x = matrix(rnorm(n * p), n)
beta = runif(p)
xb = c(x %*% beta)
p = 1 / (1 + exp(-xb))
y = rbinom(n, 1, p)
system.time(res1 <- glm.fit(x, y, family = binomial()))
system.time(res2 <- fastLR(x, y))
max(abs(res1$coefficients - res2$coefficients))