Nested Logit Modeling

A more general model can be specified using the nested logit model.

Consider, for example, the following random utility function:

     

Suppose the set of all alternatives indexed by is partitioned into nests, . The nested logit model is obtained by assuming that the error term in the utility function has the GEV cumulative distribution function

     

where is a measure of a degree of independence among the alternatives in nest . When for all , the model reduces to the standard logit model.

Since the public transportation modes, 1 and 2, tend to be correlated, these two choices can be grouped together. The decision tree displayed in Figure 18.8 is constructed.

Figure 18.8 Decision Tree for Model Choice
Decision Tree for Model Choice

The two-level decision tree is specified in the NEST statement. The NCHOICE= option is not allowed for nested logit estimation. Instead, the CHOICE= option needs to be specified, as in the following statements:

/*-- nested logit estimation --*/
proc mdc data=newdata;
   model decision = ttime /
            type=nlogit
            choice=(mode 1 2 3)
            covest=hess;
   id pid;
   utility u(1,) = ttime;
   nest level(1) = (1 2 @ 1, 3 @ 2),
        level(2) = (1 2 @ 1);
run;

In Figure 18.9, estimates of the inclusive value parameters, INC_L2G1C1 and INC_L2G1C2, are indicative of a nested model structure. See the section Nested Logit and the section Decision Tree and Nested Logit for more details about inclusive values.

Figure 18.9 Two-Level Nested Logit Estimates
The MDC Procedure
 
Nested Logit Estimates

Parameter Estimates
Parameter DF Estimate Standard
Error
t Value Approx
Pr > |t|
ttime_L1 1 -0.4040 0.1241 -3.25 0.0011
INC_L2G1C1 1 0.8016 0.4352 1.84 0.0655
INC_L2G1C2 1 0.8087 0.3591 2.25 0.0243

The nested logit model is estimated with the restriction INC_L2G1C1 = INC_L2G1C2 by specifying the SAMESCALE option, as in the following statements:

/*-- nlogit with samescale option --*/
proc mdc data=newdata;
   model decision = ttime /
            type=nlogit
            choice=(mode 1 2 3)
            samescale
            covest=hess;
   id pid;
   utility u(1,) = ttime;
   nest level(1) = (1 2 @ 1, 3 @ 2),
        level(2) = (1 2 @ 1);
run;

The estimation result is displayed in Figure 18.10.

Figure 18.10 Nested Logit Estimates with One Dissimilarity Parameter
The MDC Procedure
 
Nested Logit Estimates

Parameter Estimates
Parameter DF Estimate Standard
Error
t Value Approx
Pr > |t|
ttime_L1 1 -0.4025 0.1217 -3.31 0.0009
INC_L2G1 1 0.8209 0.3019 2.72 0.0066

The nested logit model is equivalent to the conditional logit model if INC_L2G1C1 = INC_L2G1C2 = . You can verify this relationship by estimating a constrained nested logit model as shown in the following statements. (See the section RESTRICT Statement for details about imposing linear restrictions on parameter estimates.)

/*-- constrained nested logit estimation --*/
proc mdc data=newdata;
   model decision = ttime /
            type=nlogit
            choice=(mode 1 2 3)
            covest=hess;
   id pid;
   utility u(1,) = ttime;
   nest level(1) = (1 2 @ 1, 3 @ 2),
        level(2) = (1 2 @ 1);
   restrict INC_L2G1C1 = 1, INC_L2G1C2 =1;
run;

The parameter estimates and the active linear constraints for the constrained nested logit model are displayed in Figure 18.11.

Figure 18.11 Constrained Nested Logit Estimates
The MDC Procedure
 
Nested Logit Estimates

Parameter Estimates
Parameter DF Estimate Standard
Error
t Value Approx
Pr > |t|
Parameter Label
ttime_L1 1 -0.3572 0.0776 -4.60 <.0001  
INC_L2G1C1 0 1.0000 0      
INC_L2G1C2 0 1.0000 0      
Restrict1 1 -2.1706 8.4098 -0.26 0.7993* Linear EC [ 1 ]
Restrict2 1 3.6573 10.0001 0.37 0.7186* Linear EC [ 2 ]

* Probability computed using beta distribution.


Linearly Independent Active Linear Constraints
1 0 = -1.0000 + 1.0000 * INC_L2G1C1
2 0 = -1.0000 + 1.0000 * INC_L2G1C2