This is a quick overview of how to use asreg command for running regressions by groups. To know about the installation and other details of asreg, please click here.
Regressions by groups
A group is a subset of data that has a common identifier. Examples of groups can include families, industries, countries, regions, months, years, portfolios, etc. If a linear regression needs to be estimated separately for each group, asreg is the best option. asreg is blinking fast and writes all regression outputs to the data in memory as separate variables. This eliminates the need for writing the results to a separate file which is usually then merged back to the data for any further calculations. asreg eliminates all these steps and provides convenient and clean solution to by-group regression and rolling regressions. IF not installed, asreg can be installed from ssc with this line of code:
ssc install asreg
We shall use the grunfeld data set in our example. Let’s download it first:
Assume that we want to estimate a regression by year (in this example, year is our grouping variable) where the dependent variable is invest and independent variables are mvalue and kstock. Just like regress command, asreg uses the first variable as dependent variable and rest of the variables as independent variables. Using the grunfeld data, asreg command for estimating yearly regression would be:
bysort year: asreg invest mvalue kstock
Please note that the grouping variable year comes after the bysort prefix which is followed by full colon. Similarly, if we want to estimate the above regression for each company, our grouping variable would be company that will come after the bysort prefix:
bys company: asreg invest mvalue kstock
Standard errors and fitted values
If standard errors are needed for each explanatory variable, we shall just add the otpion se. Similarly, we can add option fit if fitted values are required.
bys company: asreg invest mvalue kstock se
bys company: asreg invest mvalue kstock se fit