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

**URL:** https://discourse.julialang.org/t/introducing-dcm-jl-a-julia-package-to-estimate-discrete-choice-models/131122
**Category:** Finance and Economics
**Created:** [July 28, 2025, 3:35am UTC](https://discourse.julialang.org/t/introducing-dcm-jl-a-julia-package-to-estimate-discrete-choice-models/131122 "2025-07-28T03:35:07Z")
**Posts on this page:** 4
**Page:** 1

<div class="post-metadata">

### Author: ![ig\_hdez](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ig_hdez/32/7938_2.png) [@ig\_hdez](https://discourse.julialang.org/u/ig_hdez)
#### Post date: [July 28, 2025, 3:35am UTC](https://discourse.julialang.org/t/introducing-dcm-jl-a-julia-package-to-estimate-discrete-choice-models/131122/1 "2025-07-28T03:35:07Z")

</div>

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](https://github.com/ighdez/DCM.jl)

Thanks and looking forward to hearing what you think!

---

<div class="post-metadata">

### Author: ![GunnarFarneback](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/gunnarfarneback/32/1827_2.png) [@GunnarFarneback](https://discourse.julialang.org/u/GunnarFarneback)
#### Post date: [July 28, 2025, 6:45am UTC](https://discourse.julialang.org/t/introducing-dcm-jl-a-julia-package-to-estimate-discrete-choice-models/131122/2 "2025-07-28T06:45:33Z")

</div>

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?

---

<div class="post-metadata">

### Author: ![ChrisRackauckas](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/chrisrackauckas/32/77_2.png) [@ChrisRackauckas](https://discourse.julialang.org/u/ChrisRackauckas)
#### Post date: [July 28, 2025, 9:11am UTC](https://discourse.julialang.org/t/introducing-dcm-jl-a-julia-package-to-estimate-discrete-choice-models/131122/3 "2025-07-28T09:11:48Z")

</div>

Indeed, I expected to see Dynamic Causal Modeling 😅

---

<div class="post-metadata">

### Author: ![sylvaticus](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/sylvaticus/32/203883_2.png) [@sylvaticus](https://discourse.julialang.org/u/sylvaticus)
#### Post date: [July 28, 2025, 4:13pm UTC](https://discourse.julialang.org/t/introducing-dcm-jl-a-julia-package-to-estimate-discrete-choice-models/131122/4 "2025-07-28T16:13:18Z")

</div>

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