help estadd                           also see: esttab, estout, eststo, estpost
                                               http://repec.org/bocode/e/estout
-------------------------------------------------------------------------------

Title

estadd -- Add results to (stored) estimates

Syntax

estadd subcommand [, options ] [ : namelist ]

where namelist is _all | * | name [name ...]

subcommands description ---------------------------------------------------------------- Elementary local name ... add a macro scalar name = exp add a scalar matrix name = mat add a matrix r(name) add contents of r(name) (matrix or scalar)

Statistics for each coefficient beta standardized coefficients vif variance inflation factors (after regress) pcorr partial (and semi-partial) correlations expb exponentiated coefficients ebsd standardized factor change coefficients mean means of regressors sd standard deviations of regressors summ various descriptives of the regressors

Summary statistics coxsnell Cox & Snell's pseudo R-squared nagelkerke Nagelkerke's pseudo R-squared lrtest model likelihood-ratio test ysumm descriptives of the dependent variable

Other margins add results from margins (Stata 11)

SPost brant add results from brant (if installed) fitstat add results from fitstat (if installed) listcoef add results from listcoef (if installed) mlogtest add results from mlogtest (if installed) prchange add results from prchange (if installed) prvalue add results from prvalue (if installed) asprvalue add results from asprvalue (if installed) ----------------------------------------------------------------

options description ---------------------------------------------------------------- replace permit overwriting existing e()'s prefix(string) specify prefix for names of added results quietly suppress output from subcommand (if any) subcmdopts subcommand specific options ----------------------------------------------------------------

Description

estadd adds additional results to the e()-returns of an estimation command (see help estcom, help ereturn). If no namelist is provided, then the results are added to the currently active estimates (i.e. the model fit last). If these estimates have been previously stored, the stored copy of the estimates will also be modified. Alternatively, if namelist is provided after the colon, results are added to all indicated sets of stored estimates (see help estimates store or help eststo). You may use the * and ? wildcards in namelist. Execution is silent if namelist is provided.

Adding additional results to the e()-returns is useful, for example, if the estimates be tabulated by commands such as estout or esttab. See the Examples section below for illustration of the usage of estadd.

Technical note: Some of the subcommands below make use of the information contained in e(sample) to determine estimation sample. These subcommands return error if the estimates do not contain e(sample).

Subcommands

+------------+ ----+ Elementary +-------------------------------------------------------

estadd local name ...

adds in macro e(name) the specified contents (also see help ereturn).

estadd scalar name = exp

adds in scalar e(name) the evaluation of exp (also see help ereturn).

estadd scalar r(name)

adds in scalar e(name) the value of scalar r(name).

estadd scalar name

adds in scalar e(name) the the value of scalar name.

estadd matrix name = matrix_expression

adds in matrix e(name) the evaluation of matrix_expression (also see help matrix define).

estadd matrix r(name)

adds in matrix e(name) a copy of matrix r(name).

estadd matrix name

adds in matrix e(name) a copy of matrix name.

estadd r(name)

adds in e(name) the value of scalar r(name) or a copy of matrix r(name), depending on the nature of r(name).

+---------------------------------+ ----+ Statistics for each coefficient +----------------------------------

estadd beta

adds in e(beta) the standardized beta coefficients.

estadd vif [, tolerance sqrvif ]

adds in e(vif) the variance inflation factors (VIFs) for the regressors (see help vif). Note that vif only works with estimates produced by regress. tolerance additionally adds the tolerances (1/VIF) in e(tolerance). sqrvif additionally adds the square roots of the VIFs in e(sqrvif).

estadd pcorr [, semi ]

adds the partial correlations (see help pcorr) and, optionally, the semi-partial correlations between the dependent variable and the individual regressors (see, e.g., the pcorr2 package from the SSC Archive). In the case of multiple-equations models, the results are computed for the first equation only. The partial correlations will be returned in e(pcorr) and, if semi is specified, the semi-partial correlations will be returned in e(spcorr).

estadd expb [, noconstant ]

adds in e(expb) the exponentiated coefficients (see the help eform_option). noconstant excludes the constant from the added results.

estadd ebsd

adds in e(ebsd) the standardized factor change coefficients, i.e. exp(b_jS_j), where b_j is the raw coefficient and S_j is the standard deviation of regressor j, that are sometimes reported for logistic regression (see Long 1997).

estadd mean

adds in e(mean) the means of the regressors.

estadd sd [, nobinary ]

adds in e(sd) the standard deviations of the regressors. nobinary suppresses the computation of the standard deviation for 0/1 variables.

estadd summ [, stats ]

adds vectors of the regressors' descriptive statistics to the estimates. The following stats are available:

stats description ----------------------------------------------------------- mean mean sum sum min minimum max maximum range range = max - min sd standard deviation var variance cv coefficient of variation (sd/mean) semean standard error of mean = sd/sqrt(n) skewness skewness kurtosis kurtosis p1 1st percentile p5 5th percentile p10 10th percentile p25 25th percentile p50 50th percentile p75 75th percentile p90 90th percentile p95 95th percentile p99 99th percentile iqr interquartile range = p75 - p25 all all of the above median equivalent to specifying "p50" q equivalent to specifying "p25 p50 p75" -----------------------------------------------------------

The default is mean sd min max. Alternatively, indicate the desired statistics. For example, to add information on the regressors' skewness and kurtosis, type

. estadd summ, skewness kurtosis

The statistics names are used as the names for the returned e() matrices. For example, estadd summ, mean will store the means of the regressors in e(mean).

+--------------------+ ----+ Summary statistics +-----------------------------------------------

estadd coxsnell

adds in e(coxsnell) the Cox & Snell pseudo R-squared, which is defined as

r2_coxsnell = 1 - ( L0 / L1 )^(2/N)

where L0 is the likelihood of the model without regressors, L1 the likelihood of the full model, and N is the sample size.

estadd nagelkerke

adds in e(nagelkerke) the Nagelkerke pseudo R-squared (or Cragg & Uhler pseudo R-squared), which is defined as

r2_nagelkerke = r2_coxsnell / (1 - L0^(2/N))

estadd lrtest model [, name(string) lrtest_options ]

adds the results from a likelihood-ratio test, where model is the comparison model (see help lrtest). Added are e(lrtest_chi2), e(lrtest_df), and e(lrtest_p). The names may be modified using the name() option. Specify name(myname) to add e(mynamechi2), e(mynamedf), and e(mynamep). See help lrtest for the lrtest_options.

estadd ysumm [, stats ]

adds descriptive statistics of the dependent variable. See the summ subcommand above for a list of the available stats. The default is mean sd min max. The default prefix for the names of the added scalars is y (e.g. the mean of the dependent variable will be returned in e(ymean)). Use estadd's prefix() option to change the prefix. If a model has multiple dependent variables, results for the first variable will be added.

+-------+ ----+ Other +------------------------------------------------------------

estadd margins [marginlist] [if] [in] [weight] [, options ]

adds results from the margins command, which was introduced in Stata 11. See help margins for options. All results returned by margins except e(V) are added using "margins_" as a default prefix. For example, the margins are added in e(margins_b). The standard errors are added in e(margins_se). Use the prefix() option to change the default prefix.

+-------+ ----+ SPost +------------------------------------------------------------

The following subcommands are wrappers for commands from Long and Freese's SPost package (see http://www.indiana.edu/~jslsoc/spost.htm). Type

. net from http://www.indiana.edu/~jslsoc/stata

to obtain the latest SPost version (spost9_ado). SPost for Stata 8 (spostado) is not supported.

For examples on using the subcommands see http://repec.org/bocode/e/estout/spost.html.

estadd brant [, brant_options ]

applies brant from Long and Freese's SPost package and adds the returned results to e(). You may specify brant_options as described in help brant. The following results are added:

e(...) Contents ------------------------------------------------------------ Scalars brant_chi2 Chi-squared of overall Brant test brant_df Degrees of freedom of overall Brant test brant_p P-value of overall Brant test

Matrix brant Test results for individual regressors (rows: chi2, p<chi2) ------------------------------------------------------------

To address the rows of e(brant) in estout's cells() option type brant[chi2] and brant[p<chi2].

estadd fitstat [, fitstat_options ]

applies fitstat from Long and Freese's SPost package and adds the returned scalars to e(). You may specify fitstat_options as described in help fitstat. Depending on model and options, a selection of the following scalar statistics is added:

e(...) Contents ------------------------------------------------------------ dev Deviance (D) dev_df Degrees of freedom of D lrx2 LR or Wald X2 lrx2_df Degrees of freedom of X2 lrx2_p Prob > LR or Wald X2 r2_adj Adjusted R2 r2_mf McFadden's R2 r2_mfadj McFadden's Adj R2 r2_ml ML (Cox-Snell) R2 r2_cu Cragg-Uhler(Nagelkerke) R2 r2_mz McKelvey & Zavoina's R2 r2_ef Efron's R2 v_ystar Variance of y* v_error Variance of error r2_ct Count R2 r2_ctadj Adj Count R2 aic0 AIC aic_n AIC*n bic0 BIC bic_p BIC' statabic BIC used by Stata stataaic AIC used by Stata n_rhs Number of rhs variables n_parm Number of parameters ------------------------------------------------------------

estadd listcoef [varlist] [, nosd listcoef_options ]

applies listcoef from Long and Freese's SPost package and adds the returned results to e(). You may specify listcoef_options as described in help listcoef. Furthermore, option nosd suppresses adding the standard deviations of the variables in e(b_sdx).

Depending on the estimation command and options, several of the following matrices are added:

e(...) Contents ------------------------------------------------------------ b_xs x-standardized coefficients b_ys y-standardized coefficients b_std Fully standardized coefficients b_fact Factor change coefficients b_facts Standardized factor change coefficients b_pct Percent change coefficients b_pcts Standardized percent change coefficients b_sdx Standard deviation of the Xs ------------------------------------------------------------

For nominal models (mlogit, mprobit) the original parametrization of e(b) may not match the contrasts computed by listcoef. To be able to tabulate standardized coefficients along with the raw coefficients for the requested contrasts, the following additional matrices are added for these models:

e(...) Contents ------------------------------------------------------------ b_raw raw coefficients b_se standard errors of raw coefficients b_z z statistics b_p p-values ------------------------------------------------------------

estadd mlogtest [varlist] [, mlogtest_options ]

applies mlogtest from Long and Freese's SPost package and adds the returned results to e(). You may specify mlogtest_options as described in help mlogtest.

Depending on the specified options, a selection of the following returns are added:

e(...) Contents ------------------------------------------------------------ Scalars hausman_set#_chi2 Hausman IIA tests using hausman hausman_set#_df hausman_set#_p

suest_set#_chi2 Hausman IIA tests using suest suest_set#_df suest_set#_p

smhsiao_set#_chi2 Small-Hsiao IIA tests smhsiao_set#_df smhsiao_set#_p

combine_#1_#2_chi2 Wald tests for combination of outcomes combine_#1_#2_df combine_#1_#2_p

lrcomb_#1_#2_chi2 LR tests for combination of outcomes lrcomb_#1_#2_df lrcomb_#1_#2_p

wald_set#_chi2 Wald tests for sets of independent wald_set#_df variables wald_set#_p

lrtest_set#_chi2 LR tests for sets of independent lrtest_set#_df variables lrtest_set#_p

Matrices wald Wald tests for individual variables (rows: chi2, df, p) lrtest LR tests for individual variables (rows: chi2, df, p) ------------------------------------------------------------

To address the rows of e(wald) and e(lrtest) in estout's cells() option type the row names in brackets, for example, wald[p] or lrtest[chi2].

estadd prchange [varlist] [if exp] [in range] [, pattern(typepattern) binary(type) continuous(type) [no]avg split[(prefix)] prchange_options ]

applies prchange from Long and Freese's SPost package and adds the returned results to e(). You may specify prchange_options as described in help prchange. In particular, the outcome() option may be used with models for count, ordered, or nominal outcomes to request results for a specific outcome. Further options are:

pattern(typepattern), binary(type), and continuous(type) to determine which types of discrete change effects are added as the main results. The default is to add the 0 to 1 change effect for binary variables and the standard deviation change effect for continuous variables. Use binary(type) and continuous(type) to change these defaults. Available types are:

type Description ------------------------------------------------ minmax minimum to maximum change effect 01 0 to 1 change effect delta delta() change effect sd standard deviation change effect margefct marginal effect (some models only) ------------------------------------------------

Use pattern(typepattern) if you want to determine the type of the added effects individually for each regressor. For example, pattern(minmax sd delta) would add minmax for the first regressor, sd for the second, and delta for the third, and then proceed using the defaults for the remaining variables.

avg to request that only the average results over all outcomes are added if applied to ordered or nominal models (ologit, oprobit, slogit, mlogit, mprobit). The default is to add the average results as well as the individual results for the different outcomes (unless prchange's outcome() option is specified, in which case only results for the indicated outcome are added). Furthermore, specify noavg to suppress the average results and only add the outcome-specific results. avg cannot be combined with split or outcome().

split[(prefix)] to save each outcome's results in a separate estimation set if applied to ordered or nominal models (ologit, oprobit, slogit, mlogit, mprobit). The estimation sets are named prefix#, where # is the value of the outcome at hand. If no prefix is provided, the name of the estimation set followed by an underscore is used as the prefix. If the estimation set has no name (because it has not been stored yet) the name of the estimation command followed by an underscore is used as the prefix (e.g. ologit_). The estimation sets stored by the split option are intended for tabulation only and should not be used with other post-estimation commands.

Depending on model and options, several of the following matrices and scalars are added:

e(...) Contents ------------------------------------------------------------ Scalars centered 1 if effects are centered, 0 else delta Value of delta() predval[#] Prediction(s) at the base values outcome Outcome value (outcome()/split only)

Matrices dc Discrete change effects (rows: main, minmax, 01, delta, sd [, margefct]) pattern Types of effects in the main row of e(dc) X Base values and descriptive statistics (rows: X, SD, Min, Max) ------------------------------------------------------------

The e(dc) and e(X) matrices have multiple rows. The e(dc) matrix contains the main results as determined by pattern(), binary(), and continuous() in the first row. The second and following rows contain the separate results for each type of effect using the labels provided by prchange as row names. Type dc[#] or dc[rowname] to address the rows in estout's cells() option, where # is the row number or rowname is the row name. For example, type dc[-+sd/2] to address the centered standard deviation change effects. To tabulate the main results (1st row), simply type dc. e(pattern) indicates the types of effects contained in the main row of e(dc) using numeric codes. The codes are 1 for the minimum to maximum change effect, 2 for the 0 to 1 change effect, 3 for the delta() change effect, 4 for the standard deviation change effect, and 5 for the marginal effect. e(X) has four rows containing the base values, standard deviations, minimums, and maximums. If the fromto option is specified, two additional matrices, e(dcfrom) and e(dcto) are added.

estadd prvalue [if exp] [in range] [, label(string) prvalue_options ]

estadd prvalue post [name] [, title(string) swap ]

applies prvalue from Long and Freese's SPost package and adds the returned results to e(). The procedure is to first collect a series of predictions by repeated calls to estadd prvalue and then apply estadd prvalue post to prepare the results for tabulation as in the following example:

. logit lfp k5 k618 age wc hc lwg inc . estadd prvalue, x(inc 10) label(low inc) . estadd prvalue, x(inc 20) label(med inc) . estadd prvalue, x(inc 30) label(high inc) . estadd prvalue post . estout

You may specify prvalue_options with estadd prvalue as described in help prvalue. For example, use x() and rest() to set the values of the independent variables. Use label() to label the single calls. "pred#" is used as label if label() is omitted, where # is the number of the call. Labels may contain spaces but they will be trimmed to a maximum length of 30 characters and some characters (:, ., ") will be replaced by underscore. The results from the single calls are collected in matrix e(_estadd_prvalue) (predictions) and matrix e(_estadd_prvalue_x) (x-values). Specify replace to drop results from previous calls.

estadd prvalue post posts the collected predictions in e(b) so that they can be tabulated. The following results are saved:

e(...) Contents ------------------------------------------------------------ Scalars N number of observations

Macros depvar name of dependent variable cmd estadd_prvalue model model estimation command properties b

Matrices b predictions se standard errors LB lower confidence interval bounds UB upper confidence interval bounds Category outcome values Cond conditional predictions (some models only) X values of predictors (for each prediction) X2 second equation predictors (some models only) ------------------------------------------------------------

estadd prvalue post replaces the current model unless name is specified, in which case the results are stored under name and the model remains active. However, if the model has a name (because it has been stored), the name of the model is used as a prefix. If, for example, the model has been stored as model1, then estadd prvalue post stores its results under model1name. Use title() to specify a title for the stored results.

The default for estadd prvalue post is to arrange e(b) in a way so that predictions are grouped by outcome (i.e. outcome labels are used as equations). Alternatively, specify swap to group predictions by prvalue calls (i.e. to use the prediction labels as equations).

e(X) contains one row for each independent variable. To address the rows in estout's cells() option type X[varname], where varname is the name of the variable of interest. e(X2), if provided, is analogous to e(X).

estadd asprvalue [, label(string) asprvalue_options ]

estadd asprvalue post [name] [, title(string) swap ]

applies asprvalue from Long and Freese's SPost package and adds the returned results to e(). The procedure is to first collect a series of predictions by repeated calls to estadd asprvalue and then apply estadd asprvalue post to prepare the results for tabulation as in the following example:

. clogit choice train bus time invc, group(id) . estadd asprvalue, cat(train bus) label(at means) . estadd asprvalue, cat(train bus) rest(asmean) label(at asmeans) . estadd asprvalue post . estout

You may specify asprvalue_options with estadd asprvalue as described in help asprvalue. For example, use x() and rest() to set the values of the independent variables. Use label() to label the single calls. "pred#" is used as label if label() is omitted, where # is the number of the call. Labels may contain spaces but they will be trimmed to a maximum length of 30 characters and some characters (:, ., ") will be replaced by underscore. The results from the single calls are collected in matrices e(_estadd_asprval) (predictions), e(_estadd_asprval_asv) (values of alternative-specific variables), and e(_estadd_asprval_csv) (values of case-specific variables). Specify replace to drop results from previous calls.

estadd asprvalue post posts the collected predictions in e(b) so that they can be tabulated. The following results are saved:

e(...) Contents ------------------------------------------------------------ Scalars N number of observations

Macros depvar name of dependent variable cmd estadd_asprvalue model model estimation command properties b

Matrices b predictions asv alternative-specific variables (if available) csv case-specific variables (if available) ------------------------------------------------------------

estadd asprvalue post replaces the current model unless name is specified, in which case the results are stored under name and the model remains active. However, if the model has a name (because it has been stored), the name of the model is used as a prefix. If, for example, the model has been stored as model1, then estadd asprvalue post stores its results under model1name. Use title() to specify a title for the stored results.

The default for estadd asprvalue post is to arrange e(b) in a way so that predictions are grouped by outcome (i.e. outcome labels are used as equations). Alternatively, specify swap to group predictions by prvalue calls (i.e. to use the prediction labels as equations).

e(asv) and e(csv) contain one row for each variable. To address the rows in estout's cells() option type asv[varname] or csv[varname], where varname is the name of the variable of interest.

Options

replace permits estadd to overwrite existing e() macros, scalars, or matrices.

prefix(string) denotes a prefix for the names of the added results. The default prefix is an empty string. For example, if prefix(string) is specified, the beta subcommand will return the matrix e(stringbeta).

quietly suppresses the output from the called subcommand and displays only the list of added results. Note that many of estadd's subcommands do not generate output, in which case quietly has no effect.

subcmdopts are subcommand specific options. See the descriptions of the subcommands above.

Examples

Example 1: Add r()-returns from other programs to the current estimates

. sysuse auto (1978 Automobile Data)

. quietly regress price mpg weight . test mpg=weight

( 1) mpg - weight = 0

F( 1, 71) = 0.36 Prob > F = 0.5514 . estadd scalar p_diff = r(p)

added scalar: e(p_diff) = .55138216 . estout, stats(p_diff) ------------------------- b ------------------------- mpg -49.51222 weight 1.746559 _cons 1946.069 ------------------------- p_diff .5513822 -------------------------

Example 2: Add means and standard deviations of the model's regressors to the current estimates

. quietly logit foreign price mpg . estadd summ, mean sd

added matrices: e(sd) : 1 x 3 e(mean) : 1 x 3 . estout, cells("mean sd") drop(_cons) -------------------------------------- mean sd -------------------------------------- price 6165.257 2949.496 mpg 21.2973 5.785503 --------------------------------------

Example 3: Add standardized beta coefficients to stored estimates

. eststo: quietly regress price mpg (est1 stored)

. eststo: quietly regress price mpg foreign (est2 stored)

. estadd beta: * . estout, cells(beta) drop(_cons) -------------------------------------- est1 est2 beta beta -------------------------------------- mpg -.4685967 -.5770712 foreign .2757378 --------------------------------------

See http://repec.org/bocode/e/estout for additional examples.

Writing one's own subcommands

A program providing a new estadd subcommand should be called estadd_mysubcommand (see help program for advice on defining programs). mysubcommand will be available to estadd as a new subcommand after the program definition has been executed or saved to a file called "estadd_mysubcommand.ado" in either the current directory or somewhere else in the adopath (see help sysdir).

Use the subcommands provided within "estadd.ado" as a starting point for writing new subcommands. See http://repec.org/bocode/e/estout/estadd.html#estadd007 for an example.

Author

Ben Jann, ETH Zurich, jannb@ethz.ch

Also see

Manual: [R] estimates

Online: help for estimates, ereturn, program, esttab, estout, eststo, estpost