Stata 15 help for asroprobit

[R] asroprobit -- Alternative-specific rank-ordered probit regression

Syntax

asroprobit depvar [indepvars] [if] [in] [weight] , case(varname) alternatives(varname) [options]

options Description ------------------------------------------------------------------------- Model * case(varname) use varname to identify cases * alternatives(varname) use varname to identify the alternatives available for each case casevars(varlist) case-specific variables constraints(constraints) apply specified linear constraints collinear keep collinear variables

Model 2 correlation(correlation) correlation structure of the latent-variable errors stddev(stddev) variance structure of the latent-variable errors structural use the structural covariance parameterization; default is the differenced covariance parameterization factor(#) use the factor covariance structure with dimension # noconstant suppress the alternative-specific constant terms basealternative(#|lbl|str) alternative used for normalizing location scalealternative(#|lbl|str) alternative used for normalizing scale altwise use alternativewise deletion instead of casewise deletion reverse interpret the lowest rank in depvar as the best; the default is the highest rank is the best

SE/Robust vce(vcetype) vcetype may be oim, robust, cluster clustvar, opg, bootstrap, or jackknife

Reporting level(#) set confidence level; default is level(95) notransform do not transform variance-covariance estimates to the standard deviation and correlation metric nocnsreport do not display constraints display_options control columns and column formats, row spacing, line width, display of omitted variables and base and empty cells, and factor-variable labeling

Integration intmethod(seqtype) type of quasi- or pseudouniform sequence intpoints(#) number of points in each sequence intburn(#) starting index in the Hammersley or Halton sequence intseed(code|#) pseudouniform random-number seed antithetics use antithetic draws nopivot do not use integration interval pivoting initbhhh(#) use the BHHH optimization algorithm for the first # iterations favor(speed|space) favor speed or space when generating integration points

Maximization maximize_options control the maximization process

coeflegend display legend instead of statistics -------------------------------------------------------------------------

correlation Description ------------------------------------------------------------------------- unstructured one correlation parameter for each pair of alternatives; correlations with the basealternative() are zero; the default exchangeable one correlation parameter common to all pairs of alternatives; correlations with the basealternative() are zero independent constrain all correlation parameters to zero pattern matname user-specified matrix identifying the correlation pattern fixed matname user-specified matrix identifying the fixed and free correlation parameters -------------------------------------------------------------------------

stddev Description ------------------------------------------------------------------------- heteroskedastic estimate standard deviation for each alternative; standard deviations for basealternative() and scalealternative() set to one homoskedastic all standard deviations are one pattern matname user-specified matrix identifying the standard deviation pattern fixed matname user-specified matrix identifying the fixed and free standard deviations -------------------------------------------------------------------------

seqtype Description ------------------------------------------------------------------------- hammersley Hammersley point set halton Halton point set random uniform pseudorandom point set -------------------------------------------------------------------------

* case(varname) and alternatives(varname) are required. indepvars and varlist may contain factor variables; see fvvarlist. bootstrap, by, jackknife, and statsby are allowed; see prefix. Weights are not allowed with the bootstrap prefix. fweights, iweights, and pweights are allowed; see weight. coeflegend does not appear in the dialog box. See [R] asroprobit postestimation for features available after estimation.

Menu

Statistics > Ordinal outcomes > Rank-ordered probit regression

Description

asroprobit fits rank-ordered probit (ROP) models by using maximum simulated likelihood (MSL). The model allows you to relax the independence of irrelevant alternatives (IIA) property that is characteristic of the rank-ordered logistic model by estimating the variance-covariance parameters of the latent-variable errors. Each unique identifier in the case() variable has multiple alternatives identified in the alternatives() variable, and depvar contains the ranked alternatives made by each case. Only the order in the ranks, not the magnitude of their differences, is assumed to be relevant. By default, the largest rank indicates the more desirable alternative. Use the reverse option if the lowest rank should be interpreted as the more desirable alternative. Tied ranks are allowed, but they increase the computation time because all permutations of the tied ranks are used in computing the likelihood for each case. asroprobit allows two types of independent variables: alternative-specific variables, in which the values of each variable vary with each alternative, and case-specific variables, which vary with each case.

The estimation technique of asroprobit is nearly identical to that of asmprobit, and the two routines share many of the same options; see [R] asmprobit.

Options

+-------+ ----+ Model +------------------------------------------------------------

case(varname) specifies the variable that identifies each case. This variable identifies the individuals or entities making a choice. case() is required.

alternatives(varname) specifies the variable that identifies the alternatives for each case. The number of alternatives can vary with each case; the maximum number of alternatives is 20. alternatives() is required.

casevars(varlist) specifies the case-specific variables that are constant for each case(). If there are a maximum of J alternatives, there will be J-1 sets of coefficients associated with casevars().

constraints(constraints), collinear; see [R] estimation options.

+---------+ ----+ Model 2 +----------------------------------------------------------

correlation(correlation) specifies the correlation structure of the latent-variable errors.

correlation(unstructured) is the most general and has J(J-3)/2+1 unique correlation parameters. This is the default unless stdev() or structural are specified.

correlation(exchangeable) provides for one correlation coefficient common to all latent variables, except the latent variable associated with the basealternative() option.

correlation(independent) assumes that all correlations are zero.

correlation(pattern matname) and correlation(fixed matname) give you more flexibility in defining the correlation structure. See Variance structures in [R] asmprobit for more information.

stddev(stddev) specifies the variance structure of the latent-variable errors.

stddev(heteroskedastic) is the most general and has J-2 estimable parameters. The standard deviations of the latent-variable errors for the alternatives specified in basealternative() and scalealternative() are fixed to one.

stddev(homoskedastic) constrains all the standard deviations to equal one.

stddev(pattern matname) or stddev(fixed matname) give you added flexibility in defining the standard deviation parameters. See Variance structures in [R] asmprobit for more information.

structural requests the J x J structural covariance parameterization instead of the default J-1 x J-1 differenced covariance parameterization (the covariance of the latent errors differenced with that of the base alternative). The differenced covariance parameterization will achieve the same MSL regardless of the choice of basealternative() and scalealternative(). On the other hand, the structural covariance parameterization imposes more normalizations that may bound the model away from its maximum likelihood and thus prevent convergence with some datasets or choices of basealternative() and scalealternative().

factor(#) requests that the factor covariance structure of dimension # be used. The factor() option can be used with the structural option but cannot be used with stddev() or correlation(). A # x J (or # x J-1) matrix, C, is used to factor the covariance matrix as I + C'C, where I is the identity matrix of dimension J (or J-1). The column dimension of C depends on whether the covariance is structural or differenced. The row dimension of C, #, must be less than or equal to floor((J(J-1)/2-1)/(J-2)), because there are only J(J-1)/2-1 identifiable variance-covariance parameters. This covariance parameterization may be useful for reducing the number of covariance parameters that need to be estimated.

If the covariance is structural, the column of C corresponding to the base alternative contains zeros. The column corresponding to the scale alternative has a one in the first row and zeros elsewhere. If the covariance is differenced, the column corresponding to the scale alternative (differenced with the base) has a one in the first row and zeros elsewhere.

noconstant suppresses the J-1 alternative-specific constant terms.

basealternative(#|lbl|str) specifies the alternative used to normalize the latent-variable location (also referred to as the level of utility). The base alternative may be specified as a number, label, or string. The standard deviation for the latent-variable error associated with the base alternative is fixed to one, and its correlations with all other latent-variable errors are set to zero. The default is the first alternative when sorted. If a fixed or pattern matrix is given in the stddev() and correlation() options, the basealternative() will be implied by the fixed standard deviations and correlations in the matrix specifications. basealternative() cannot be equal to scalealternative().

scalealternative(#|lbl|str) specifies the alternative used to normalize the latent-variable scale (also referred to as the scale of utility). The scale alternative may be specified as a number, label, or string. The default is to use the second alternative when sorted. If a fixed or pattern matrix is given in the stddev() option, the scalealternative() will be implied by the fixed standard deviations in the matrix specification. scalealternative() cannot be equal to the basealternative().

If a fixed or pattern matrix is given for the stddev() option, the base alternative and scale alternative are implied by the standard deviations and correlations in the matrix specifications, and they need not be specified in the basealternative() and scalealternative() options.

altwise specifies that alternativewise deletion be used when marking out observations due to missing values in your variables. The default is to use casewise deletion; that is, the entire group of observations making up a case is deleted if any missing values are encountered. This option does not apply to observations that are marked out by the if or in qualifier or the by prefix.

reverse directs asroprobit to interpret the rank in depvar that is smallest in value as the preferred alternative. By default, the rank that is the largest in value is the favored alternative.

+-----------+ ----+ SE/Robust +--------------------------------------------------------

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

If specifying vce(bootstrap) or vce(jackknife), you must also specify basealternative() and scalealternative().

+-----------+ ----+ Reporting +--------------------------------------------------------

level(#); see [R] estimation options.

notransform prevents retransforming the Cholesky-factored variance-covariance estimates to the correlation and standard deviation metric.

This option has no effect if structural is not specified because the default differenced variance-covariance estimates have no interesting interpretation as correlations and standard deviations. notransform also has no effect if the correlation() and stddev() options are specified with anything other than their default values. Here it is generally not possible to factor the variance-covariance matrix, so optimization is already performed using the standard deviation and correlation representations.

nocnsreport; see [R] estimation options.

display_options: noci, nopvalues, noomitted, vsquish, noemptycells, baselevels, allbaselevels, nofvlabel, fvwrap(#), fvwrapon(style), cformat(%fmt), pformat(%fmt), sformat(%fmt), and nolstretch; see [R] estimation options.

+-------------+ ----+ Integration +------------------------------------------------------

intmethod(hammersley|halton|random) specifies the method of generating the point sets used in the quasi-Monte Carlo integration of the multivariate normal density. intmethod(hammersley), the default, uses the Hammersley sequence; intmethod(halton) uses the Halton sequence; and intmethod(random) uses a sequence of uniform random numbers.

intpoints(#) specifies the number of points to use in the quasi-Monte Carlo integration. If this option is not specified, the number of points is 50 x J if intmethod(hammersley) or intmethod(halton) is used and 100 x J if intmethod(random) is used. Larger values of intpoints() provide better approximations of the log likelihood, but at the cost of added computation time.

intburn(#) specifies where in the Hammersley or Halton sequence to start, which helps reduce the correlation between the sequences of each dimension. The default is 0. This option may not be specified with intmethod(random).

intseed(code|#) specifies the seed to use for generating the uniform pseudorandom sequence. This option may be specified only with intmethod(random). code refers to a string that records the state of the random-number generator runiform(); see [R] set seed. An integer value # may be used also. The default is to use the current seed value from Stata's uniform random-number generator, which can be obtained from c(rngstate).

antithetics specifies that antithetic draws be used. The antithetic draw for the J - 1 vector uniform-random variables, x, is 1 - x.

nopivot turns off integration interval pivoting. By default, asroprobit will pivot the wider intervals of integration to the interior of the multivariate integration. This improves the accuracy of the quadrature estimate. However, discontinuities may result in the computation of numerical second-order derivatives using finite differencing (for the Newton-Raphson optimize technique, tech(nr)) when few simulation points are used, resulting in a non-positive-definite Hessian. asroprobit uses the Broyden-Fletcher-Goldfarb-Shanno optimization algorithm, by default, which does not require computing the Hessian numerically using finite differencing.

initbhhh(#) specifies that the Berndt-Hall-Hall-Hausman (BHHH) algorithm be used for the initial # optimization steps. This option is the only way to use the BHHH algorithm along with other optimization techniques. The algorithm switching feature of ml's technique() option cannot include bhhh.

favor(speed|space) instructs asroprobit to favor either speed or space when generating the integration points. favor(speed) is the default. When favoring speed, the integration points are generated once and stored in memory, thus increasing the speed of evaluating the likelihood. This speed increase can be seen when there are many cases or when the user specifies a large number of integration points, intpoints(#). When favoring space, the integration points are generated repeatedly with each likelihood evaluation.

For unbalanced data, where the number of alternatives varies with each case, the estimates computed using intmethod(random) will vary slightly between favor(speed) and favor(space). This is because the uniform sequences will not be identical, even when initiating the sequences using the same uniform seed, intseed(code|#). For favor(speed), ncase blocks of intpoints(#) X J-2 uniform points are generated, where J is the maximum number of alternatives. For favor(space), the column dimension of the matrices of points varies with the number of alternatives that each case has.

+--------------+ ----+ Maximization +-----------------------------------------------------

maximize_options: difficult, technique(algorithm_spec), iterate(#), [no]log, trace, gradient, showstep, hessian, showtolerance, tolerance(#), ltolerance(#), nrtolerance(#), nonrtolerance, and from(init_specs); see [R] maximize.

The following options may be particularly useful in obtaining convergence with asroprobit: difficult, technique(algorithm_spec), nrtolerance(#), nonrtolerance, and from(init_specs).

If technique() contains more than one algorithm specification, bhhh cannot be one of them. To use the BHHH algorithm with another algorithm, use the initbhhh() option and specify the other algorithm in technique().

Setting the optimization type to technique(bhhh) resets the default vcetype to vce(opg).

When specifying from(matname [, copy]), the values in matname associated with the latent-variable error variances must be for the log-transformed standard deviations and inverse-hyperbolic tangent-transformed correlations. This option makes using the coefficient vector from a previously fitted asroprobit model convenient as a starting point.

The following option is available with asroprobit but is not shown in the dialog box:

coeflegend; see [R] estimation options.

Examples

Setup . webuse wlsrank

Fit alternative-specific rank-ordered probit model, excluding cases with tied ranks; specify that lowest rank is most preferred . asroprobit rank high low if noties, case(id) alternatives(jobchar) casevars(female score) reverse

Specify exchangeable correlation model for latent-variable errors . asroprobit rank high low if noties, case(id) alternatives(jobchar) casevars(female score) reverse correlation(exchangeable)

Stored results

asroprobit stores the following in e():

Scalars e(N) number of observations e(N_case) number of cases e(N_ties) number of ties e(k) number of parameters e(k_alt) number of alternatives e(k_indvars) number of alternative-specific variables e(k_casevars) number of case-specific variables e(k_sigma) number of variance estimates e(k_rho) number of correlation estimates e(k_eq) number of equations in e(b) e(k_eq_model) number of equations in overall model test e(df_m) model degrees of freedom e(ll) log simulated-likelihood e(N_clust) number of clusters e(const) constant indicator e(i_base) base alternative index e(i_scale) scale alternative index e(mc_points) number of Monte Carlo replications e(mc_burn) starting sequence index e(mc_antithetics) antithetics indicator e(reverse) 1 if minimum rank is best, 0 if maximum rank is best e(chi2) chi-squared e(p) p-value for model test e(fullcov) unstructured covariance indicator e(structcov) 1 if structured covariance, 0 otherwise e(cholesky) Cholesky-factored covariance indicator e(alt_min) minimum number of alternatives e(alt_avg) average number of alternatives e(alt_max) maximum number of alternatives e(rank) rank of e(V) e(ic) number of iterations e(rc) return code e(converged) 1 if converged, 0 otherwise

Macros e(cmd) asroprobit e(cmdline) command as typed e(depvar) name of dependent variable e(indvars) alternative-specific independent variable e(casevars) case-specific variables e(case) variable defining cases e(altvar) variable defining alternatives e(alteqs) alternative equation names e(alt#) alternative labels e(wtype) weight type e(wexp) weight expression e(title) title in estimation output e(clustvar) name of cluster variable e(correlation) correlation structure e(stddev) variance structure e(chi2type) Wald, type of model chi-squared test e(vce) vcetype specified in vce() e(vcetype) title used to label Std. Err. e(opt) type of optimization e(which) max or min; whether optimizer is to perform maximization or minimization e(ml_method) type of ml method e(mc_method) Hammersley, Halton, or uniform random; technique to generate sequences e(mc_rngstate) random-number state used e(user) name of likelihood-evaluator program e(technique) maximization technique e(datasignature) the checksum e(datasignaturevars) variables used in calculation of checksum e(properties) b V e(estat_cmd) program used to implement estat e(mfx_dlg) program used to implement estat mfx dialog e(predict) program used to implement predict e(marginsnotok) predictions disallowed by margins e(asbalanced) factor variables fvset as asbalanced e(asobserved) factor variables fvset as asobserved

Matrices e(b) coefficient vector e(Cns) constraints matrix e(stats) alternative statistics e(stdpattern) variance pattern e(stdfixed) fixed and free standard deviations e(altvals) alternative values e(altfreq) alternative frequencies e(alt_casevars) indicators for estimated case-specific coefficients -- e(k_alt) x e(k_casevars) e(corpattern) correlation structure e(corfixed) fixed and free correlations e(ilog) iteration log (up to 20 iterations) e(gradient) gradient vector e(V) variance-covariance matrix of the estimators e(V_modelbased) model-based variance

Functions e(sample) marks estimation sample


© Copyright 1996–2018 StataCorp LLC   |   Terms of use   |   Privacy   |   Contact us   |   What's new   |   Site index