Documentation for estadd

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 or newer)

    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, Institute of Sociology, University of Bern, jann@soz.unibe.ch


Also see

    Manual:  [R] estimates

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