Warning about including a variable in a level 2 or higher utility function for the nested logit model in PROC MDC


The values of each level h utility function variable in the input data set should be constant across all primitive alternatives below each level h node for each ID. If this is not the case, then

(1) PROC MDC only uses the values of the utility function variable for the primitive alternatives that come first under each node for which the utility function applies and

(2) PROC MDC does not issue an ERROR or a WARNING in the output or in the SAS log to bring this to the attention of the user.

For example, suppose the NEST and UTILITY specifications for a two level nested logit model are as follows:

utility u(1, 3 4 @ 2) = x1 x2,
u(1, 1 2 @ 1) = x3 x4,
u(2, 1 2) = x5;
nest level(1)=(1 2 @ 1, 3 4 @ 2),
level(2)=(1 2 @ 1); 

Also suppose that for an ID, the following input data is available:

  id mode decision   x1    x2    x3    x4    x5
  1  1    0          1.1   2.5   3.0   4.4   5.3
  1  2    0          1.3   2.1   3.7   4.3   5.1
  1  3    0          1.8   2.1   3.9   4.9   5.7
  1  4    1          1.6   2.9   3.3   4.2   5.9

Then PROC MDC only uses the values of the level 2 utility function variable x5 for alternatives 1 and 3, since these are the first primitive alternatives under level 2 nodes 1 and 2 respectively.