Introducing DCM.jl: a Julia package to estimate Discrete Choice Models

Hi everyone!

I’m glad to share DCM.jl, a new Julia package for estimating Discrete Choice Models (Logit, Mixed Logit, Latent Class) with a focus on speed, modularity, and transparency.

Some key features:

  • Model utility functions symbolically using Julia syntax.

  • Support for fixed and random parameters with different distributions

  • Efficient estimation using BFGS with automatic differentiation.

  • Parallelized log-likelihood and prediction routines (multi-threaded)

  • Tools for evaluating WTP, elasticities, and marginal effects (and standard errors with the Delta method)

  • Lightweight and extensible API, inspired by Biogeme and Apollo.

DCM.jl is built to support researchers and practitioners in transport, marketing, health economics, and beyond.

The software is still in early development (v0.1) and I’d love your feedback, suggestions, or contributions.

The code is located in my repo: GitHub - ighdez/DCM.jl

Thanks and looking forward to hearing what you think!

2 Likes

I have no experience with the domain so can’t give any feedback on the functionality, but if you have any plans to eventually register this in the General registry I would recommend using a longer package name. I was going to suggest DiscreteChoiceModels.jl, but that already exists, so another question is how that compares and/or if there could be an opportunity for collaboration?

3 Likes

Indeed, I expected to see Dynamic Causal Modeling :sweat_smile:

1 Like

Another quick suggestion: make the example in the readme reproducible, e.g. include the code to get my_data..

1 Like