| fastLR {RcppNumerical} | R Documentation |
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.
fastLR(x, y, start = rep(0, ncol(x)), eps_f = 1e-08, eps_g = 1e-05, maxit = 300)
x |
The model matrix. |
y |
The response vector. |
start |
The initial guess of the coefficient vector. |
eps_f |
Iteration stops if |f-f'|/|f|<eps_f, where f and f' are the current and previous value of the objective function (negative log likelihood) respectively. |
eps_g |
Iteration stops if ||g|| < eps_g * max(1, ||beta||), where beta is the current coefficient vector and g is the gradient. |
maxit |
Maximum number of iterations. |
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., X * beta_hat |
loglikelihood |
The maximized log likelihood |
converged |
Whether the optimization algorithm has converged |
Yixuan Qiu https://statr.me
glm.fit()
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))