## Custom statistics in nested regression tables

In recent version of asdocx (Jan 20, 2022: Version 1.9.8), the option `stat()`

of nested regressions has a big improvement. Previously, option `stat()`

would only report additional regression statistics that are stored in macro `e()`

. The updated version of asdocx allows us to report several other descriptive statistics for the dependent or any other selected variable. In this post, I show several examples of how option `stat()`

can be used in different scenarios. Please note that each statistic should be separated by the character comma.

### Report statistics available in e() macro

After any regression model, you type `ereturn list`

, you shall see different scalars / macros available on the screen. These can be reported in the nested regression table by writing the macro name inside option `stat()`

. For example, after running an OLS model, the following macro are available.

ereturn list e(N) = 69 e(df_m) = 2 e(df_r) = 66 e(F) = 11.05650420530028 e(r2) = .250961904598189 e(rmse) = 2558.53561189829 e(mss) = 144754063.3643494 e(rss) = 432042895.5052159 e(r2_a) = .2282637804951038 e(ll) = -637.8293069393488 e(ll_0) = -647.7986144493904 e(rank) = 3

Let’s report the `rmse`

and `r2_a`

(the adjusted r-squared) in the nested regression model.

asdocx reg price mpg rep78, nest replace stat(rmse, r2_a)

**Table: Regression results**

(1) | |
---|---|

price | |

mpg | -271.643*** |

(57.771) | |

rep78 | 666.957* |

(342.356) | |

Intercept | 9657.754*** |

(1346.54) | |

Observations | 69 |

R^{2} |
0.251 |

RMSE | 2558.536 |

Adjusted R^{2} |
0.228 |

### Report custom-statistics

Descriptive statistics can be reported for any variable in the nested regression tables using options

and **statvar**(*varname*)

together. If option *stat*()

is not used, the descriptive statistics are reported for the dependent variable of the regression model. The following descriptive statistics are allowed.**statvar**()

option | details |
---|---|

N | Number of observations |

mean | Arithmetic mean |

sd | Standard deviation |

sum | Sum / total |

min | The smallest value |

max | The largest value |

skewness | Skewness |

kurtosis | Kurtosis |

p1 | 1st percentile |

p5 | 5th percentile |

p10 | 10th percentile |

p25 | 25th percentile |

p50 | Median or the 50 percentile |

p75 | 75th percentile |

p90 | 90th percentile |

p99 | 99th percentile |

Let’s make a nested table of two regressions, each one having a different dependent variable. Also, let’s add mean, standard deviation, skewness, and kurtosis for the dependent variables.

asdocx reg price mpg rep78, nest replace stat(mean sd skewness kurtosis) asdocx reg foreign mpg rep78 length turn , nest stat(mean sd skewness kurtosis)

**Table: Regression results**

Variables | (1) | (2) |
---|---|---|

price | foreign | |

mpg | -271.643*** | -0.021* |

(57.771) | (0.011) | |

rep78 | 666.957* | 0.182*** |

(342.356) | (0.045) | |

length | -0.008** | |

(0.004) | ||

turn | -0.036* | |

(0.018) | ||

Intercept | 9657.754*** | 3.072*** |

(1346.54) | (0.79) | |

Observations | 69 | 69 |

R^{2} |
0.251 | 0.58 |

Mean | 6146.043 | 0.304 |

Std. Dev. | 2912.44 | 0.464 |

Skewness | 1.688 | 0.85 |

Kurtosis | 5.032 | 1.723 |

### Option statvar()

Option

`statvar()`

is used to specify the variable for which descriptive statistics are reported. The default variable is the dependent variable of the regression model.