Thanks, Richard, that's *really* helpful. The only thing I would add is
that another reason my test result vs. the test result from -omodel-
differ is that I used -suest-, which means it was a heterosk-robust Wald
test vs. -omodel-'s non-robust approximate LR test.
Your use of the -coef- option of -test- is very nifty. If I understand
what you've said and what the manual says about -coef- correctly:
(1) -gologit2- imposes during the estimation the one-step constraints
that the cutoffs are ordered.
(2) Separate -probit-s followed by -test- with the -coef- option in
effect imposes asymptotically equivalent two-step constraints that the
cutoffs are ordered.
Very nifty!
Cheers,
Mark
> -----Original Message-----
> From: [email protected]
> [mailto:[email protected]] On Behalf Of
> Richard Williams
> Sent: 31 October 2007 22:16
> To: [email protected]; [email protected]
> Subject: RE: st: Test of ordered probit vs ordinary probits
>
> At 02:43 PM 10/31/2007, Schaffer, Mark E wrote:
> >Thanks for all this. My motivation for asking, though, was
> partly to
> >see if I understood the FAQ and how these estimations work. Put
> >another way, I suspect that the end of Bill's FAQ should be changed
> >from
> >
> >"with the constraint that the cofficients, but not the
> INTERCEPTS, are
> >equal."
> >
> >to
> >
> >"with the constraints that the cofficients, but not the
> INTERCEPTS, are
> >equal, and that /cut1 < /cut2."
>
> A lot of output follows - so the executive summary is that
> (a) your rephrasing of Bill's statement is unnecessary
> because the equality constraint on the coefficients implies
> the constraint you state for the cut points, and (b) your
> test is right, but you need a better data set than auto to
> illustrate it.
>
> (a) If the coefficients are equal, I believe the relationship
> you specify for the cutpoints has to follow. The way you are
> collapsing the ordinal var, the cutpoint has to get higher
> and higher with each of the different collapses if you force
> the coefficients to stay the same. Slightly tweaking your
> original example,
>
> . test [probit34]turn=[probit45]turn, accum coef
>
> ( 1) [probit12]turn - [probit23]turn = 0
> ( 2) [probit23]turn - [probit34]turn = 0
> ( 3) [probit34]turn - [probit45]turn = 0
>
> chi2( 3) = 14.82
> Prob > chi2 = 0.0020
>
>
> Constrained coefficients
>
> --------------------------------------------------------------
> ----------------
> | Robust
> | Coef. Std. Err. z P>|z|
> [95% Conf. Interval]
> -------------+------------------------------------------------
> ----------
> -------------+------
> probit12 |
> turn | -.0848508 .0191134 -4.44 0.000
> -.1223123 -.0473893
> _cons | 5.147589 .786685 6.54 0.000
> 3.605715 6.689463
> -------------+------------------------------------------------
> ----------
> -------------+------
> probit23 |
> turn | -.0848508 .0191134 -4.44 0.000
> -.1223123 -.0473893
> _cons | 4.611418 .7877609 5.85 0.000
> 3.067435 6.155401
> -------------+------------------------------------------------
> ----------
> -------------+------
> probit34 |
> turn | -.0848508 .0191134 -4.44 0.000
> -.1223123 -.0473893
> _cons | 3.105473 .778709 3.99 0.000
> 1.579232 4.631715
> -------------+------------------------------------------------
> ----------
> -------------+------
> probit45 |
> turn | -.0848508 .0191134 -4.44 0.000
> -.1223123 -.0473893
> _cons | 2.057018 .7939805 2.59 0.010
> .5008449 3.613191
> --------------------------------------------------------------
> ----------------
>
> Note the decreasing magnitude of the intercepts (which would
> correspond to increasing cutpoints in an oprobit).
>
> (b) Also, I think part of the problem with your original
> example is that auto is a crummy data set for ordinal
> regression; the data are way too thin with the first few
> categories. This example works much better:
>
> use
> "http://www.indiana.edu/~jslsoc/stata/spex_data/ordwarm2.dta",
> clear drop if warm==.
> gen warm_12=warm>1
> gen warm_23=warm>2
> gen warm_34=warm>3
> qui probit warm_12 yr89
> est store probit12
> qui probit warm_23 yr89
> est store probit23
> qui probit warm_34 yr89
> est store probit34
> suest probit12 probit23 probit34
> test [probit12]yr89=[probit23]yr89
> test [probit23]yr89=[probit34]yr89, accum coef omodel probit warm yr89
>
> Here is the output from the last few commands.
>
> . test [probit23]yr89=[probit34]yr89, accum coef
>
> ( 1) [probit12]yr89 - [probit23]yr89 = 0
> ( 2) [probit23]yr89 - [probit34]yr89 = 0
>
> chi2( 2) = 13.15
> Prob > chi2 = 0.0014
>
>
> Constrained coefficients
>
> --------------------------------------------------------------
> ----------------
> | Robust
> | Coef. Std. Err. z P>|z|
> [95% Conf. Interval]
> -------------+------------------------------------------------
> ----------
> -------------+------
> probit12 |
> yr89 | .363189 .045948 7.90 0.000
> .2731326 .4532454
> _cons | .9988136 .037007 26.99 0.000
> .9262812 1.071346
> -------------+------------------------------------------------
> ----------
> -------------+------
> probit23 |
> yr89 | .363189 .045948 7.90 0.000
> .2731326 .4532454
> _cons | -.0067555 .0321153 -0.21 0.833
> -.0697003 .0561892
> -------------+------------------------------------------------
> ----------
> -------------+------
> probit34 |
> yr89 | .363189 .045948 7.90 0.000
> .2731326 .4532454
> _cons | -1.063885 .0365802 -29.08 0.000
> -1.135581 -.9921892
> --------------------------------------------------------------
> ----------------
>
> . omodel probit warm yr89
>
> Iteration 0: log likelihood = -2995.7704
> Iteration 1: log likelihood = -2964.0161
> Iteration 2: log likelihood = -2964.0136
>
> Ordered probit estimates Number of
> obs = 2293
> LR chi2(1)
> = 63.51
> Prob >
> chi2 = 0.0000
> Log likelihood = -2964.0136 Pseudo R2
> = 0.0106
>
> --------------------------------------------------------------
> ----------------
> warm | Coef. Std. Err. z P>|z|
> [95% Conf. Interval]
> -------------+------------------------------------------------
> ----------
> -------------+------
> yr89 | .3646929 .045823 7.96 0.000
> .2748813 .4545044
> -------------+------------------------------------------------
> ----------
> -------------+------
> _cut1 | -1.002802 .0370072 (Ancillary parameters)
> _cut2 | .0070519 .0321106
> _cut3 | 1.067839 .0366947
> --------------------------------------------------------------
> ----------------
>
> Approximate likelihood-ratio test of equality of coefficients
> across response categories:
> chi2(2) = 13.49
> Prob > chi2 = 0.0012
>
>
> So, you see, you get almost the exact same test stat (13.15 versus
> 13.49) and almost the exact same coefficients. I think the
> reason they are not exactly equal is because you are doing a
> Wald test while omodel does an approximate LR test.
>
> For good measure, doing this with a Wald test in gologit2,
>
> . quietly gologit2 warm yr89, link (p) store(unconstrained)
>
> . quietly test [#1]yr89 = [#2]yr89
>
> . test [#2]yr89 = [#3]yr89, accum coef
>
> ( 1) [1SD]yr89 - [2D]yr89 = 0
> ( 2) [2D]yr89 - [3A]yr89 = 0
>
> chi2( 2) = 13.16
> Prob > chi2 = 0.0014
>
>
> Constrained coefficients
>
> --------------------------------------------------------------
> ----------------
> | Coef. Std. Err. z P>|z|
> [95% Conf. Interval]
> -------------+------------------------------------------------
> ----------
> -------------+------
> 1SD |
> yr89 | .3631891 .045938 7.91 0.000
> .2731523 .4532259
> _cons | .9988135 .0369989 27.00 0.000
> .926297 1.07133
> -------------+------------------------------------------------
> ----------
> -------------+------
> 2D |
> yr89 | .3631891 .045938 7.91 0.000
> .2731523 .4532259
> _cons | -.0067556 .0321083 -0.21 0.833
> -.0696866 .0561755
> -------------+------------------------------------------------
> ----------
> -------------+------
> 3A |
> yr89 | .3631891 .045938 7.91 0.000
> .2731523 .4532259
> _cons | -1.063885 .0365722 -29.09 0.000
> -1.135565 -.9922048
> --------------------------------------------------------------
> ----------------
>
> i.e. you get virtually identical results with gologit2 that
> you get by running all the probits separately.
>
> The corresponding gologit2 LR test is
>
> . quietly gologit2 warm yr89, link (p) pl store(constrained)
>
> . lrtest unconstrained constrained
>
> Likelihood-ratio test LR
> chi2(2) = 13.45
> (Assumption: constrained nested in unconstrained) Prob >
> chi2 = 0.0012
>
> The 13.45 is virtually identical to omodel's 13.49.
>
> Hope this is semi-clear!
>
> -------------------------------------------
> Richard Williams, Notre Dame Dept of Sociology
> OFFICE: (574)631-6668, (574)631-6463
> HOME: (574)289-5227
> EMAIL: [email protected]
> WWW: http://www.nd.edu/~rwilliam
>
> *
> * For searches and help try:
> * http://www.stata.com/support/faqs/res/findit.html
> * http://www.stata.com/support/statalist/faq
> * http://www.ats.ucla.edu/stat/stata/
>
*
* For searches and help try:
* http://www.stata.com/support/faqs/res/findit.html
* http://www.stata.com/support/statalist/faq
* http://www.ats.ucla.edu/stat/stata/