Logit Models w/Preference & WTP Space Utility Parameterizations

Fast estimation of multinomial (MNL) and mixed logit (MXL) models in R. Models can be estimated using "Preference" space or "Willingness-to-pay" (WTP) space utility parameterizations. Weighted models can also be estimated. An option is available to run a parallelized multistart optimization loop with random starting points in each iteration, which is useful for non-convex problems like MXL models or models with WTP space utility parameterizations. The main optimization loop uses the 'nloptr' package to minimize the negative log-likelihood function. Additional functions are available for computing and comparing WTP from both preference space and WTP space models and for predicting expected choices and choice probabilities for sets of alternatives based on an estimated model. Mixed logit models can include uncorrelated or correlated heterogeneity covariances and are estimated using maximum simulated likelihood based on the algorithms in Train (2009) . More details can be found in Helveston (2023) .


logitr

CRANstatus Travis buildstatus metacrandownloads

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 is fast!

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.

Basic Usage

View the basic usage page for details on how to use logitr to estimate models.

JSS Article

An associated paper in the Journal of Statistical Software about this package is available at https://doi.org/10.18637/jss.v105.i10

Installation

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 --install in 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, Version, and License Information

Citation Information

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},
#>   }

Reference manual

It appears you don't have a PDF plugin for this browser. You can click here to download the reference manual.

install.packages("logitr")

1.2.0 by John Helveston, 3 months ago


https://github.com/jhelvy/logitr, https://jhelvy.github.io/logitr/


Report a bug at https://github.com/jhelvy/logitr/issues


Browse source code at https://github.com/cran/logitr


Authors: John Helveston [aut, cre, cph] (ORCID: , Connor Forsythe [ctb]


Documentation:   PDF Manual  


MIT + file LICENSE license


Imports generics, MASS, mirai, nloptr, parallel, randtoolbox, Rcpp, RcppParallel, stats, tibble

Suggests apollo, broom, broom.helpers, dplyr, fastDummies, ggplot2, ggrepel, gmnl, gtsummary, here, kableExtra, knitr, mixl, mlogit, rmarkdown, testthat, texreg, tidyr

Linking to Rcpp, RcppParallel

System requirements: GNU make


Imported by cbcTools.

Suggested by broom.helpers, ggeffects, insight, parameters.

Enhanced by texreg.


See at CRAN