Xlogit: An open-source Python package for GPU-accelerated estimation of Mixed Logit models. (March 2022) - Arteaga, Cristian; Park, JeeWoong; Beeramoole, Prithvi Bhat; Paz, Alexander
Abstract: Mixed Logit is an advanced and flexible tool for the study of discrete choice problems. However, this flexibility involves computationally intensive calculations, as the estimation of Mixed Logit models requires the simulation of integrals. In addition, the specification of Mixed Logit models requires decisions such as potential explanatory variables to be included in the model as well as their mixing distributions. This specification process involves testing and estimation of different combinations of variables and mixing distributions, which is time consuming and computationally intensive. In response, this paper introduces xlogit, an open-source Python package that leverages the performance of graphic processing units (GPU) for an efficient estimation of Mixed Logit models. For benchmarking, the performance of xlogit was compared against the PyLogit and Biogeme Python packages as well as the mlogit, Apollo, gmnl, and mixl R packages. Artificially generated as well as actual data were used to evaluate the performance gains provided by xlogit . Results suggest that using a mid-range graphics card and a regular desktop computer, xlogit is in average 55x faster than Apollo, 43x faster than Biogeme, 74x faster than gmnl, 39x faster than mixl, 16x faster than mlogit, and 27x faster than PyLogit, with an additional advantage of efficient memory management. The performance gains provided by xlogit facilitate an efficient modeling process, as it enables the testing of a large number of model specifications more efficiently relative to existing software packages. xlogit 's open source code, documentation, and usage examples are publicly available in the package's GitHub repository. Highlights: Leveraging of Graphic Processing Units (GPU) for performance improvement. Significant speed gains for estimation of Mixed Logit models. Support for estimation using hundreds of thousands of random draws. Efficient scaling and memory management as the number of random draws increases. Additional support for Multinomial and Conditional Logit models.