non-linear ordered probit?

  • Follow


I need to run a nonlinear ordered probit model.

I have been using proc logistic (link=normit) to predict self-rated health
(5 ordered categories). However, I would now like to test a more
complicated equation that is nonlinear, so I need to be able to type in the
equation myself. It does not look like can I do this using proc logistic or
proc probit. If I use proc NLIN, is there a way to tell SAS to use the
ordered probit function? If not, perhaps I will need to learn IML and use
that to estimate my equation?

Thank you�-I�d appreciate any advice. Please let me know if my question
requires clarification.

Susan Stewart

P.S. A colleague suggested that if I were using Stata I would need to use
ML rather than oprobit or NL. However I would prefer to use SAS if
possible, since I do not have experience with Stata.
0
Reply sstewart1 (5) 10/3/2003 7:36:58 PM

Susan,

I would suggest the procedure NLMIXED.  The NLMIXED procedure
can optimize most maximum likelihood models relatively easily.
For the ordered probit with three response levels (1,2,3) for
response variable Y, a single predictor variable X, and a
Normal CDF, one could code a linear model probit solution as

proc nlmixed;
  eta1 = b0 + b1*x;
  eta2 = a1 + eta1;

  p_yLE1 = cdf('Normal', eta1);
  p_yLE2 = cdf('Normal', eta2);
  p_yLE3 = 1;

  p_yEQ1 = p_yLE1;
  p_yEQ2 = p_yLE2 - p_yLE1;
  p_yEQ3 = p_yLE3 - p_yLE2;

  if Y=1 then loglike=log(p_yEQ1);  else
  if Y=2 then loglike=log(p_yEQ2);  else
  if Y=3 then loglike=log(p_yEQ3);

  model Y ~ general(loglike);
run;


I have verified results obtained using the above code against
results obtained from PROC PROBIT.  Now the problem which you
state is that you want to employ a nonlinear function for eta1.
All that is necessary is that you construct the appropriate
nonlinear function in eta1.  Voila!  You have the ML
estimator for your nonlinear probit model.  Very simple indeed!

Dale


--- Susan Stewart <sstewart@NBER.ORG> wrote:
> I need to run a nonlinear ordered probit model.
>
> I have been using proc logistic (link=normit) to predict self-rated
> health
> (5 ordered categories). However, I would now like to test a more
> complicated equation that is nonlinear, so I need to be able to type
> in the
> equation myself. It does not look like can I do this using proc
> logistic or
> proc probit. If I use proc NLIN, is there a way to tell SAS to use
> the
> ordered probit function? If not, perhaps I will need to learn IML and
> use
> that to estimate my equation?
>
> Thank you�-I�d appreciate any advice. Please let me know if my
> question
> requires clarification.
>
> Susan Stewart
>
> P.S. A colleague suggested that if I were using Stata I would need to
> use
> ML rather than oprobit or NL. However I would prefer to use SAS if
> possible, since I do not have experience with Stata.


=====
---------------------------------------
Dale McLerran
Fred Hutchinson Cancer Research Center
mailto: dmclerra@fhcrc.org
Ph:  (206) 667-2926
Fax: (206) 667-5977
---------------------------------------

__________________________________
Do you Yahoo!?
The New Yahoo! Shopping - with improved product search
http://shopping.yahoo.com
0
Reply stringplayer_2 (1472) 10/3/2003 10:11:09 PM


1 Replies
32 Views

(page loaded in 0.793 seconds)


Reply: