Arte SheetsLearn. Try. Understand.

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_autoRed 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.41420.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.

Further reading