05 - Modal Split and Random Utility Model - TDBM

05 - Modal Split and Random Utility Model - TDBM

Modal split is the second step in the modeling stage of the classic 4 stage framework.

In terms of an O/D matrix like the following, in this step we basically take the matrix, and from that we get 2 ore more (depending on how many option we are looking at).

3D matrix - 05 - Modal Split and Random Utility Model - TDBM 2025-05-20 14.02.24.excalidraw.png
%%🖋 Edit in Excalidraw%%
where:

Along this note, the number of trips from TAZ i to TAZ j will sometimes be indicated with the symbol tij

Factors affecting modal split

There are many factors affecting modal choice, some related to passengers (aka characteristics), some to the trip and lastly some variables considered as averages.

Passenger Trip Mean
Vehicle availability Purpose Waiting time
Income Hour of the day Travel time
Family structure Cost
Housing density Cost and parking facility
Constraints of the rest of the day Comfort
Regularity
Safety

Discrete choice models

Modal split models are based on utility theory. The general principle is that the trip maker tries to maximize the UTILITY.

utility

Utility is a function that is split into two parts:

Ui=Vi+ξi
where:

  • i=1...m: the transport modes
  • U: the perceived utility
  • V: the [[#measurable utility]]. Deterministic
  • ξ: the random part of the utility

Each passenger chooses mode j if

Uj=max{Ui}iI

Given that there is a random part to each utility, it is possible that 2 modes which deterministic utilities are ordered as:

V1>V2

in the end have a perceived utility

U1<U2

due to the random part.

Measurable utility

The measurable utility is a linear combination of attributes:

Vi(β,x)=b1i+k=2pβkixki

where:

The parameters are calibrated through the method of maximum likelihood (method of maximum likelihood.

Random utility

The random part of the utility, ξ, needs to be associated to a random distribution if we want to do anything with it.

We can prove that:

ξiNormalProbit modelξiGumbel or WeibullLogit model

Probit model

The Probit model is particularly useful as it can accomodate for routes that share part of the links.

Logit model

The Logit model is not able to accomodate for routes that share part of the links. In probabilistic terms:

ξii.i.d. Gumbel

(i.i.d.: indipendent and identically distributed)

The probability of mode i, given a [[#Measurable utility]] Vi and all the other utilities Vj, according to the logit model is:

pi=eVij=1meVi

Nested logit models

The part that follows was written by ChatGPT. I have read it all and it makes sense to me BUT I have used it in place of the slides (since those are terrible and impossible to follow). This mean that I did not get the information from the slides themselves or from any book for that matter.

My understanding of this tipic realies moslty on an explenation provided by Large Language Model and might be inaccurate.

I'd like to add that I hate doing this, as I prefer writing these notes myself and from reliable information but again, the sources I had available were incomprehensible to me I had to choose between understanding something with an unkwon probability of it being correct vs the certeinty of not understanding anything. I chose the first, but I invite anyone reading this to keep this in mind.

🧠 Context

In transportation demand modeling, a modal split model predicts how travelers choose between transport modes (e.g., car, bus, train, bike). This is modeled using discrete choice theory, where each individual picks the alternative that gives them the highest utility.

The classic model is the Multinomial Logit (MNL) model, which assumes:

This is unrealistic when some alternatives are similar" (e.g., bus and train are both public transport), because MNL cannot capture correlation in unobserved factors.

❗ Problem with MNL:

Choosing between car, bus, and train treats bus and train as equally different from car as they are from each other — which is often wrong.

🚦 Solution: Nested Logit Model (NL)

The Nested Logit (NL) model generalizes MNL by allowing for correlation among similar alternatives, while still being computationally tractable.


🌲 Nesting Structure

Imagine the traveler faces this decision tree:

          Travel Mode
         /           \
    Private        Public Transport
     /   \             /      \
   Car  Moto        Bus     Train

Alternatives are grouped into nests based on similarity (e.g., Bus and Train are both PT, and may share unobserved characteristics like comfort or exposure to traffic).


📐 Utility Specification

Each individual n chooses the alternative j that gives the highest utility:

Unj=Vnj+εnj

Where:


🪜 Nesting and Probabilities

Let's define:

The probability of choosing alternative j is computed in two steps:

Step 1: Inclusive Value (Logsum)

For each nest b, compute the inclusive value (IV) or logsum utility:

IVn,b=ln(kbeVnk/λb)

Where:

Step 2: Probability of Nest and Alternative

(a) Probability of choosing nest b:

Pn,b=eλbIVn,bhBeλhIVn,h

(b) Probability of choosing alternative j within its nest b:

Pn,j|b=eVnj/λbkbeVnk/λb

🔄 Final Choice Probability:

Pn,j=Pn,bPn,j|b

🔧 Parameters and Interpretation


✅ Why Use Nested Logit?

Feature MNL Nested Logit
Correlated alternatives? ❌ No ✅ Yes (within nests)
IIA assumption? ✅ Yes 🚫 Only within nests
Flexible substitution patterns? ❌ No ✅ Yes
Complexity ⭐ Simple ⚠️ Moderate (more parameters)

🧪 Example: Mode Choice

Nest Alternatives
Private Car, Motorcycle
Public Bus, Metro, Tram

Suppose Vnj depends on travel time and cost. The model can account for the fact that Bus and Metro are more similar (e.g., fixed-schedule, crowding) than they are to Car.


📉 Estimation


❗ Caveats


🔚 Summary

📚 9. Summary Table

Here we are using i instead of j and b instead of B.
For individual n, alternative i, let B be all the possible nests (first level of the tree)

Concept Symbol / Formula Description
Utility Uni=Vni+εni Total utility
Deterministic utility Vni=Xniβ Observed utility part
Inclusive value IVnB=lnjCBeVnj/λB Utility of a nest
Nest prob. PnB=eλBIVnBBeλBIVnB Nest selection
Conditional prob. Pn,i|B=eVn,i/λBjCBeVn,i/λB Alternative within nest
Overall prob. Pni=PnBPniB Final choice prob.
Nesting parameter λB(0,1] Measures correlation within nest

Nested logit models - Degenerative branches

A degenerative branch (or degenerate nest) is a nest that contains only one alternative.

This is important because:


⚖️ 2. Are these two nesting structures equivalent?

Let's compare your two examples:

Case 1:

(Private vehicles is treated as a single alternative, not a nest with branches)

Case 2:

(Private vehicles is now a nest with only one alternative: Car)

🔍 Are they equivalent?

Yes, in practice they are equivalent, because nest A in case 2 is degenerate: it contains only one alternative.

This means:

Hence, if a nest has just one alternative (like "Car" in "Private"), it collapses to a standard logit model for that alternative.

But! There is a subtle technical difference in the way you write the equations and estimate the model, as we'll now see.


📐 3. Relevant Equations for Private Vehicle Branch (Degenerate Nest)

Suppose:

        Mode Choice
             |
    --------------------
    |                  |
  Private            Public
   Car         -----------------
              |               |
            Bus            Train

Let’s write the overall probability of choosing Car.

🚘 Car (in a degenerate nest):
Pn,car|Private=1 IVn,Private=ln(eVn,car/λPrivate)=Vn,carλPrivate Pn,Private=eλPrivateIVn,PrivateeλPrivateIVn,Private+eλPublicIVn,Public=eVn,careVn,car+eλPublicIVn,Public Pn,car=Pn,Private1=eVn,careVn,car+eλPublicIVn,Public

This is effectively just an MNL-style logit formula comparing:


🚍 What about Bus and Train?

You still use the full nested logit formula:

  1. Inclusive Value of Public nest:
IVn,Public=ln(j{bus,train}eVnj/λPublic)
  1. Probability of Public nest:
Pn,Public=eλPublicIVn,PubliceVn,car+eλPublicIVn,Public
  1. Conditional probabilities:
Pn,bus|Public=eVn,bus/λPubliceVn,bus/λPublic+eVn,train/λPublicPn,train|Public=eVn,train/λPubliceVn,bus/λPublic+eVn,train/λPublic
  1. Final probabilities:
Pn,bus=Pn,PublicPn,bus|PublicPn,train=Pn,PublicPn,train|Public

🚧 4. Practical Considerations

Estimation:
Interpretation:

✅ 5. Conclusion

Feature Case 1 Case 2
Private vehicles One alternative (Car) Degenerate nest (Car only)
Structural effect Same behavioral result Same, unless extended
Modeling implication No need to nest Car Nest adds complexity without gain
Estimation issue None λ for Car not identified

Takeaway: Don't create degenerate nests unless you need structural symmetry or plan to expand the model.