ALOGIT is a fast, efficient piece of discrete choice modelling software. However, it is legacy code, written predominantly in non-standard Fortran77, restricting its use and development. Implementing ALOGIT’s functionality in Python could make the software more assessable and encourage continued contribution.

Explaining the science

Logit models are an important class of discrete choice models. They are widely used to interpret, understand and predict decision making behaviour in a range of field including consumer choice and transportation.

Discrete choice models deal with the choices individuals make from a set of alternatives. This set must be finite, exclusive (choosing one alternative means rejecting all others) and exhaustive (an alternative must always be chosen).

It is assumed that decision-makers pick the alternative that benefits them most, or, the alternative with maximum utility. When developing a model, a researcher constructs a utility function for each alternative using unknown parameters, and observations about an individual (age, income, etc.) and the alternative (for example, in a transportation model, a mode of transport's cost, travel time, etc.).

The unknown parameters of the model can be estimated using numerical methods. Then, the model can be used to understand what factors most affect decision making behaviour, predict the decisions, or to know how to change an individuals decision.

Project aims

The aims of this project are,

  • To investigate the viability of implementing ALOGIT’s features in Python
  • To benchmark ALOGIT against other choice modelling software
  • To create a reproducible benchmarking system for the choice modelling community to confirm and expand upon
  • To complement the benchmarking system, develop a generic discrete choice model definition and a Python module to estimate such models using external software


When working with logit choice models there are multiple pieces of software available, many of which are open source. However, as the features available and performance varies, for a given piece of work not all software is equally useful. Furthermore, differences in interface between each software creates a barrier to moving between them.

The tools developed in this work could go some way to allowing modellers to work in an agnostic manner and freely transfer their work to whichever software best supports their needs. Furthermore, this work presents a way to benchmark discrete choice modelling software in a uniform manner.