PyLogit is a Python package for performing maximum likelihood estimation of conditional logit models and similar discrete choice models.
Conditional Logit (Type) Models
Multinomial Logit Models
Multinomial Asymmetric Models
- Multinomial Clog-log Model
- Multinomial Scobit Model
- Multinomial Uneven Logit Model
- Multinomial Asymmetric Logit Model
Nested Logit Models
Mixed Logit Models (with Normal mixing distributions)
Supports datasets where the choice set differs across observations
Supports model specifications where the coefficient for a given variable may be
- completely alternative-specific (i.e. one coefficient per alternative, subject to identification of the coefficients),
- subset-specific (i.e. one coefficient per subset of alternatives, where each alternative belongs to only one subset, and there are more than 1 but less than J subsets, where J is the maximum number of available alternatives in the dataset),
- completely generic (i.e. one coefficient across all alternatives).
- Available from PyPi::
pip install pylogit
- Available through Anaconda::
- conda install -c timothyb0912 pylogit
- For more information about the asymmetric models that can be estimated with PyLogit, see the following paper
- Brathwaite, Timothy, and Joan Walker. "Asymmetric, Closed-Form, Finite-Parameter Models of Multinomial Choice." arXiv preprint arXiv:1606.05900 (2016). http://arxiv.org/abs/1606.05900.
If PyLogit (or its constituent models) is useful in your research or work, please cite this package by citing the paper above.
Modified BSD (3-clause)
- Changed tqdm dependency to allow for anaconda compatibility.
- Added statsmodels and tqdm as package dependencies to fix errors with 0.2.0.
- Added support for Python 3.4 - 3.6
- Added AIC and BIC to summary tables of all models.
- Added support for bootstrapping and calculation of bootstrap confidence intervals: - percentile intervals - bias-corrected and accelerated (BCa) bootstrap confidence intervals - approximate bootstrap confidence (ABC) intervals.
- Changed sparse matrix creation to enable estimation of larger datasets.
- Refactored internal code organization and classes for estimation.
- Added support to all logit-type models for parameter constraints during model estimation. All models now support the use of the constrained_pos keyword argument.
- Added new argument checks to provide user-friendly error messages.
- Created more than 175 tests, bringing statement coverage to 99%.
- Added new example notebooks demonstrating prediction, mixed logit, and converting long-format datasets to wide-format.
- Edited docstrings for clarity throughout the library.
- Extensively refactored codebase.
- Updated the underflow and overflow protections to make use of L’Hopital’s rule where appropriate.
- Fixed bugs with the nested logit model. In particular, the predict function, the BHHH approximation to the Fisher Information Matrix, and the ridge regression penalty in the log-likelihood, gradient, and hessian functions have been fixed.
- Added python notebook examples demonstrating how to estimate the asymmetric choice models and the nested logit model.
- Corrected the docstrings in various places.
- Added new datasets to the github repo.
- Added asymmetric choice models.
- Added nested logit and mixed logit models.
- Added tests for mixed logit models.
- Fixed typos in library documentation.
- Made print statements compatible with python3.
- Changed documentation to numpy doctoring standard.
- Internal refactoring.
- Added an example notebook demonstrating how to estimate the mixed logit model.
- Initial package release with support for the conditional logit (MNL) model.