{smcl}
{* Last revised September 05, 2006}{...}
{hline}
help for {hi:goprobit}
{hline}

{title:Maximum-Likelihood Estimation of Generalized Ordered Probit Models}

{p 8 15 2}
	{cmdab:goprobit} {it:depvar} [{it:indepvars}]
	[{it:weight}] [{cmd:if} {it:exp}] [{cmd:in} {it:range}]
	[{cmd:,}
	{cmdab:p:l}
	{cmdab:p:l(}{it:varlist}{cmd:)}
	{cmdab:np:l}
	{cmdab:np:l(}{it:varlist}{cmd:)}
	{cmdab:c:onstraints:(}{it:clist}{cmd:)} {cmdab:r:obust}
	{cmdab:cl:uster:(}{it:varname}{cmd:)}
	{cmdab:l:evel:(}{it:#}{cmd:)}
	{cmdab:sc:ore:(}{it:newvarlist}|{it:stub}{cmd:*)}
	{it:maximize_options} ]
{p_end}

{p 4 4 2}
{cmd:goprobit} shares the features of all estimation commands; see help
{help est}. {cmd:goprobit} typed without arguments redisplays previous
results. {cmd:fweight}s, {cmd:iweight}s, and {cmd:pweight}s are allowed;
see help {help weights}.
{p_end}

{p 4 4 2}
The syntax of {help predict} following {cmd:goprobit} is
{p_end}

{p 8 16 2}
{cmd:predict} [{it:type}] {it:newvarname}({it:s}) [{cmd:if} {it:exp}] [{cmd:in}
{it:range}] [{cmd:,} {it:statistic} {cmdab:o:utcome:(}{it:outcome}{cmd:)} ]
{p_end}

{p 4 4 2}
where {it:statistic} is
{p_end}

{p 8 21 2}
{cmd:p}{space 8}probability (specify one new variable and {cmd:outcome()}
option, or specify k new variables, k = # of outcomes); the default
{p_end}

{p 8 21 2}
{cmd:xb}{space 7}linear prediction ({cmd:outcome()} option required)
{p_end}

{p 8 21 2}
{cmd:stdp}{space 5}S.E. of linear prediction ({cmd:outcome()} option
required)
{p_end}

{p 8 21 2}
{cmd:stddp}{space 4}S.E. of difference in linear predictions ({cmd:outcome()}
option is {cmd:outcome(}{it:outcome1}{cmd:,}{it:outcome2}{cmd:)})
{p_end}

{p 4 4 2}
Note that you specify one new variable with {cmd:xb}, {cmd:stdp}, and
{cmd:stddp} and specify either one or k new variables with {cmd:p}.
{p_end}

{p 4 4 2}
These statistics are available both in and out of sample; type "{cmd:predict}
{it:...} {cmd:if e(sample)} {it:...}" if wanted only for the estimation sample.
{p_end}



{title:Description}

{p 4 4 2}
{cmd:goprobit} is a user-written program that estimates generalized
ordered probit models. The actual values taken on by the dependent variable
are irrelevant except that larger values are assumed to correspond to "higher"
outcomes. This model relaxes the {it:parallel regression} assumption of the standard
ordered probit model; see below and help {help oprobit}. {cmd:goprobit} supports linear
constraints and allows the user to partially relax equal coefficients by specifying
variables in {cmd:npl()} or {cmd:pl()}.
{p_end}

{p 4 4 2}
{cmd:goprobit} is a modified version of Vincent Kang Fu's
{cmd:gologit} and particularly Richard Williams' {cmd:gologit2} programs. The current
version of {cmd:gologit2} allows to estimate the generalized ordered probit model using
the link(probit) option and therefore produces results equivalent to goprobit.
{cmd:goprobit} was written for Stata 8 and many of the references in this
help file are for Stata 8 manuals and commands.
{p_end}



{title:Options}

{p 4 8 2}
{cmd:pl}, {cmd:npl}, {cmd:npl()}, {cmd:pl()} provide alternative means for
imposing or relaxing equal coefficients. Only one may be specified at a time.
{p_end}

{p 8 12 2}
{cmd:pl} specified without parameters constrains all independent variables
to meet the parallel regression assumption. It will produce results that
are equivalent to {cmd:oprobit}.
{p_end}

{p 8 12 2}
{cmd:npl} specified without parameters relaxes the parallel regression
assumption for all explanatory variables. This is the default option.
{p_end}

{p 8 12 2}
{cmd:pl(}{it:varlist}{cmd:)} constrains the specified explanatory variables
to meet the parallel regression assumption. All other variables do not need
to meet the assumption. The variables specified must be a subset of the
explanatory variables.
{p_end}

{p 8 12 2}
{cmd:npl(}{it:varlist}{cmd:)} frees the specified explanatory variables
from meeting the parallel regression assumption. All other explanatory
variables are constrained to meet the assumption. The variables specified
must be a subset of the explanatory variables.
{p_end}

{p 4 8 2}
{cmd:constraints(}{it:clist}{cmd:)} specifies the linear constraints
to be applied during estimation. The default is to perform unconstrained
estimation. Constraints are defined with the {help constraint} command.
{cmd:constraints(1)} specifies that the model is to be constrained
according to constraint 1; {cmd:constraints(1-4)} specifies constraints
1 through 4; {cmd:constraints(1-4,8)} specifies 1 through 4 and 8. Keep
in mind that the {cmd:pl} and {cmd:npl} options work by generating
across-equation constraints, which may affect how any additional constraints
should be specified. When using the {cmd: constraint} command, refer to
equations by their equation #, e.g. #1, #2, etc.
{p_end}

{p 4 8 2}
{cmd:robust} specifies that the Huber/White/sandwich estimator of variance is to
be used in place of the traditional calculation; see
{hi:[U] 23.14 Obtaining robust variance estimates}.
{cmd:robust} combined with {cmd:cluster()} allows observations which are not
independent within cluster (although they must be independent between clusters).
If you specify {cmd:pweight}s, {cmd:robust} is implied.
{p_end}

{p 4 8 2}
{cmd:cluster(}{it:varname}{cmd:)} specifies that the observations are
independent across groups (clusters) but not necessarily within groups.
{it:varname} specifies to which group each observation belongs; e.g.,
{cmd:cluster(personid)} in data with repeated observations on individuals.
{cmd:cluster()} affects the estimated standard errors and variance-covariance
matrix of the estimators (VCE), but not the estimated coefficients.
{cmd:cluster()} can be used with {cmd:pweight}s to produce estimates for
unstratified cluster-sampled data.
{p_end}

{p 4 8 2}
{cmd:level(}{it:#}{cmd:)} specifies the confidence level in percent for the
confidence intervals of the coefficients; see help {help level}.
{p_end}

{p 4 8 2}
{cmd:score(}{it:newvarlist}|{it:stub}{cmd:*)} creates J-1 new variables, where J
is the number of observed outcomes. Each new variable contains the contributions
to the scores for an equation in the model; see {hi:[U] 23.15 Obtaining scores}.
{p_end}

{p 8 8 2}
If {cmd:score(}{it:newvarlist}{cmd:)} is specified, J-1 new variables
must be provided.
{p_end}

{p 8 8 2}
If {cmd:score(}{it:stub}{cmd:*)} is specified, then variables
{it:stub}{cmd:1}, {it:stub}{cmd:2}, ..., {it:stub}{cmd:J-1} will be created.
{p_end}

{p 8 8 2}
The first variable contains {bind:d(ln L_i)/d(x_i B_1)}; the second
variable contains {bind:d(ln L_i)/d(x_i B_2)}; and so on.
{p_end}

{p 4 8 2}
{it:maximize_options} control the maximization process; see help
{help maximize}. You should never have to specify them.
{p_end}



{title:Options for {help predict}}

{p 4 8 2}
{cmd:p}, the default, calculates predicted probabilities.
{p_end}

{p 8 8 2}
If you do not specify the {cmd:outcome()} option, you must specify k
new variables. For instance, say you fitted your model by typing
"{cmd:goprobit happy income health}" and that {cmd:happy} takes on
three values. Then you could type "{cmd:predict p1 p2 p3, p}" to
obtain all three predicted probabilities.
{p_end}

{p 8 8 2}
If you also specify the {cmd:outcome()} option, then you specify one
new variable. Say that {hi:happy} took on values 1, 2, and 3. Then typing
"{cmd:predict p1, p outcome(1)}" would produce the same {hi:p1} as above,
"{cmd:predict p2, p outcome(2)}" the same {hi:p2} as above, etc. If {hi:happy}
took on values 7, 22, and 93, you would specify {cmd:outcome(7)},
{cmd:outcome(22)}, and {cmd:outcome(93)}. Alternatively, you could specify the
outcomes by referring to the equation number ({cmd:outcome(#1)},
{cmd:outcome(#2)}, and {cmd:outcome(#3)}.
{p_end}

{p 4 8 2}
{cmd:xb} calculates the linear prediction. You must also specify the
{cmd:outcome()} option.
{p_end}

{p 4 8 2}
{cmd:stdp} calculates the standard error of the linear prediction. You must
specify option {cmd:outcome()}.
{p_end}

{p 4 8 2}
{cmd:stddp} calculates the standard error of the difference in two linear
predictions. You must specify option {cmd:outcome()}, in this case with two
particular outcomes of interest inside the parentheses; for example,
"{cmd:predict sed, stdp outcome(1,3)}".
{p_end}

{p 4 8 2}
{cmd:outcome()} specifies for which outcome the statistic is to be calculated.
{cmd:equation()} is a synonym for {cmd:outcome()}: it does not matter which one
you use. {cmd:outcome()} and {cmd:equation()} can be specified using (1)
{cmd:#1}, {cmd:#2}, ..., with {cmd:#1} meaning the first category of the
dependent variable, {cmd:#2} the second category, etc.; or (2) values of the
dependent variable.
{p_end}


{title:Remarks}

{p 4 4 2}
The {cmd:oprobit} command included with Stata imposes what is called
the {it:parallel regression assumption}. By default, {cmd:goprobit} relaxes the
parallel regression assumption and allows the effects of the explanatory
variables to vary with the point at which the categories of the dependent
variable are dichotomized. However, if the {cmd:pl} option is specified,
{cmd:goprobit} estimates the standard ordered probit model, e.g. the commands
{cmd:oprobit y x1 x2 x3} and {cmd:goprobit y x1 x2 x3, pl} will produce
equivalent results.
{p_end}

{p 4 4 2}
In practice, the parallel regression assumption is often violated by the data.
Standard advice in such situations is to go to a non-ordinal model,
such as {cmd:mlogit}. Unfortunately, such models do not take into account the
ordinal nature of the dependent variable and therefore cannot be efficient.
{cmd:goprobit} provides an alternative generalized model introduced by Maddala
(1983:46) and Terza (1985). This model possibly relaxes the parallel regression
assumption for some explanatory variables while being maintained for others.
For example, the command {cmd:goprobit y x1 x2 x3, npl(x1)} would relax the
parallel regression assumption for x1 while maintaining it for x2 and x3.
An equivalent command is {cmd:goprobit y x1 x2 x3, pl(x2 x3)} which forces
x2 and x3 to meet the parallel regression assumption while not imposing it on x1.

{p 4 4 2}
More formally, suppose we have an ordinal dependent variable Y
which takes on the values 1, 2, ..., J.  The generalized ordered probit
model estimates a set of coefficients (including one for the constant)
for each of the J - 1 points at which the dependent variable can be
dichotomized.  The probabilities that Y will take on each of the values
1, ..., J is equal to
{p_end}

	P( Y = 1 ) = F( -XB_1 )
	P( Y = j ) = F( -XB_j ) - F( -XB_(j-1) )	j = 2, ..., J - 1
	P( Y = m ) = 1 - F( -XB_(J-1) )

{p 4 4 2}
The generalized ordered probit model uses the normal distribution as
the cumulative distribution F(.), although other distributions may also be
used; see help {help gologit} and help {help gologit2}.
{p_end}

{p 4 4 2}
The standard ordered probit model (estimated by Stata's {cmd:oprobit}
command and by {cmd:goprobit} with the {cmd:pl} option) restricts the B_j
coefficients to be the same for every dividing point j = 1, ..., J-1. The
generalized ordered probit model (estimated in {cmd:goprobit} via the
{cmd:npl()} and {cmd:pl()} options) restricts some B_j coefficients to be the
same for every dividing point while others are free to vary.
{p_end}

{p 4 4 2}
Note that the generalized ordered probit model imposes explicit restrictions
on the parameters. Since probabilities are by definition constrained to be in the
range [0,1], valid combinations must satisfy the following inequalities:
{p_end}

	XB_1 >= XB_2 >= XB_3 ... >= XB_J-1

{p 4 4 2}
The current version of {cmd:goprobit} does not impose these restrictions during
the maximization process. After fitting the model, the user should verify the
validity of the model by calculating predicted probabilities.
See help {help gologit2} and
{browse "http://www.nd.edu/~rwilliam/gologit2/"} for further discussion
on this topic.
{p_end}

{p 4 4 2}
A panel data version of {cmd:goprobit} with random effects can be estimated by
{cmd: regoprob}; see help {help regoprob} if installed.
{p_end}


{title:Examples}

{p 8 12 2}
{cmd:. goprobit happy linc unempl health if male == 1, robust}
{p_end}

{p 8 12 2}
{cmd:. goprobit happy linc unempl health if male == 1, robust npl(linc)}
{p_end}

{p 8 12 2}
{cmd:. goprobit, level(99)}
{p_end}

{p 8 12 2}
{cmd:. predict xb1, xb outcome(#1)}
{p_end}



{title:Author}

{p 5 5}
Stefan Boes{break}
Socioeconomic Institute{break}
Statistics and Empirical Economics Research Group{break}
University of Zurich{break}
boes@sts.unizh.ch{break}
{browse "http://www.unizh.ch/sts/"}
{p_end}



{title:Acknowledgements}

{p 5 5}
Richard Williams of the Notre Dame Department of Sociology wrote {cmd:gologit2}.
Richard Williams kindly gave me permission to use his code of {cmd: gologit2} and
I adapted much of it when programming {cmd: goprobit}. For a more detailed description
of {cmd: gologit2} and its features, see the reference below or help {help gologit2}.
{p_end}



{title:References}

{p 5 5}
Boes, S. and R. Winkelmann (2006) "Ordered Response Models." Allgemeines
Statistisches Archiv 90: 165-179.
{p_end}

{p 5 5}
Fu, V.K. (1998) "Estimating Generalized Ordered Logit Models." Stata Technical
Bulletin 8: 160-164.
{p_end}

{p 5 5}
Long, J.S and J. Freese (2003) "Regression Models for Categorical Dependent
Variables Using Stata", revised edition, Stata Press.
{p_end}

{p 5 5}
Maddala, G. (1983) "Limited-Dependent and Qualitative Variables in Econometrics."
Cambridge University Press: Cambridge.
{p_end}

{p 5 5}
Terza, J. (1985) "Ordered Probit: A Generalization." Communications in Statistics
– A. Theory and Methods 14: 1–11.
{p_end}

{p 5 5}
Williams, R. (2006)  "Generalized Ordered Logit/ Partial Proportional Odds
Models for Ordinal Dependent Variables." The Stata Journal 6(1): 58-82. A pre-publication
version is available at {browse "http://www.nd.edu/~rwilliam/gologit2/gologit2.pdf"}.
{p_end}

{p 5 5}
Winkelmann, R. and S. Boes (2006) "Analysis of Microdata." Springer: Berlin.
{p_end}


{title:Also see}

{p 4 13 2}
Manual:
{hi:[U] 23 Estimation and post-estimation commands},{break}
{hi:[U] 29 Overview of Stata estimation commands}
{p_end}

{p 4 13 2} Online:  help for {help estcom}, {help postest}, {help constraint},
{help oprobit}, {help ologit}, {help gologit}, {help gologit2}, {help regoprob}
{p_end}
