This is a re-publication of A Self-Instructing Course in Mode Choice Modeling, originally prepared by Frank Koppelman and Chandra Bhat for the Federal Transit Administration. The mathematics and instruction provided by this course have been extraordinarily helpful to a generation of choice modelers and other transportation professionals in academic and practical settings.

The explosion of open-source packages for logit modeling and literate programming more generally warrants this re-publication in a programming-first context. The R code to compute the choice models in this book is embedded within the text and exposed to the viewer. In this way, the book serves not only as a primer on choice modeling, but on how to estimate and interpret choice modelers in R. This conversion project was undertaken by members of the AEP50(5) subcommittee on Travel Forecasting Resources on behalf of the transportation modeling community. The committee was aided in the initial conversion by the graduate students at Brigham Young University.

Cover Photo: King’s Cross Station, London by Michał Parzuchowski on Unsplash

Original Acknowledgements

This manual was prepared under funding of the United States Department of Transportation through the Federal Transit Administration (Agmt. 8-17-04-A1/DTFT60-99-D-4013/0012) to AECOMConsult and Northwestern University.

Valuable reviews and comments were provided by students in travel demand modeling classes at Northwestern University and the Georgia Institute of Technology. In addition, valuable comments, suggestions and questions were given by Rick Donnelly, Laurie Garrow, Joel Freedman, Chuck Purvis, Kimon Proussaloglou, Bruce Williams, Bill Woodford and others. The authors are indebted to all who commented on any version of this report but retain responsibility for any errors or omissions.

R Packages

In order to run the examples in this book, you will need the following packages:

install.packages("tidyverse") # data munging and plots
install.packages("mlogit") # choice model estimation

In order to build the book for yourself, you will need the following additional packages that help build the tables and document: