help for gologit2

Generalized Ordered Logit Models for Ordinal Dependent Variables

gologit2 depvar [indepvars] [weight] [if exp] [in range] [, pl pl(varlist) npl npl(varlist) autofit autofit(alpha) link(logit/probit/cloglog/loglog/cauchit) force lrforce gamma gamma(name) nolabel mlstart store(name) constraints(clist) robust cluster(varname) level(#) or log v1 svy svy_options maximize_options ]

where svy_options are

subpop(subpop_spec) nosvyadjust prob ci deff deft meff meft

and subpop_spec is

[varname] [if exp] [in range] [, srssubpop ]

gologit2 shares the features of all estimation commands; see help est. gologit2 typed without arguments redisplays previous results. The following options may be given when redisplaying results:

gamma gamma(name) store(name) or level(#) prob ci deff deft

gologit2 works under both Stata 8.2 and Stata 9 or higher. If using Stata 9, the by, nestreg, stepwise, xi, and possibly other prefix commands are allowed; see prefix. The svy prefix command is NOT currently supported; use the svy option instead.

fweights, iweights, and pweights are allowed; see help weights.

The syntax of predict following gologit2 is

predict [type] newvarname(s) [if exp] [in range] [, statistic outcome(outcome) ]

where statistic is

p probability (specify one new variable and outcome() option, or specify k new variables, k = # of outcomes); the default xb linear prediction (outcome() option required) stdp S.E. of linear prediction (outcome() option required) stddp S.E. of difference in linear predictions (outcome() option is outcome(outcome1,outcome2))

Note that you specify one new variable with xb, stdp, and stddp and specify either one or k new variables with p.

These statistics are available both in and out of sample; type "predict ... if e(sample) ..." if wanted only for the estimation sample.


gologit2 is a user-written program that estimates generalized ordered logit models for ordinal dependent variables. The actual values taken on by the dependent variable are irrelevant except that larger values are assumed to correspond to "higher" outcomes. Up to 20 outcomes are allowed. gologit2 is inspired by Vincent Fu's gologit program and is backward compatible with it but offers several additional powerful options.

A major strength of gologit2 is that it can also estimate three special cases of the generalized model: the proportional odds/parallel lines model, the partial proportional odds model, and the logistic regression model. Hence, gologit2 can estimate models that are less restrictive than the proportional odds /parallel lines models estimated by ologit (whose assumptions are often violated) but more parsimonious and interpretable than those estimated by a non-ordinal method, such as multinomial logistic regression (i.e. mlogit). The autofit option greatly simplifies the process of identifying partial proportional odds models that fit the data.

An alternative but equivalent parameterization of the model that has appeared in the literature is reported when the gamma option is selected. Other key advantages of gologit2 include support for linear constraints (making it possible to use gologit2 for constrained logistic regression), survey data estimation, and the computation of estimated probabilities via the predict command.

Also, if the user considers them more appropriate for their data, probit, complementary log-log, log-log and cauchit links can be used instead of logit by specifying the link option, e.g. link(l) for logit (the default), link(p) for probit, link(c) for complementary log-log, link(ll) for log-log, and link(ca) for cauchit.

gologit2 works under both Stata 8.2 and Stata 9 or higher. Syntax is the same for both versions; but if you are using Stata 9 or higher, gologit2 supports several prefix commands, including by, nestreg, xi and sw. Stata 9's svy prefix command is NOT currently supported; use the svy option instead.

If you want to estimate marginal effects after gologit2, it is recommended that you install the most current versions of the user-written mfx2 and/or margeff commands, both available from SSC. These commands are generally easier to use than mfx and make it possible to output the results using table-formatting programs like outreg2 and estout.

More information on the statistical theory behind gologit2 as well as several worked examples and a troubleshooting FAQ can be found at http://www3.nd.edu/~rwilliam/gologit2/.

Warning & Error Messages

Note: A trouble-shooting FAQ with additional information can be found at http://www3.nd.edu/~rwilliam/gologit2/tsfaq.html

An oddity of gologit/goprobit models is that it is possible to get negative predicted probabilities. McCullaph & Nelder discuss this in Generalized Linear Models, 2nd edition, 1989, p. 155: "The usefulness of non-parallel regression models is limited to some extent by the fact that the lines must eventually intersect. Negative fitted values are then unavoidable for some values of x, though perhaps not in the observed range. If such intersections occur in a sufficiently remote region of the x-space, this flaw in the model need not be serious."

This seems to be a fairly rare occurrence, and when it does occur there are often other problems with the model, e.g. the model is overly complicated and/or there are very small Ns for some categories of the dependent variable. Combining categories or simplifying the model often helps. gologit2 will give a warning message whenever any in-sample predicted probabilities are negative. If it is just a few cases, it may not be worth worrying about, but if there are many cases you may wish to modify your model, data, or sample, or use a different statistical technique altogether.


pl, npl, npl(), pl(), autofit and autofit() provide alternative means for imposing or relaxing the proportional odds/ parallel lines assumption. Only one may be specified at a time.

autofit(alpha) uses an iterative process to identify the partial proportional odds model that best fits the data. alpha is the desired significance level for the tests; alpha must be greater than 0 and less than 1. If autofit is specified without parameters, the default alpha-value is .05. Note that, the higher alpha is, the easier it is to reject the parallel lines assumption, and the less parsimonious the model will tend to be. This option can take a little while because several models may need to be estimated. The use of autofit is highly recommended but the other options provide more control over the final model if the user wants it.

pl specified without parameters constrains all independent variables to meet the proportional odds/ parallel lines assumption. It will produce results that are equivalent to ologit.

npl specified without parameters relaxes the proportional odds/ parallel lines assumption for all explanatory variables. This is the default option and presents results equivalent to the original gologit.

pl(varlist) constrains the specified explanatory variables to meet the proportional odds/ parallel lines assumption. All other variable effects do not need to meet the assumption. The variables specified must be a subset of the explanatory variables.

npl(varlist) frees the specified explanatory variables from meeting the proportional odds/ parallel lines assumption. All other explanatory variables are constrained to meet the assumption. The variables specified must be a subset of the explanatory variables.

link(logit/probit/cloglog/loglog/cauchit) specifies the link function to be used. The legal values are link(logit), link(probit), link(cloglog), link(loglog), and link(cauchit), which can be abbreviated as link(l), link(p), link(c), link(ll) and link(ca). link(logit) is the default if the option is omitted.

The following advice is adapted from Norusis (2005, p. 84): Probit and logit models are reasonable choices when the changes in the cumulative probabilities are gradual. If there are abrupt changes, other link functions should be used. The log-log link may be a good model when the cumulative probabilities increase from 0 fairly slowly and then rapidly approach 1. If the opposite is true, namely that the cumulative probability for lower scores is high and the approach to 1 is slow, the complementary log-log link may describe the data. The cauchit distribution has tails that are bigger than the normal distributionís, hence the cauchit link may be useful when you have more extreme values in either direction.

NOTE: Programs differ in the names used for these latter two links. Stata's loglog link corresponds to SPSS PLUM's cloglog link; and Stata's cloglog link is called nloglog in SPSS.

NOTE: Post-estimation commands that work with this program may support some links but not others. Check the program documentation to be sure it works correctly with the link you are using. For example, post-estimation commands that work with the original gologit will often work with this program, but only if you are using the logit link.

force can be used to force gologit2 to issue only warning messages in some situations when it would normally give a fatal error:

By default, the dependent variable can have a maximum of 20 categories. A variable with more categories than that is probably a mistaken entry by the user, e.g. a continuous variable has been specified rather than an ordinal one. But, if your dependent variable really is ordinal with more than 20 categories, force will let gologit2 analyze it (although other practical limitations, such as small sample sizes within categories, may keep it from coming up with a final solution.)

Also, variables specified in npl(varlist) and pl(varlist) are required to be a subset of the explanatory variables. However, prefix commands like sw and nestreg estimate models that may use only a subset of the X variables, and those subsets may not include all the variable specified in the npl/pl varlists. Using force will allow model estimation to continue in those cases.

Obviously, you should only use force when you are confident that you are not making a mistake. force does not always work in Stata versions before 9.0.

lrforce forces Stata to report a Likelihood Ratio Statistic under certain conditions when it ordinarily would not. Some types of constraints can make a Likelihood Ratio chi-square test invalid. Hence, to be safe, Stata reports a Wald statistic whenever constraints are used. But, Likelihood Ratio statistics should be correct for the types of constraints imposed by the pl and npl commands. Note that the lrforce option will be ignored when robust standard errors are specified either directly or indirectly, e.g. via use of the robust or svy options. Use this option with caution if you specify other constraints since these may make a LR chi- square statistic inappropriate.

store(name) causes the command estimates store name to be executed when gologit2 finishes. This is useful for when you wish to estimate a series of models and want to save the results. See help estimates.

gamma displays an alternative but equivalent parameterization of the partial proportional odds model used by Peterson and Harrell (1990) and Lall et al (2002). Under this parameterization, there is one Beta coefficient and M-2 Gamma coefficients for each explanatory variable, where M = the number of categories for Y. The gammas indicate the extent to which the proportional odds assumption is violated by the variable, i.e. when the gammas do not significantly differ from 0 the proportional odds assumption is met. Advantages of this parameterization include the fact that it is more parsimonious than the default layout. In addition, by examining the test statistics for the Gammas, you can get a feel for which variables meet the proportionality assumption and which do not.

gamma(name) causes the gamma estimates to be stored as name, e.g. g(gamma1) would store the gamma estimates under the name gamma1. This makes the gamma results easily usable with post- estimation table formatting commands like outreg2 and estout. Do NOT try to make the gamma results active and then use other post-estimation commands, e.g. predict or test. Such commands either will not work or, if they do work, may give incorrect results. Note that only the variances and standard errors of the gamma estimates are correct; all the covariances of the estimates are set equal to zero.

nolabel causes the equations to be named eq1, eq2, etc. The default is to use the first 32 characters of the value labels and/or the values of Y as the equation labels. Note that some characters cannot be used in equation names, e.g. the space ( ), the period (.), the dollar sign ($), and the colon(:), and will be replaced with the underscore (_) character. Square brackets ([]) and parentheses will be replaced with curly brackets ({}). The default behavior works well when the value labels are short and descriptive. It may not work well when value labels are very long and/or include characters that have to be changed. If the printout looks unattractive and/or you are getting strange errors, try changing the value labels of Y or else use the nolabel option.

mlstart uses an alternative method for computing start values. This method is slower but sometimes surer. This option shouldn't be necessary but it can be used if the program is having trouble for unclear reasons or if you want to confirm that the program is working correctly.

v1 causes gologit2 to return results in a format that is consistent with gologit 1.0. This may be useful/ necessary for post-estimation commands that were written specifically for gologit. However, post-estimation commands written for gologit2 may not work correctly if v1 is specified. The v1 option only works when using link(logit).

log displays the iteration log. By default it is suppressed.

or reports the estimated coefficients transformed to relative odds ratios, i.e., exp(b) rather than b; see [R] ologit for a description of this concept. Options rrr, eform, irr and hr produce identical results (labeled differently) and can also be used. It is up to the user to decide whether the exp(b) transformation makes sense given the link function used, e.g. it probably doesn't make sense when using the probit link.

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

robust specifies that the Huber/White/sandwich estimator of variance is to be used in place of the traditional calculation. robust combined with cluster() allows observations which are not independent within cluster (although they must be independent between clusters). If you specify pweights, robust is implied.

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

level(#) specifies the confidence level in percent for the confidence intervals of the coefficients; see help level.

maximize_options control the maximization process; see help maximize. You should never have to specify most of these. However, the difficult option can sometimes be useful with models that are running very slowly or not converging at all.

Additional Options for Survey Data Estimation

Stata 9's svy prefix command is not currently supported. The svy option accomplishes most of the same things. svy indicates that gologit2 is to pick up the svy settings set by svyset and use the robust variance estimator. Thus, this option requires the data to be svyset; see help svyset. svy may not be supplied with weights or the strata(), psu(), fpc(), or cluster() options. When using svy estimation, Use of if or in restrictions will not produce correct variance estimates for subpopulations in many cases. To compute estimates for subpopulations, use the subpop() option. A typical command using the svy option would look something like

. gologit2 health female black age age2, autofit svy

The following options are available when the svy option has been specified. If svy has not been specified, use of these options will produce an error.

subpop(subpop_spec) specifies that estimates be computed for the single subpopulation identified in subpop_spec. subpop_spec is

[varname] [if exp] [in range] [, srssubpop ]

Thus the subpopulation is defined by the observations for which varname!=0 that also meet the if and in conditions. Typically, varname=1 defines the subpopulation and varname=0 indicates observations not belonging to the subpopulation. For observations whose subpopulation status is uncertain, varname should be set to missing.

srssubpop requests that deff and deft be computed using an estimate of simple-random-sampling variance for sampling within a subpopulation. If srssubpop is not specified, deff and deft are computed using an estimate of simple-random-sampling variance for sampling from the entire population. Typically, srssubpop would be given when computing subpopulation estimates by strata or by groups of strata.

nosvyadjust specifies that the model Wald test be carried out as W/k distributed F(k,d), where W is the Wald test statistic, k is the number of terms in the model excluding the constant, d = total number of sampled PSUs minus total number of strata, and F(k,d) is an F distribution. By default, an adjusted Wald test is conducted: (d-k+1)W/(kd) distributed F(k,d-k+1). Use of the nosvyadjust option is not recommended.

prob requests that the t statistic and p-value be displayed. The degrees of freedom for the t are d = total number of sampled PSUs minus the total number of strata (regardless of the number of terms in the model). If no display options are specified then, by default, the t statistic and p-value are displayed.

ci requests that confidence intervals be displayed. If no display options are specified then, by default, confidence intervals are displayed.

deff requests that the design-effect measure deff be displayed.

deft requests that the design-effect measure deft be displayed.

meff requests that the meff measure of misspecification effects be displayed. This option must be specified at the time of the initial estimation.

meft requests that the meft measure of misspecification effects be displayed. This option must be specified at the time of the initial estimation.

Options for predict

p, the default, calculates predicted probabilities.

If you do not also specify the outcome() option, you must specify k new variables. For instance, say you fitted your model by typing "gologit2 insure age male" and that insure takes on three values. Then you could type "predict p1 p2 p3, p" to obtain all three predicted probabilities.

If you also specify the outcome() option, then you specify one new variable. Say that insure took on values 1, 2, and 3. Then typing "predict p1, p outcome(1)" would produce the same p1 as above, "predict p2, p outcome(2)" the same p2 as above, etc. If insure took on values 7, 22, and 93, you would specify outcome(7), outcome(22), and outcome(93). Alternatively, you could specify the outcomes by referring to the equation number (outcome(#1), outcome(#2), and outcome(#3), or, if the variable values are labeled, you can do something like outcome(low), outcome(medium), and outcome(high).

If you do not specify outcome(), p (with one new variable specified), xb, and stdp assume outcome(#1). You must specify outcome() with the stddp option.

xb calculates the linear prediction. You should also specify the outcome() option. Default is outcome(#1).

outcome() specifies for which outcome the statistic is to be calculated. equation() is a synonym for outcome(): it does not matter which you use. outcome() and equation() can be specified using (1) #1, #2, ..., with #1 meaning the first category of the dependent variable, #2 the second category, etc.; (2) values of the dependent variable; or (3) the value labels (if any) of the dependent variable.

stdp calculates the standard error of the linear prediction. You should also specify the outcome() option. Default is outcome(#1).

stddp calculates the standard error of the difference in two linear predictions. You must specify option outcome() and in this case you specify the two particular outcomes of interest inside the parentheses; for example, "predict sed, stddp outcome(1,3)".

Some cautions about using gologit2 with the Stata 9 prefix commands

In general, gologit2 seems to work well with Stata 9's prefix commands, e.g. xi, nestreg. There are, however, some combinations of prefix commands and gologit2 options that can be problematic that users should be aware of.

The sw and nestreg prefix commands should work fine with the pl and npl options. However, they may produce error messages and/or unexpected results when combined with the autofit, autofit(alpha), npl(varlist) or pl(varlist) options. For example, the submodels estimated by nestreg may not include all the variables specified in pl(varlist), resulting in a fatal error message. You can override this error by using the force option. sw and autofit would be an especially questionable combination since both stepwise selection of variables and stepwise selection of constraints would be going on.

Other than the above, gologit2 will hopefully work fine in most common situations where prefix commands are used. However, there are many possible esoteric combinations of prefix commands and gologit2 options and gologit2 is not guaranteed to be problem-free with all of them.


Example 1. Proportional Odds/ Parallel Lines Assumption Violated. Long and Freese (2003) present data from the 1977/ 1989 General Social Survey. Respondents are asked to evaluate the following statement: "A working mother can establish just as warm and secure a relationship with her child as a mother who does not work." Responses were coded as 1 = Strongly Disagree (1SD), 2 = Disagree (2D), 3 = Agree (3A), and 4 = Strongly Agree (4SA). We can do a global test of the proportional odds assumption by estimating a model in which no variables are constrained to meet the assumption and contrasting it with a model in which all are so constrained (the latter is equivalent to the ologit model).

. use http://www.indiana.edu/~jslsoc/stata/spex_data/ordwarm2.dta, clear . gologit2 warm yr89 male white age ed prst, store(unconstrained) . gologit2 warm yr89 male white age ed prst, pl lrf store(constrained) . lrtest constrained unconstrained

The LR chi-square from the above is 49.20. These data fail the global test.

However, we can now use the autofit option to see whether a partial proportional odds model can fit the data. In a partial proportional odds model, some variables meet the proportional odds assumption while others do not.

. gologit2 warm yr89 male white age ed prst, autofit

The results show that 4 of the 6 variables (white, age, ed, prst) meet the parallel lines assumption. Only yr89 and male do not. This model is less restrictive than a model estimated by ologit would be (whose assumptions are violated in this case) but much more parsimonious than a non-ordinal alternative such as mlogit.

Example 2: Alternative parameterization using the gamma option. Peterson & Harrell (1990) and Lall et al (2002) present an alternative parameterization of the partial proportional odds model. In this parameterization, gamma coefficients represent deviations from proportionality. When the gammas of an explanatory variable do not significantly differ from 0, the parallel lines assumption for that variable is met. Using the autofit and gamma options, we can (a) confirm that Lall came up with the correct partial proportional odds model, and (b) replicate the results from his Table 5.

. use http://www3.nd.edu/~rwilliam/gologit2/lall.dta . gologit2 hstatus heart smoke, lrf gamma autofit

Example 3: Survey data estimation. By using the svy option, we can estimate models with data that have been svyset.

. use http://www.stata-press.com/data/r8/nhanes2f.dta . gologit2 health female black age age2, svy autofit . gologit2 health black age age2, svy autofit subpop(female)

Example 4. gologit 1.0 compatibility. Some post-estimation commands - specifically, the spost routines of Long and Freese - currently work with the original gologit but not gologit2. That should change in the future. For now, you can use the v1 parameter to make the stored results from gologit2 compatible with gologit 1.0. (Note, however, that this may make the results non-compatible with post-estimation routines written for gologit2; also, you have to be using the dafualt logit link.) Using the working mother's data again,

. use http://www.indiana.edu/~jslsoc/stata/spex_data/ordwarm2.dta, clear . * Use the v1 option to save internally stored results in gologit 1.0 format . quietly gologit2 warm yr89 male white age ed prst, pl(yr89 male) lrf v1 . * Use one of Long & Freese's spost routines . prvalue, x(male=0 yr89=1 age=30) rest(mean)

Example 5. The predict command. In addition to the standard options (xb, stdp, stddp) the predict command supports the pr option (abbreviated p) for predicted probabilities; pr is the default option if nothing else is specified. For example,

. use http://www.indiana.edu/~jslsoc/stata/spex_data/ordwarm2.dta, clear . quietly gologit2 warm yr89 male white age ed prst, pl(yr89 male) lrf . predict p1 p2 p3 p4

Example 6. Constrained logistic regression. The models estimated by Stata's logit and ologit commands are special cases of the gologit model; but neither of these commands currently supports the use of linear constraints, such as two variables having equal effects. gologit2 can be used for this purpose. For example,

. use http://www.indiana.edu/~jslsoc/stata/spex_data/ordwarm2.dta, clear . recode warm (1 2 = 0)(3 4 = 1), gen(agree) . * Constrain the effects of male and white to be equal . constraint 1 male = white . gologit2 agree yr89 male white age ed prst, lrf store(constrained) c(1)

Example 7. Other link functions. By default, and as its name implies. gologit2 uses the logit link. If you prefer, however, you can specify probit, complementary log log, log log, or cauchit links. For example, to estimate a goprobit model,

. use http://www.indiana.edu/~jslsoc/stata/spex_data/ordwarm2.dta, clear . gologit2 warm yr89 male white age ed prst, link(p)

Example 8. Prefix commands. If you are using Stata 9 or higher, gologit2 supports many of the prefix commands. For example,

. use http://www.indiana.edu/~jslsoc/stata/spex_data/ordwarm2.dta, clear . sw, pe(.05): gologit2 warm yr89 male . xi: gologit2 warm yr89 i.male . nestreg: gologit2 warm (yr89 male white age) (ed prst)

Example 9. Post-estimation table formatting commands. Here is an example of how you could use outreg2 to format the results from multiple models. In this example I use both the regular and the gamma results but most people would probably choose one or the other. The store option stores the regular results while the g option stores the results from the gamma parameterization.

. use http://www.indiana.edu/~jslsoc/stata/spex_data/ordwarm2.dta, clear . * Unconstrained model . gologit2 warm yr89 male white age ed prst, npl lrf store(gologit) g(gologit_g) . * Autofit model . gologit2 warm yr89 male white age ed prst, autofit lrf store(gologit2) g(gologit2_g) . * Use outreg2 to output the regular results in a single table . outreg2 [gologit gologit2] using regular, replace onecol long nor2 seeout . * Use outreg2 to output the gamma results in a single table . outreg2 [gologit_g gologit2_g] using gamma, replace onecol long nor2 seeout


Richard Williams Notre Dame Department of Sociology Richard.A.Williams.5@ND.Edu http://www3.nd.edu/~rwilliam/gologit2/


Vincent Kang Fu of the Utah Department of Sociology wrote gologit 1.0 and graciously allowed Richard Williams to incorporate parts of its source code and documentation in gologit2.

The documentation for Stata 8.2's mlogit command and the program mlogit_p were major aids in developing the gologit2 documentation and in adding support for the predict command. Much of the code is adapted from Maximum Likelihood Estimation with Stata, Second Edition, by William Gould, Jeffrey Pitblado and William Sribney.

Sarah Mustillo, Dan Powers, J. Scott Long, Nick Cox, Kit Baum and Joseph Hilbe provided stimulating and helpful comments. Jeff Pitblado was extremely helpful in updating the program to use Stata 9's new features.


Fu, Vincent. 1998. "Estimating Generalized Ordered Logit Models." Stata Technical Bulletin 8:160-164.

Lall, R., S.J. Walters, K. Morgan, and MRC CFAS Co-operative Institute of Public Health. 2002. "A Review of Ordinal Regression Models Applied on Health-Related Quality of Life Assessments." Statistical Methods in Medical Research 11:49-67.

Long, J. Scott and Jeremy Freese. 2006. "Regression Models for Categorical Dependent Variables Using Stata, 2nd Edition." College Station, Texas: Stata Press.

Norusis, Marija. 2005. "SPSS 13.0 Advanced Statistical Procedures Companion." Upper Saddle River, New Jersey: Prentice Hall.

Peterson, Bercedis and Frank E. Harrell Jr. 1990. "Partial Proportional Odds Models for Ordinal Response Variables." Applied Statistics 39(2):205-217.

Suggested citation if using gologit2 in published work

gologit2 is not an official Stata command. It is a free contribution to the research community, like a paper. Please cite it as such.

Williams, Richard. 2006. "Generalized Ordered Logit/ Partial Proportional Odds Models for Ordinal Dependent Variables." The Stata Journal 6(1):58-82.

The above document provides more detailed explanations and examples and is recommended reading. A pre-publication version that includes information on updates to the program since the article was published is available at http://www3.nd.edu/~rwilliam/gologit2/gologit2.pdf. The published article is available for free at http://www.stata-journal.com/article.html?article=st0097.

Also see

Online: help for estcom, postest, constraint, ologit, svy, svyologit; if