logitr: Fast Estimation of Multinomial (MNL) and Mixed Logit (MXL) Models with Preference Space and Willingness to Pay Space Utility Parameterizations
The latest version includes support for:
- Multinomial logit (MNL) models
- Mixed logit (MXL) models with normal and log-normal parameter distributions.
- Preference space and WTP space utility parameterizations.
- Weighted models to differentially weight individual observations.
- Uncorrelated or correlated heterogeneity covariances for mixed logit models.
- Functions for computing WTP from preference space models.
- Functions for predicting expected probabilities and outcomes for sets of alternatives based on an estimated model.
- A parallelized multistart optimization loop that uses different random starting points in each iteration to search for different local minima (useful for non-convex problems like MXL models or models with WTP space parameterizations).
- A compiled C++ backend (default for MXL models) with multithreaded evaluation of the simulated log-likelihood for a substantial speed boost over the native R implementation.
- Draw-batched streaming to bound peak memory usage for MXL models with large numbers of draws.
Mixed logit models are estimated using maximum simulated likelihood based on the algorithms in Kenneth Train’s book Discrete Choice Methods with Simulation, 2nd Edition (New York: Cambridge University Press, 2009).
logitr includes a compiled C++ backend for mixed logit models with multithreaded evaluation, making it dramatically faster than other logit packages in R:
See the benchmarks article for details.
View the basic usage page for details on how to use logitr to estimate models.
An associated paper in the Journal of Statistical Software about this package is available at https://doi.org/10.18637/jss.v105.i10
You can install {logitr} from CRAN:
install.packages("logitr")or you can install the development version of {logitr} from GitHub:
# install.packages("remotes")
remotes::install_github("jhelvy/logitr")Because {logitr} includes compiled C++ code, installing the development version from GitHub builds from source and therefore requires a C++ compiler toolchain:
- Windows: install Rtools (matched to your R version).
- macOS: install the Xcode Command Line Tools by running
xcode-select --installin a terminal. - Linux: a compiler is normally already present (e.g.
r-base-dev/build-essential).
You can check whether your system is ready to build packages with
pkgbuild::check_build_tools(). Installing the released version from
CRAN (above) does not require a compiler, since CRAN provides
pre-built binaries for Windows and macOS.
Load the library with:
library(logitr)- Author: John Paul Helveston https://www.jhelvy.com/
- Date First Written: Sunday, September 28, 2014
- License: MIT
If you use this package in a publication, please cite the JSS article
associated with it! You can get the citation by typing
citation("logitr") into R:
citation("logitr")
#> To cite logitr in publications use:
#>
#> Helveston JP (2023). "logitr: Fast Estimation of Multinomial and
#> Mixed Logit Models with Preference Space and Willingness-to-Pay Space
#> Utility Parameterizations." _Journal of Statistical Software_,
#> *105*(10), 1-37. doi:10.18637/jss.v105.i10
#> <https://doi.org/10.18637/jss.v105.i10>.
#>
#> A BibTeX entry for LaTeX users is
#>
#> @Article{,
#> title = {{logitr}: Fast Estimation of Multinomial and Mixed Logit Models with Preference Space and Willingness-to-Pay Space Utility Parameterizations},
#> author = {John Paul Helveston},
#> journal = {Journal of Statistical Software},
#> year = {2023},
#> volume = {105},
#> number = {10},
#> pages = {1--37},
#> doi = {10.18637/jss.v105.i10},
#> }
