Type: | Package |
Title: | 'Rcpp' Integration for Numerical Computing Libraries |
Version: | 0.6-0 |
Date: | 2023-09-06 |
Maintainer: | Yixuan Qiu <yixuan.qiu@cos.name> |
Description: | A collection of open source libraries for numerical computing (numerical integration, optimization, etc.) and their integration with 'Rcpp'. |
License: | GPL-2 | GPL-3 [expanded from: GPL (≥ 2)] |
Copyright: | See file COPYRIGHTS |
URL: | https://github.com/yixuan/RcppNumerical |
BugReports: | https://github.com/yixuan/RcppNumerical/issues |
Imports: | Rcpp |
LinkingTo: | Rcpp, RcppEigen |
Suggests: | knitr, rmarkdown, prettydoc, mvtnorm, RcppEigen |
VignetteBuilder: | knitr, rmarkdown |
RoxygenNote: | 7.2.3 |
NeedsCompilation: | yes |
Packaged: | 2023-09-06 11:00:51 UTC; qyx |
Author: | Yixuan Qiu [aut, cre], Ralf Stubner [ctb] (Integration on infinite intervals), Sreekumar Balan [aut] (Numerical integration library), Matt Beall [aut] (Numerical integration library), Mark Sauder [aut] (Numerical integration library), Naoaki Okazaki [aut] (The libLBFGS library), Thomas Hahn [aut] (The Cuba library) |
Repository: | CRAN |
Date/Publication: | 2023-09-06 15:10:03 UTC |
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))