Home  /  Resources & support  /  FAQs  /  Understand and manipulate autolevels in collections

What are the autolevels of a dimension in a table (collection)?

Title   Understand and manipulate autolevels in collections
Author Chris Cheng, StataCorp

Exploring autolevels in table dimensions

In the context of collection, autolevels ([TABLES] collect style autolevels) represent the default levels of a dimension that are automatically displayed in a table when the dimension is referenced without specifying detailed levels. Although the result dimension often comes with predefined autolevels, you also have the flexibility to set autolevels for results when using commands like collect: or collect get. Plus, you can set autolevels for any dimension. Let’s explore this concept with an example:

. collect clear

. sysuse auto
(1978 automobile data)

. quietly collect _r_b _r_se: regress price mpg i.foreign

. quietly collect _r_b _r_se: regress price mpg turn weight i.foreign

After collecting results (_r_b for coefficients and _r_se for standard errors) from two linear regressions, we can construct a table with predictors in the rows and results nested within. By laying out the results from two models side by side in the columns, we can create a comprehensive estimation table. (Please refer to FAQ: How to change a table’s layout using collect layout? for more information on building table layouts.)

. collect layout (colname#result) (cmdset)

Collection: default
      Rows: colname#result
   Columns: cmdset
   Table 1: 18 x 2

1 2
Mileage (mpg)
Coefficient -294.1955 -.4660076
Std. error 55.69172 73.51407
Domestic
Coefficient 0 0
Std. error 0 0
Foreign
Coefficient 1767.292 3221.415
Std. error 700.158 706.4847
Turn circle (ft.)
Coefficient -229.2059
Std. error 114.2423
Weight (lbs.)
Coefficient 4.284532
Std. error .7404967
Intercept
Coefficient 11905.42 1368.197
Std. error 1158.634 4887.597

We would like to add model-level results, such as sample size and \(R^2\), in the existing table of coefficients. We first attempt to do this by adding the result dimension in the rows, because each regress command (identified by cmdset) provides one set of model-level results.

. collect layout (colname#result result) (cmdset)

Collection: default
      Rows: colname#result result
   Columns: cmdset
   Table 1: 18 x 2

1 2
Mileage (mpg)
Coefficient -294.1955 -.4660076
Std. error 55.69172 73.51407
Domestic
Coefficient 0 0
Std. error 0 0
Foreign
Coefficient 1767.292 3221.415
Std. error 700.158 706.4847
Turn circle (ft.)
Coefficient -229.2059
Std. error 114.2423
Weight (lbs.)
Coefficient 4.284532
Std. error .7404967
Intercept
Coefficient 11905.42 1368.197
Std. error 1158.634 4887.597

We expected the combination between result and cmdset to display the model-level results. However, there are no output changes. Previously, when we referred to this result dimension, in the table layout, _r_b and _r_se were displayed because we “accidentally” set the autolevels when we used collect _r_b _r_se:. To Stata’s eyes, we “deliberately” want these two levels every time this dimension, result, is used in collect layout. The mechanism of collect get: is that all results (coefficient level and model level) are collected. When we supply the keywords, such as _r_b and _r_se, they are automatically interpreted as autolevels.

If you are not sure about what levels are used as the autolevels, use this command:

. collect query autolevels result

Automatic dimension levels
Collection: default
 Dimension: result
    Levels: _r_b _r_se

In the output, we confirmed that the two levels, _r_b and _r_se, are indeed the autolevels. This means that when using result in collect layout, result[_r_b _r_se] is assumed. Stata views

. collect layout (colname#result result) (cmdset)

as

. collect layout (colname#result[_r_b _r_se] result[_r_b _r_se]) (cmdset)

Therefore, the model-level results were not successfully shown. Prior to learning about the configuration of autolevels, we have the option to manually provide the model-level results that should be presented. Let’s list the levels of result by utilizing collect levelsof:

. collect levelsof result

Collection: default
 Dimension: result
    Levels: F N _r_b _r_ci _r_df _r_lb _r_p _r_se _r_ub _r_z _r_z_abs beta cmd
            cmdline depvar df_m df_r estat_cmd ll ll_0 marginsok model mss
            predict properties r2 r2_a rank rmse rss title vce

Here we see the coefficient-level results, such as _r_b and _r_se. Additionally, model-level results like r2 and N are available. If you prefer not to adjust the autolevels, you can include detailed levels directly in the dimension, as illustrated below:

. collect layout (colname#result[_r_b _r_se] result[r2 N]) (cmdset)

Collection: default
      Rows: colname#result[_r_b _r_se] result[r2 N]
   Columns: cmdset
   Table 1: 20 x 2

1 2
Mileage (mpg)
Coefficient -294.1955 -.4660076
Std. error 55.69172 73.51407
Domestic
Coefficient 0 0
Std. error 0 0
Foreign
Coefficient 1767.292 3221.415
Std. error 700.158 706.4847
Turn circle (ft.)
Coefficient -229.2059
Std. error 114.2423
Weight (lbs.)
Coefficient 4.284532
Std. error .7404967
Intercept
Coefficient 11905.42 1368.197
Std. error 1158.634 4887.597
R-squared .2838475 .5271446
Number of observations 74 74

Manipulating autolevels in table dimensions

If you prefer not to specify the levels of result in collect layout every time (especially when you have many results to display), you can configure the existing autolevels of the result dimension. This can be done by collect style autolevels:

. collect style autolevels result r2 N

This command adds levels r2 and N to the existing autolevels. Thus, no need to include the coefficients (_r_b) and standard errors (_r_se) here, because they’re already autolevels.

If you want to clear and override current autolevels with the ones being specified, use the clear option:

. collect style autolevels result _r_b _r_se r2 N, clear

Now simply specifying the dimension names will yield the desired table:

. collect layout (colname#result result) (cmdset)

Collection: default
      Rows: colname#result result
   Columns: cmdset
   Table 1: 20 x 2

1 2
Mileage (mpg)
Coefficient -294.1955 -.4660076
Std. error 55.69172 73.51407
Domestic
Coefficient 0 0
Std. error 0 0
Foreign
Coefficient 1767.292 3221.415
Std. error 700.158 706.4847
Turn circle (ft.)
Coefficient -229.2059
Std. error 114.2423
Weight (lbs.)
Coefficient 4.284532
Std. error .7404967
Intercept
Coefficient 11905.42 1368.197
Std. error 1158.634 4887.597
R-squared .2838475 .5271446
Number of observations 74 74

After you set the autolevels, the underlying command is

. collect layout (colname#result[_r_b _r_se r2 N] result[_r_b _r_se r2 N]) (cmdset)

Please note if a combination of tags does not find any item, such as the combination between colname[mpg]#result[r2] and cmdset[1], it will not error out or affect the table rendering. Only the items identified by the tag combinations (such as colname[mpg]#result[_r_b] and cmdset[1]; result[r2] and cmdset[1]) will be displayed.