Econometrics & Discrete Choice Modeling
Nested Logit Inclusive Value (Logsum) and IIA Paradox Formula
Resolve Multinomial Logit’s Red-Bus/Blue-Bus IIA paradox using McFadden’s Nested Logit inclusive value IV = LN(SUM EXP(V_j / lambda)) and Random Utility consistency check 0 < lambda <= 1.
Resolve the Red-Bus / Blue-Bus paradox with McFadden’s nest dissimilarity parameter lambda
When Auto (V_auto = 0) and Red Bus (V_rb = 0) split commuters 50% / 50%, introducing an identical Blue Bus (V_bb = 0) causes standard Multinomial Logit (lambda = 1.00) to predict 33.33% Auto / 33.33% Red Bus / 33.33% Blue Bus — absurdly claiming bus paint color steals commuters from cars! McFadden’s (1978) Nested Logit groups Red and Blue Bus inside a Transit nest with dissimilarity parameter 0 < lambda <= 1, forming Inclusive Value (Logsum) IV_tr = LN(EXP(V_rb / lambda) + EXP(V_bb / lambda)) and nest share P_tr = EXP(lambda * IV_tr) / (EXP(V_auto) + EXP(lambda * IV_tr))!
Verify all three regimes on the sheet with V_auto = V_rb = V_bb = 0 (B2:B4): (1) at lambda = 1.00, Nested Logit collapses to standard MNL (P_auto = 0.3333, P_rb = 0.3333); (2) at lambda = 0.50 (B5), IV_tr = LN(2) = 0.6931, EXP(0.5 * LN(2)) = SQRT(2) = 1.4142, P_auto = 1 / (1 + SQRT(2)) = 0.4142, and each bus gets 0.2929; (3) at near-perfect bus substitutability lambda = 0.10, P_auto = 0.4827 (approaching the true 50% / 25% / 25% split)!
| Dissimilarity Parameter lambda (V = 0) | Auto Share P_auto | Red Bus Share P_rb (= P_bb) |
|---|---|---|
| Standard MNL / IIA Trap (lambda = 1.00) | 0.3333 (Too Low!) | 0.3333 (66.7% Total Bus) |
| Moderate Nest Correlation (lambda = 0.50) | 0.4142 | 0.2929 (58.6% Total Bus) |
| Tight Within-Nest Substitution (lambda = 0.10) | 0.4827 (~50%) | 0.2586 (~25% Each Bus) |
Transit Nest Inclusive Value (Logsum) IV_tr = LN(EXP(V_rb/lambda) + EXP(V_bb/lambda)) Formula
Enforce Daly-Zachary-McFadden Random Utility Maximization (RUM) consistency 0 < lambda <= 1: values lambda > 1 imply cross-nest substitution stronger than within-nest substitution, violating global RUM!
=LET(v_rb, B3, v_bb, B4, lam_n, B5, IF(OR(lam_n <= 0, lam_n > 1), "Violates RUM Consistency (Require 0 < lambda <= 1)", ROUND(LN(EXP(v_rb / lam_n) + EXP(v_bb / lam_n)), 4)))Unconditional Choice Probability P_auto and P_rb = P_transit * P(rb | transit) Formula
Compute P_auto = EXP(V_auto) / (EXP(V_auto) + EXP(lambda * IV_tr)) and conditional within-nest share EXP(V_rb / lambda) / (EXP(V_rb / lambda) + EXP(V_bb / lambda)).
=LET(v_au, B2, v_rb, B3, v_bb, B4, lam_n, B5, IF(OR(lam_n <= 0, lam_n > 1), "Violates RUM Consistency (Require 0 < lambda <= 1)", LET(sum_n, EXP(v_rb / lam_n) + EXP(v_bb / lam_n), w_tr, POWER(sum_n, lam_n), p_tr, w_tr / (EXP(v_au) + w_tr), p_cond, EXP(v_rb / lam_n) / sum_n, ROUND(p_tr * p_cond, 4))))Try the example
Use the original values or change them to test your understanding.