Skip to main content
This is a pre-production deployment of Warehouse. Changes made here affect the production instance of PyPI (
Help us improve Python packaging - Donate today!

Maximum likelihood estimation of conditional logit models

Project Description

What PyLogit is

PyLogit is a Python package for performing maximum likelihood estimation of conditional logit models and similar discrete choice models.

Main Features

  • 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).

Where to get it

Available from PyPi::

pip install pylogit

Available through Anaconda::
conda install -c timothyb0912 pylogit

For More Information

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).


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)


0.2.2 (December 11, 2017)

  • Changed tqdm dependency to allow for anaconda compatibility.

0.2.1 (December 11, 2017)

  • Added statsmodels and tqdm as package dependencies to fix errors with 0.2.0.

0.2.0 (December 10, 2017)

  • 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.

0.1.2 (December 4th, 2016)

  • 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.

0.1.1 (August 30th, 2016)

  • 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.

0.1.0 (August 29th, 2016)

  • 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.

0.0.0 (March 15th, 2016)

  • Initial package release with support for the conditional logit (MNL) model.
Release History

Release History

This version
History Node


History Node


History Node


History Node


History Node


History Node


History Node


Download Files

Download Files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
pylogit-0.2.2-py2.py3-none-any.whl (184.6 kB) Copy SHA256 Checksum SHA256 py2.py3 Wheel Dec 12, 2017
pylogit-0.2.2.tar.gz (131.9 kB) Copy SHA256 Checksum SHA256 Source Dec 12, 2017

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting