help for robit(Roger Newson, Milena Falcaro)

Robit regression

robit depvar [indepvars] [if] [in] [weight], dfreedom(#) [

noconstant
offset(varname)
constraints(constraints)
asis
vce(vcetype)
level(#)
noheader
notable
collinear
coeflegend
difficult
from(maximize##init_specs:init_specs)
]

where depvar is a dependent variable which must be binary.

* dfreedom(#) specify degrees of freedom for robit model

noconstant suppress constant term

offset(varname:varname_o) include varname_o in model with coefficient constrained to 1

constraints(constraints) apply specified linear constraints

asis retain perfect predictor variables

vce(vcetype) vcetype may be oim,
robust, cluster clustvar, bootstrap, or
jackknife

level(#) set confidence level; default is level(95)

noheader do not print header lines

notable do not print table of coefficients

collinear keep collinear variables

coeflegend display legend instead of statistics

difficult use a different stepping algorithm in nonconcave
regions

from(maximize##init_specs:init_specs) initial values for the coefficients

* dfreedom(#) is required.

fweights, aweights, iweights, and pweights
are allowed; see weight.

robit has all the features available after estimation for glm,
such as the predict command to compute predicted values for the dependent variable.
See [R] glm postestimation for features available
after estimation.

Description

robit fits a robit regression model,
with a number of degrees of freedom specified by the user.
This command requires the SSC package xlink in order to work.

Options

dfreedom(#) specifies the degrees of freedom for the robit model to be fitted.
It must be specified, as an integer between 1 and 10.

noconstant suppresses the constant term (intercept) in the model.

offset(varname) specifies that varname be included in the model as an offset,
with the coefficient constrained to be 1.

constraints(numlist|matname)
specifies the linear constraints to be applied during estimation.
The default is to perform unconstrained estimation.
See [R] Estimation options.

asis forces retention of perfect predictor variables and their
associated, perfectly predicted observations,
and may produce instabilities in
maximization; see [R] probit.

vce(vcetype) specifies the type of standard error reported.
Possible types include those
that are derived from asymptotic theory (oim, opg),
those robust to some kinds of misspecification (robust),
or that allow for intragroup correlation (cluster clustvar),
and those from bootstrap or jackknife methods (bootstrap, jackknife);
see [R] vce_option.

level(#) specifies the confidence level, set to 95 if absent.
See [R] Estimation options.

noheader suppresses the header information from the output.
The coefficient table is still displayed.

notable suppresses the table of coefficients from the output.
The header information is still displayed.

collinear specifies that the estimation command not omit collinear
variables. This option is seldom used because collinear variables make a
model unidentified. However, you can add constraints to a model that will
identify it even with collinear variables. For example, if variables x1
and x2 are collinear, but you constrain the coefficient on x2 to
be a multiple of the coefficient on x1, then your model is identified
even with collinear variables. In such cases, you specify collinear so
that both x1 and x2 are retained in the model.

coeflegend instructs Stata not to show the coefficient results but to display instead
the legend of the coefficients and how they should be specified in an expression.

difficult specifies that the likelihood function is likely to be
difficult to maximize because of nonconcave regions.
There is no guarantee that difficult will
work better than the default; sometimes it is better and sometimes it is
worse. You should use the difficult option only when the default stepper
declares convergence and the last iteration is "not concave" or when the
default stepper is repeatedly issuing "not concave" messages and producing only
tiny improvements in the log likelihood.
See [R] Maximize.

from() specifies initial values for the regression coefficients.
See [R] Maximize.

Remarks

robit works by calling the glm command with a binomial distribution function
(family(binomial 1)),
and a robit link function from the SSC package xlink.
These link functions have names of the form robitk,
where k is an integer from 1 to 10 specifying the degrees of freedom.

The choice of degrees of freedom (df) for robit models still seems to be an open question.
For example, 4 df was recommended by
Kang and Shaffer (2007)
and mentioned in Chapter 15 of
Gelman, Hill, and Vehtari (2020).
1 df was mentioned by
Ridgeway (2007).
7 df was recommended by
Liu (2004)
as being similar to the logit link function,
but less influenced by outlying values.
9 df was mentioned by
Mudholkar and George (1978)
as having a similar kurtosis to the logit link function.
In general, robit link functions with fewer degrees of freedom
are influenced less by outliers than robit link functions with more degrees of freedom.
In the limit, as k tends to infinity,
the robit link function with k degrees of freedom
becomes the probit link function.

robit saves in e() the results saved by the glm command,
but also 1 extra result, e(depvarsum),
containing the sum of the dependent variable specified in e(depvar),
limited to the estimation sample specified in e(sample).

robit is designed to be flexible and easy to use.
Users who want to fit robit models with the full power of glm
should use glm, with a robit link option from xlink.
For example, robit y x1 x2, df(4)
is equivalent to glm y x1 x2, family(binomial) link(robit4).
The use of glm in place of robit
may be advantageous when, for instance,
the specification of nonstandard maximization options
(see [R] Maximize)
or display options
(see [R] Estimation options)
is needed.

Examples

Set-up:

. sysuse auto, clear

. describe, full

Fit a robit model with 7 degrees of freedom:

. robit foreign mpg weight, dfreedom(7) vce(robust)

Compute and summarize predicted probabilities of non-US car origin
(i.e. foreign = 1) from the fitted robit model:

. predict pforeign

. summ pforeign, detail

Fit a robit model with 4 degrees of freedom instead:

. robit foreign mpg weight, dfreedom(4) vce(robust)

This is equivalent to the following glm command:

. glm foreign mpg weight, link(robit4) family(binomial) vce(robust)

References

Gelman, A., Hill, J., and Vehtari, A.
2020.
Regression and Other Stories.
Cambridge, UK: Cambridge University Press.

Kang, J. D. Y. and Schafer, J. L. 2007.
Demystifying double robustness:
A comparison of alternative strategies forestimating a population mean from incomplete data.
Statistical Science 22: 523-539.

Liu, C. H.
2004.
Robit Regression: A Simple Robust Alternative to Logistic and Probit Regression.
Chapter 21 of:
Gelman, A. and Meng, X-L.
2004.
Applied Bayesian Modeling and Causal Inference from Incomplete-Data Perspectives:
An Essential Journey with Donald Rubin's Statistical Family.
Chichester, UK: John Wiley & Sons Ltd.
Download from the Wiley Online website.

Mudholkar, G. S. and George, E. O.
1978.
A remark on the shape of the logistic distribution.
Biometrika 65: 667-668.

Ridgeway, G. and McCaffrey, D. F. 2007.
Comment: Demystifying double robustness:
A comparison of alternative strategies for estimating a population mean from incomplete data.
Statistical Science 22: 540-543.

Authors

Roger Newson, King's College London, UK.

Email: roger.newson@kcl.ac.uk

Milena Falcaro, King's College London, UK.

Email: milena.falcaro@kcl.ac.uk

Saved results

robit saves in e() all results saved by glm,
and also the following:

Scalars

e(depvarsum) sum of dependent variable in estimation sample

Also see

Manual: [R] glm

Help: [R] glm

help for xlink if installed