Title
esttab -- Display formatted regression table
Table of contents
Syntax Description Options Examples Backmatter
Syntax
esttab [ namelist ] [ using filename ] [ , options ]
where namelist is a name, a list of names, or _all. The * and ? wildcards are allowed in namelist. A name may also be ., meaning the current (active) estimates.
options description ---------------------------------------------------------------------- Main b(fmt) specify format for point estimates beta[(fmt)] display beta coefficients instead of point est's main(name [fmt]) display contents of e(name) instead of point e's t(fmt) specify format for t-statistics abs use absolute value of t-statistics not suppress t-statistics z[(fmt)] display z-statistics (affects label only) se[(fmt)] display standard errors instead of t-statistics p[(fmt)] display p-values instead of t-statistics ci[(fmt)] display confidence intervals instead of t-stat's aux(name [fmt]) display contents of e(name) instead of t-stat's [no]constant do not/do report the intercept
Significance stars [no]star[(list)] do not/do report significance stars staraux attach stars to t-stat's instead of point est's
Summary statistics r2|ar2|pr2[(fmt)] display (adjusted, pseudo) R-squared aic|bic[(fmt)] display Akaike's or Schwarz's information crit. scalars(list) display any other scalars contained in e() sfmt(fmt [...]) set format(s) for scalars() noobs do not display the number of observations obslast place the number of observations last
Layout wide place point est's and t-stat's beside one another onecell combine point est's and t-stat's in a single cell [no]parentheses do not/do print parentheses around t-statistics brackets use brackets instead of parentheses [no]gaps suppress/add vertical spacing [no]lines suppress/add horizontal lines noeqlines suppress lines between equations compress reduce horizontal spacing plain produce a minimally formatted table
Labeling label make use of variable labels title(string) specify a title for the table mtitles[(list)] specify model titles to appear in table header nomtitles disable model titles [no]depvars do not/do use dependent variables as model titles [no]numbers do not/do print model numbers in table header coeflabels(list) specify labels for coefficients [no]notes suppress/add notes in the table footer addnotes(list) add lines at the end of the table
Document format smcl | fixed | tab | csv | scsv | rtf | html | tex | booktabs set the document format (smcl is the default) fragment suppress table opening and closing (LaTeX, HTML) page[(packages)] add page opening and closing (LaTeX, HTML) alignment(string) set alignment within columns (LaTeX, HTML, RTF) width(string) set width of table (LaTeX, HTML) longtable multi-page table (LaTeX)
Output replace overwrite an existing file append append the output to an existing file type force prining the table in the results window noisily display the executed estout command
Advanced drop(list) drop individual coefficients keep(list) keep individual coefficients order(list) change order of coefficients equations(list) match the models' equations eform report exponentiated coefficients margin report marginal effects/elasticities unstack place multiple equations in separate columns estout_options any other estout options ----------------------------------------------------------------------
Description
esttab is a wrapper for estout. It produces a pretty-looking publication-style regression table from stored estimates without much typing. The compiled table is displayed in the Stata results window or, optionally, written to a text file specified by using filename. If filename is specified without suffix, a default suffix is added depending on the specified document format (".smcl" for smcl, ".txt" for fixed and tab, ".csv" for csv and scsv, ".rtf" for rft, ".html" for html, and ".tex" for tex and booktabs).
namelist provides the names of the stored estimation sets to be tabulated. You may use the * and ? wildcards in namelist. If namelist is omitted, esttab tabulates the estimation sets stored by eststo (see help eststo) or, if no such estimates are present, the currently active estimates (i.e. the model fit last).
See help estimates for information about storing estimation results. An alternative to the estimates store command is provided by eststo.
esttab can also be used to tabulate a Stata matrix applying syntax esttab matrix(name), where name is the name of the matrix. Furthermore, an e()-matrix or r()-matrix can be tabulated specifying esttab e(name) or esttab r(name). Most options under the headings 'Main', 'Significance stars', and 'Summary statistics' are irrelevant in this case. See help estout for further details on tabulating matrices.
+------+ ----+ Main +-------------------------------------------------------------
b(fmt) sets the numerical display format for the point estimates. The default format is a3. (See Numerical formats below for details on available formats.)
beta[(fmt)] requests that standardized beta coefficients be displayed in place of the raw point estimates and, optionally, sets the display format (the default is to print three decimal places). Note that beta causes the intercept to be dropped from the table (unless constant is specified).
main(name [fmt]) requests that the statistics stored in e(name) be displayed in place of the point estimates and, optionally, sets the display format (the default is to use the display format for point estimates). For example, e(name) may contain statistics added by estadd (see help estadd).
t(fmt) sets the display format for t-statistics. The default is to display two decimal places.
abs causes absolute values of t-statistics to be reported.
not suppresses the printing of t-statistics.
z[(fmt)] requests that z-statistics be displayed. z-statistics are the same as t-statistics. Hence, specifying z does not change the table contents, it only changes the label.
se[(fmt)] requests that standard errors be displayed in place of t-statistics and, optionally, sets the display format (the default is to use the display format for point estimates).
p[(fmt)] requests that p-values be displayed in place of t-statistics and, optionally, sets the display format (the default is to print three decimal places)
ci[(fmt)] requests that confidence intervals be displayed in place of t-statistics and, optionally, sets the display format (the default is to use the display format for point estimates). level(#) assigns the confidence level, in percent. The default is level(95) or as set by set level.
aux(name [fmt]) requests that the statistics stored in e(name) be displayed in place of t-statistics and, optionally, sets the display format (the default is to use the display format for point estimates). For example, e(name) may contain statistics added by estadd (see help estadd, if installed).
noconstant causes the intercept be dropped from the table. Specify constant to include the constant in situations where it is dropped by default.
+--------------------+ ----+ Significance stars +-----------------------------------------------
star[(symbol level [...])] causes stars denoting the significance of the coefficients to be printed next to the point estimates. This is the default. Type nostar to suppress the stars. The default symbols and thresholds are: * for p<.05, ** for p<.01, and *** for p<.001. Alternatively, for example, type star(+ 0.10 * 0.05) to set the following thresholds: + for p<.10 and * for p<.05. Note that the thresholds must lie in the (0,1] interval and must be specified in descending order.
staraux causes the significance stars be printed next to the t-statistics (or standard errors, etc.) instead of the point estimates.
+--------------------+ ----+ Summary statistics +-----------------------------------------------
r2[(fmt)], ar2[(fmt)], and pr2[(fmt)] include the R-squared, the adjusted R-squared, and the pseudo-R-squared in the table footer and, optionally, set the corresponding display formats (the default is to display three decimal places).
aic[(fmt)] and bic[(fmt)] include Akaike's and Schwarz's information criterion in the table footer and, optionally, set the corresponding display formats (the default is to use the display format for point estimates).
scalars(list) may be used to add other e()-scalars to the table footer (type ereturn list to display a list of available e()-scalars after fitting a model; see help ereturn). For example, scalars(df_m) would report the model degrees of freedom for each model. list may be a simple list of names of e()-scalars, e.g.
. esttab, scalars(ll_0 ll chi2)
or, alternatively, a list of quoted name-label pairs, e.g.
. esttab, scalars("ll Log lik." "chi2 Chi-squared")
sfmt(fmt [...]) sets the display format(s) for the statistics specified in scalars() (the default is to use the display format for point estimates). If sfmt() contains less elements than scalars(), the last specified format is used for the remaining scalars. That is, only one format needs to be specified if the same format be used for all scalars.
noobs suppresses displaying information on the number of observations. The default is to report the number of observations for each model in the table footer.
obslast displays the number of observations in the last row of the table footer. The default is to use the first row.
+--------+ ----+ Layout +-----------------------------------------------------------
wide causes point estimates and t-statistics (or standard errors, etc.) to be printed beside one another instead of beneath one another.
onecell causes point estimates and t-statistics (or standard errors, etc.) to be combined in a single table cell. This option is useful primarily in rtf or html mode. In these modes a line break is inserted between the two statistics. The benefit from using onecell in rtf or html mode is that long coefficients labels do not derange the table layout. The default for other modes is to insert a blank between the statistics. Use estout's incelldelimiter() option to change this.
parentheses encloses t-statistics (or standard errors, etc.) in parentheses. This is the default. Specify noparentheses to suppress the parentheses.
brackets uses square brackets, [], instead of parentheses. Note that brackets are the default for confidence intervals.
gaps adds empty rows (or, more generally, additional vertical space) between coefficients to increase readability (empty rows are also inserted between the table's header, body, and footer, unless lines is activated). This is the default unless wide or not is specified. Type nogaps to suppress the extra spacing.
lines adds horizontal lines to the table separating the table's header, body, and footer and, in the case of multiple equation models, the equations. This is the default. Specify nolines to suppress the lines. Lines are always suppressed in the tab and csv modes.
noeqlines suppresses the horizontal lines between equations in the case of multiple equation models.
compress reduces the amount of horizontal spacing (so that more models fit on screen without line breaking). The option has no effect in the tab and csv modes. Furthermore, note that in the TeX and HTML modes the compress option only changes the arrangement the table's code, but not the look of the compiled end-product. In rtf, however, compress changes the look of the formatted table.
plain produces a minimally formatted table. It is a shorthand to specifying nostar, nodepvars, nonumbers, noparentheses, nogaps, nolines and nonotes and setting all formats to %9.0g. Note that the disabled options can be switched on again. For example, type
. esttab, plain star
to produce a plain table including significance stars.
+----------+ ----+ Labeling +---------------------------------------------------------
label specifies that variable labels be used instead of variable names (and estimation set titles be used instead of estimation set names). Furthermore, label prints "Constant" instead of "_cons".
title(string) may be used to provide a title for the table. If specified, string is printed at the top of the table. Note that specifying a title causes the table to be set up as a floating object in LaTeX mode. You may want to set a label for referencing in this case. For example, if you type title(...\label{tab1}), then "\ref{tab1}" could be used in the LaTeX document to point to the table.
mtitles, without argument, specifies that for each model the title (or, if empty, the name) of the stored estimation set be printed as the model's title in the table header. If mtitles is omitted, the default is to use name or label of the dependent variable as the model's title (see the depvar option). Alternatively, use mtitles(list) specifies a list of model titles. Enclose the titles in double quotes if they contain spaces, e.g. mtitles("Model 1" "Model 2").
nomtitles suppresses printing of model titles.
depvars prints the name (or label) of the (first) dependent variable of a model as the model's title in the table header. This is the default. Specify nodepvars to use the names of the stored estimation sets as titles.
numbers includes a row containing consecutive model numbers in the table header. This is the default. Specify nonumbers to suppress printing the model numbers.
coeflabels(name label [...]) specifies labels for the coefficients. Specify names and labels in pairs and, if necessary, enclose labels in double quotes, e.g. coeflabels(mpg Milage rep78 "Repair Record").
notes prints notes at the end of the table explaining the significance symbols and the type of displayed statistics. This is the default. Specify nonotes to suppress the notes.
addnotes(list) may be used to add further lines of text at the bottom of the table. Lines containing blanks must be enclosed in double quotes, e.g. addnotes("Line 1" "Line 2").
+-----------------+ ----+ Document format +--------------------------------------------------
smcl, fixed, tab, csv, scsv, rtf, html, tex, and booktabs choose the table's basic output format. The default format is smcl unless using is specified, in which case the default format depends on the filename's suffix (smcl for ".smcl", csv for ".csv", rtf for ".rtf", html for ".htm" or ".html", tex for ".tex", and fixed for all other filenames).
smcl produces a SMCL formatted table to be displayed in the Stata results window or the Stata viewer.
fixed produces a fixed-format ASCII table. This is suitable, for example, if the table be displayed in a text editor.
tab produces a tab-delimited ASCII table.
csv produces a CSV (Comma Separated Value format) table for use with Microsoft Excel. Delimiter is a comma. In order to prevent Excel from interpreting the contents of the table cells, they are enclosed double quotes preceded by an equal sign (i.e. ="..."). However, if the plain option is specified, the table cells are enclosed in double quotes without the leading equal sign. The first method is appropriate if you want to preserve the table's formatting. The second method is appropriate if you want to use the table's contents for further computations in Excel.
scsv is a variant on the CSV format that uses a semicolon as the delimiter. This is appropriate for some non-English versions of Excel (e.g. the German version).
rtf produces a Rich Text Format table for use with word processors.
html produces a simple HTML formatted table.
tex produces a LaTeX formatted table.
booktabs produces a LaTeX formatted table for use with LaTeX's booktabs package.
fragment causes the table's opening and closing specifications to be suppressed. This is relevant primarily in LaTeX and HTML mode.
page[(packages)] adds opening and closing code to define a whole LaTeX or HTML document. The default is to produce a raw table that can then be included into an existing LaTeX or HTML document. Specifying packages in parentheses causes \usepackage{packages} to be added to the preamble of the LaTeX document (note that the booktabs package is automatically loaded if booktabs is specified).
alignment(string) may be used to specify the alignment of the models' columns in LaTeX, HTML, or RTF mode.
In LaTeX mode string should be a LaTeX column specifier. The default is to center the columns. To produce right-aligned columns, for example, type alignment(r). If the table contains multiple columns per model/equation, the alignment specification should define all columns. For example, if the wide option is specified, you could type alignment(cr) to, say, center the point estimates and right-align the t-statistics. Note that more sophisticated column definitions are often needed to produce appealing results. In particular, LaTeX's dcolumn package proves useful to align columns on the decimal point.
In HTML mode string should be a HTML alignment specifier. The default is to omit alignment specification, which results in left aligned columns. To center the columns in HTML, for example, specify alignment(center). Other than in LaTeX mode, the same alignment is used for all columns if the table contains multiple columns per model/equation in the HTML mode.
In RTF mode string should be one of l, c, r, and j. The default is to center the columns. To produce right-aligned columns, for example, type alignment(r). The same alignment is used for all columns if the table contains multiple columns per model/equation in the RTF mode.
Note that alignment() does not change the alignment of the variable names/labels in the left stub of the table. They are always left-aligned.
width(string) sets the overall width of the table in LaTeX or HTML. string should be LaTeX or HTML literal. For example, specify width(\hsize) in LaTeX or width(100%) in HTML to span the whole page. The table columns will spread regularly over the specified width. Note that in RTF mode estout's varwidth() and modelwidth() options may be used to change the width of the table columns.
longtable causes the longtable environment to be used in LaTeX. Use longtable for tables that are too long to fit on a single page. longtable cannot be combined with width(). Make sure to load the longtable package in the LaTeX document, i.e. include \usepackage{longtable} in the document's preamble.
+--------+ ----+ Output +-----------------------------------------------------------
replace permits esttab to overwrite an existing file.
append specifies that the output be appended to an existing file. It may be used even if the file does not yet exist. Specifying append together with page in TeX or HTML mode causes the new table to be inserted at the end of the body of an existing document (esttab seeks a line reading "\end{document}" or "</body>", respectively, and starts appending from there; contents after this line will be overwritten). In RTF mode, existing documents are assumed to end with a line containing a single "}".
type specifies that the assembled table be printed in the results window and the log file. This is the default unless using is specified.
noisily displays the executed estout command.
+----------+ ----+ Advanced +---------------------------------------------------------
drop(droplist) identifies the coefficients to be dropped from the table. A droplist comprises one or more specifications, separated by white space. A specification can be either a parameter name (e.g. price), an equation name followed by a colon (e.g. mean:), or a full name (e.g. mean:price). You may use the * and ? wildcards in equation names and parameter names. Be sure to refer to the matched equation names, and not to the original equation names in the models, when using the equations() option to match equations.
keep(keeplist) selects the coefficients to be included in the table. keeplist is specified analogous to droplist in drop() (see above).
order(orderlist) changes the order of the coefficients and equations within the table. orderlist is specified analogous to droplist in drop() (see above). Coefficients and equations that do not appear in orderlist are placed last (in their original order).
equations(eqmatchlist) specifies how the models' equations are to be matched. This option is passed to the internal call of estimates table. See help estimates on how to specify this option. The most common usage is equations(1) to match all the first equations in the models.
eform displays the regression table in exponentiated form. The exponent of a coefficient is displayed in lieu of the untransformed coefficient; standard errors and confidence intervals are transformed as well. Note that the intercept is dropped in eform-mode, unless constant is specified.
margin indicates that the marginal effects or elasticities be reported instead of the raw coefficients. A prerequisite for this option to work correctly is that mfx has been applied to a model prior to storing its results (see help mfx). Note that the standard errors, etc. are transformed as well. Furthermore, the intercept is dropped, unless constant is specified.
unstack specifies that the individual equations from multiple-equation models (e.g. mlogit, reg3, heckman) be placed in separate columns. The default is to place the equations below one another in a single column.
estout_options are any other estout options (see help estout). Note that estout options take precedence over esttab options. For example,
cells() disables b(), beta(), main(), t(), abs, not, se(), p(), ci(), aux(), star, staraux, wide, onecell, parentheses, and brackets,
stats() disables r2(), ar2(), pr2(), aic(), bic(), scalars(), sfmt(), noobs, and obslast.
Other estout options that should be used with care are begin(), delimiter(), end(), prehead(), posthead(), prefoot(), postfoot(), mlabels(), and varlabels().
+-------------------+ ----+ Numerical formats +------------------------------------------------
Numerical display formats may be specified in esttab as follows:
1. Official Stata's display formats: You may specify formats, such as %9.0g or %8.2f. See help format for a list of available formats. %g or g may be used as a synonym for %9.0g.
2. Fixed format: You may specify an integer value such as 0, 1, 2, etc. to request a display format with a fixed number of decimal places. For example, t(3) would display t-statistics with three decimal places.
3. Automatic format: You may specify a1, a2, ..., or a9 to cause esttab to choose a reasonable display format for each number depending on the number's value. a may be used as a synonym for a3. The # in a# determines the minimum precision according to the following rules:
o Absolute numbers smaller than 1 are displayed with # significant decimal places (i.e. with # decimal places ignoring any leading zeros after the decimal point). For example, 0.00123456 is displayed as 0.00123 if the format is a3.
o Absolute numbers greater than 1 are displayed with as many digits required to retain at least one decimal place and are displayed with a minimum of (# + 1) digits. For example, if the format is a3, 1.23456 is displayed as 1.235, 12.3456 is displayed as 12.35, and 1234.56 is displayed as 1234.6.
o In any case, integers are displayed with zero decimal places, and very large or very small absolute numbers are displayed in exponential format.
Examples
The following examples are intended to illustrate the basic usage of esttab. Additional examples can be found at http://repec.org/bocode/e/estout.
The procedure is to first fit and store some models (see eststo) and then apply esttab to these stored estimates:
. eststo clear . sysuse auto (1978 Automobile Data) . eststo: quietly regress price weight mpg (est1 stored) . eststo: quietly regress price weight mpg foreign (est2 stored) . esttab, ar2 -------------------------------------------- (1) (2) price price -------------------------------------------- weight 1.747** 3.465*** (2.72) (5.49) mpg -49.51 21.85 (-0.57) (0.29) foreign 3673.1*** (5.37) _cons 1946.1 -5853.7 (0.54) (-1.73) -------------------------------------------- N 74 74 adj. R-sq 0.273 0.478 -------------------------------------------- t statistics in parentheses * p<0.05, ** p<0.01, *** p<0.001
The same table using labels:
. esttab, ar2 label ---------------------------------------------------- (1) (2) Price Price ---------------------------------------------------- Weight (lbs.) 1.747** 3.465*** (2.72) (5.49) Mileage (mpg) -49.51 21.85 (-0.57) (0.29) Car type 3673.1*** (5.37) Constant 1946.1 -5853.7 (0.54) (-1.73) ---------------------------------------------------- Observations 74 74 Adjusted R-squared 0.273 0.478 ---------------------------------------------------- t statistics in parentheses * p<0.05, ** p<0.01, *** p<0.001
Plain table:
. esttab, ar2 plain est1 est2 b/t b/t weight 1.746559 3.464706 2.723238 5.493003 mpg -49.51222 21.8536 -.5746808 .2944391 foreign 3673.06 5.370142 _cons 1946.069 -5853.696 .541018 -1.733408 N 74 74 adj. R-sq .2734846 .4781119
Using standard errors in brackets and suppress significance stars:
. esttab, se nostar brackets -------------------------------------- (1) (2) price price -------------------------------------- weight 1.747 3.465 [0.641] [0.631] mpg -49.51 21.85 [86.16] [74.22] foreign 3673.1 [684.0] _cons 1946.1 -5853.7 [3597.0] [3377.0] -------------------------------------- N 74 74 -------------------------------------- Standard errors in brackets
Printing beta coefficients:
. esttab, beta -------------------------------------------- (1) (2) price price -------------------------------------------- weight 0.460** 0.913*** (2.72) (5.49) mpg -0.097 0.043 (-0.57) (0.29) foreign 0.573*** (5.37) -------------------------------------------- N 74 74 -------------------------------------------- Standardized beta coefficients; t statistics in parentheses * p<0.05, ** p<0.01, *** p<0.001
Author
Ben Jann, ETH Zurich, jannb@ethz.ch
Also see
Manual: [R] estimates
Online: help for estimates, estcom, estout, eststo, estadd, estpost