Ordered Probit Regression

The ordered probit model has the form:

orderedprobit

or equivalently,

orderedprobit2

where

phi_inverse
is the inverse of the cumulative standard normal distribution function, often referred to as probit or normit, and phi denotes the cumulative standard normal distribution function.

Ordered Probit Regression with SAS

LOGISTIC Procedure

To fit an ordered probit model in PROC LOGISTIC, use the LINK=NORMIT (or PROBIT) option as:

  proc logistic;
  model y=x1 x2 / link=normit;
  run;
Example 22: SAS Ordered Probit Regression in PROC LOGISTIC

Using the data set CHEESE in Example 19, if you use:

  proc logistic data=cheese;
  freq f;
  model y=x1-x3 / link=normit;
  run;

you will have:

                   Sample Program: Ordered Probit Regression                  

                             The LOGISTIC Procedure

     Data Set: WORK.CHEESE
     Response Variable: Y
     Response Levels: 9
     Number of Observations: 28
     Frequency Variable: F
     Link Function: Normit


                                Response Profile

                           Ordered
                             Value       Y     Count

                                 1       1         7
                                 2       2        10
                                 3       3        19
                                 4       4        27
                                 5       5        41
                                 6       6        28
                                 7       7        39
                                 8       8        25
                                 9       9        12

NOTE: 8 observation(s) having zero frequencies or weights were excluded since
      they do not contribute to the analysis.


                   Score Test for the Equal Slopes Assumption

                   Chi-Square = 15.0251 with 21 DF (p=0.8217)


      Model Fitting Information and Testing Global Null Hypothesis BETA=0

                               Intercept
                 Intercept        and
   Criterion       Only       Covariates    Chi-Square for Covariates

   AIC             875.802       729.391         .
   SC              902.502       766.104         .
   -2 LOG L        859.802       707.391      152.411 with 3 DF (p=0.0001)
   Score              .             .         108.491 with 3 DF (p=0.0001)


                   Analysis of Maximum Likelihood Estimates

                 Parameter   Standard      Wald         Pr >      Standardized
 Variable   DF    Estimate     Error    Chi-Square   Chi-Square     Estimate

 INTERCP1   1      -4.0762     0.2867     202.1202       0.0001              .
 INTERCP2   1      -3.5087     0.2496     197.6200       0.0001              .
 INTERCP3   1      -2.8628     0.2248     162.2226       0.0001              .
 INTERCP4   1      -2.2356     0.2067     117.0124       0.0001              .
 INTERCP5   1      -1.4641     0.1858      62.0947       0.0001              .
 INTERCP6   1      -0.9155     0.1730      28.0144       0.0001              .
 INTERCP7   1      -0.0276     0.1607       0.0296       0.8634              .
 INTERCP8   1       0.8779     0.1841      22.7341       0.0001              .
 X1         1       0.9643     0.2119      20.7122       0.0001       0.418540
 X2         1       2.8618     0.2508     130.2471       0.0001       1.242206
 X3         1       1.9408     0.2296      71.4236       0.0001       0.842421


                             The LOGISTIC Procedure

         Association of Predicted Probabilities and Observed Responses

                   Concordant = 58.4%          Somers' D = 0.512
                   Discordant =  7.2%          Gamma     = 0.781
                   Tied       = 34.4%          Tau-a     = 0.443
                   (18635 pairs)               c         = 0.756

This result shows eight fitted regression lines as:

regcomp
PROBIT Procedure

You can use the SAS PROC PROBIT to fit an ordered probit model:

  proc probit;
  class y;
  model y = x1 x2;
  run;
Example 23: SAS Ordered Probit Regression in PROC PROBIT

Using the data set CHEESE2 in Example 21, you can use:

  proc probit data=cheese2;
  class y;
  model y = x1-x3;
  run;                 

Your SAS output will be:

                   Sample Program: Ordered Probit Regression                 

                                Probit Procedure
                            Class Level Information

                     Class    Levels    Values

                     Y             9    1 2 3 4 5 6 7 8 9

                       Number of observations used = 208


                                Probit Procedure

   Data Set          =WORK.CHEESE2
   Dependent Variable=Y

         Weighted Frequency Counts for the Ordered Response Categories

                                   Level     Count
                                       1         7
                                       2        10
                                       3        19
                                       4        27
                                       5        41
                                       6        28
                                       7        39
                                       8        25
                                       9        12

   Log Likelihood for NORMAL -353.6953428


                                Probit Procedure

          Variable  DF   Estimate  Std Err ChiSquare  Pr>Chi Label/Value

          INTERCPT   1 -4.0761911   0.2868       202  0.0001 Intercept
          X1         1  0.9642503 0.211624    20.761  0.0001
          X2         1 2.86184814  0.24956  131.5057  0.0001
          X3         1 1.94080682 0.230248  71.05121  0.0001
          INTER.2    1 0.56749271 0.166663                              2
          INTER.3    1 1.21337982 0.200722                              3
          INTER.4    1 1.84054882 0.216171                              4
          INTER.5    1 2.61204661 0.229904                              5
          INTER.6    1 3.16070252 0.241469                              6
          INTER.7    1 4.04855742 0.263792                              7
          INTER.8    1 4.95412966 0.298786                              8

This result shows eight fitted regression lines as:

regcomp2

which are the same results as we obtained in Example 22.

Example 24: Predicted Probability Computation

Predicted probability computation can be easily obtained using:

  proc probit data=cheese2;
  class y;
  model y = x1-x3;
  output out=prob2 prob=phat;
  run;
  proc print data=prob2;
  run;

As a result, you will have:

                   Sample Program: Ordered Probit Regression                 

                OBS    X1    X2    X3    Y    _LEVEL_      PHAT

                  1     1     0     0    3       1       0.00093
                  2     1     0     0    3       2       0.00547
                  3     1     0     0    3       3       0.02881
                  4     1     0     0    3       4       0.10179
                  5     1     0     0    3       5       0.30857
                  6     1     0     0    3       6       0.51945
                  7     1     0     0    3       7       0.82552
                  8     1     0     0    3       8       0.96728
                                       .
                                       .
               1657     0     0     0    9       1       0.00002
               1658     0     0     0    9       2       0.00023
               1659     0     0     0    9       3       0.00210
               1660     0     0     0    9       4       0.01269
               1661     0     0     0    9       5       0.07158
               1662     0     0     0    9       6       0.17997
               1663     0     0     0    9       7       0.48898
               1664     0     0     0    9       8       0.81001

Next: Models for Unordered Multiple Choices
Prev: Ordered Logit Regression
Up: Models for Ordered Multiple Choices