The MDC Procedure

NEST LEVEL( level-number )= ( choices@choice, ...) ;

The NEST statement is used when one choice variable contains all possible alternatives and the TYPE=NLOGIT option is specified. The decision tree is constructed based on the NEST statement. When the choice set is specified using multiple CHOICE= variables in the MODEL statement, the NEST statement is ignored.

Consider the following eight choices that are nested in a three-level tree structure.

```   Level 1     Level 2     Level 3    top
1           1           1        1
2           1           1        1
3           1           1        1
4           2           1        1
5           2           1        1
6           2           1        1
7           3           2        1
8           3           2        1
```

You can use the following NEST statement to specify the tree structure displayed in Figure 17.22:

```   nest level(1) = (1 2 3 @ 1, 4 5 6 @ 2, 7 8 @ 3),
level(2) = (1 2 @ 1, 3 @ 2),
level(3) = (1 2 @ 1);
```

Figure 17.22 A Three-Level Tree

Note that the decision tree is constructed based on the sequence of first-level choice set specification. Therefore, specifying another order at Level 1 builds a different tree. The following NEST statement builds the tree displayed in Figure 17.23:

```   nest level(1) = (4 5 6 @ 2, 1 2 3 @ 1, 7 8 @ 3),
level(2) = (1 2 @ 1, 3 @ 2),
level(3) = (1 2 @ 1);
```

Figure 17.23 An Alternative Three-Level Tree

However, the NEST statement with a different sequence of choice specification at higher levels builds the same tree as displayed in Figure 17.22 if the sequence at the first level is the same:

```   nest level(1) = (1 2 3 @ 1, 4 5 6 @ 2, 7 8 @ 3),
level(2) = (3 @ 2, 1 2 @ 1),
level(3) = (1 2 @ 1);
```

The following specifications are equivalent:

```   nest level(2) = (3 @ 2, 1 2 @ 1)

nest level(2) = (3 @ 2, 1 @ 1, 2 @ 1)

nest level(2) = (1 @ 1, 2 @ 1, 3 @ 2)
```

Since the MDC procedure contains multiple cases for each individual, it is important to keep the data sequence in the proper order. Consider the four-choice multinomial model with one explanatory variable cost:

```   pid   choice  y   cost
1      1     1    10
1      2     0    25
1      3     0    20
1      4     0    30
2      1     0    15
2      2     0    22
2      3     1    16
2      4     0    25
```

The order of data needs to correspond to the value of choice. Therefore, the following data set is equivalent to the preceding data:

```   pid   choice  y   cost
1      2     0    25
1      3     0    20
1      1     1    10
1      4     0    30
2      3     1    16
2      4     0    25
2      1     0    15
2      2     0    22
```

The two-level nested model is estimated with a NEST statement, as follows:

```   proc mdc data=one type=nlogit;
model y = cost / choice=(choice);
id pid;
utility(1,) = cost;
nest level(1) = (1 2 3 @ 1, 4 @ 2),
level(2) = (1 2 @ 1);
run;
```

The tree is constructed as in Figure 17.24.

Figure 17.24 A Two-Level Tree

Another model is estimated if you specify the decision tree as in Figure 17.25. The different nested tree structure is specified in the following SAS statements:

```   proc mdc data=one type=nlogit;
model y = cost / choice=(choice);
id pid;
utility u(1,) = cost;
nest level(1) = (1 @ 1, 2 3 4 @ 2),
level(2) = (1 2 @ 1);
run;
```

Figure 17.25 An Alternate Two-Level Tree

 Previous Page | Next Page | Top of Page