Difference between revisions of "Iebaltab"
(11 intermediate revisions by the same user not shown) | |||
Line 8: | Line 8: | ||
==Overview== | ==Overview== | ||
<code>iebaltab</code> is a Stata command that produces [[Balance tests | balance tables]], or difference-in-means tables, with multiple groups or treatment arms. The command can test for statistically significant differences between either one control group and all other groups or between all groups against each other. The command also allows for fixed effects, covariates and different types of variance estimators. | <code>iebaltab</code> is a [[Stata Coding Practices|Stata]] command that produces [[Balance tests | balance tables]], or difference-in-means tables, with multiple groups or '''treatment arms'''. The command can test for statistically significant differences between either one control group and all other groups or between all groups against each other. The command also allows for fixed effects, covariates and different types of variance estimators. | ||
<code>iebaltab</code> issues helpful error messages if the command is mis-specified or if the nature of the data leaves the potential for the results to be misinterpreted or invalid. For example, if an observation has a missing value in a variable used in an F-test for joint significance, then Stata cannot do anything but drop that observation. The command will issue an error unless the user specifies the option to suppress the error or specifies an option that tells the command how to interpret missing values. | <code>iebaltab</code> issues helpful error messages if the command is mis-specified or if the nature of the data leaves the potential for the results to be misinterpreted or invalid. For example, if an observation has a missing value in a '''variable''' used in an F-test for joint significance, then '''Stata''' cannot do anything but drop that observation. The command will issue an error unless the user specifies the option to suppress the error or specifies an option that tells the command how to interpret missing values. | ||
The command attaches notes to the bottom of the table with information on, for example, which significance levels are used for stars, which fixed effects or covariates that were included (if any) etc. | The command attaches notes to the bottom of the table with information on, for example, which significance levels are used for stars, which fixed effects or covariates that were included (if any) etc. | ||
Line 22: | Line 22: | ||
<nowiki>reg balancevarname if groupvar = groupcode</nowiki> | <nowiki>reg balancevarname if groupvar = groupcode</nowiki> | ||
where ''balancevarname'' refers to the variables (one at a time) listed in ''balancevarlist'', ''groupvar'' refers to the variable listed in the option | where ''balancevarname'' refers to the '''variables''' (one at a time) listed in ''balancevarlist'', ''groupvar'' refers to the variable listed in the option ''grpvar''(''varname''), and ''groupcode'' refers to the value corresponding to the group for which the means and standard errors are estimated. ''_b[cons]'' from the returned results is the group mean and ''_se[cons]'' is the standard error in the group mean. Fixed effects and covaraiates are never included in this regression. | ||
===Running t-tests=== | ===Running t-tests=== | ||
Line 29: | Line 29: | ||
test testgroupdummy </nowiki> | test testgroupdummy </nowiki> | ||
where ''testgroupdummy'' is a dummy with the value 0 for one of the groups compared in the t-test and 1 for the other group. r(p), from the returned results, is used when adding stars to the tables according to the thresholds specified in option starlevels(). | where ''testgroupdummy'' is a dummy with the value 0 for one of the groups compared in the t-test and 1 for the other group. ''r(p)'', from the returned results, is used when adding stars to the tables according to the thresholds specified in option ''starlevels()''. | ||
===Running F-tests=== | ===Running F-tests=== | ||
Line 36: | Line 36: | ||
testparm balancevarlist</nowiki> | testparm balancevarlist</nowiki> | ||
where r(p), from the returned results, is used when adding stars to the tables | where ''r(p)'', from the returned results, is used when adding stars to the tables | ||
according to the thresholds specified in option starlevels(). | according to the thresholds specified in option ''starlevels()''. | ||
===Including Fixed Effects=== | ===Including Fixed Effects=== | ||
Line 46: | Line 46: | ||
testparm balancevarlist </nowiki> | testparm balancevarlist </nowiki> | ||
where ''fixed'' refers to the variable included as the fixed effects in option fixedeffects(). | where ''fixed'' refers to the '''variable''' included as the fixed effects in option ''fixedeffects()''. | ||
===Including Covariates=== | ===Including Covariates=== | ||
Line 54: | Line 54: | ||
reg testgroupdummy balancevarlist covariatesvarlist | reg testgroupdummy balancevarlist covariatesvarlist | ||
testparm balancevarlist </nowiki> | testparm balancevarlist </nowiki> | ||
where ''covariatesvarlist'' refers to the variables inlcuded as the control variables in option covariates(). | where ''covariatesvarlist'' refers to the '''variables''' inlcuded as the control '''variables''' in option ''covariates()''. | ||
===Including Non-Default Variance Estimators=== | ===Including Non-Default Variance Estimators=== | ||
Line 77: | Line 77: | ||
<nowiki>ebaltab {it:outcome_variable}, grpvar({it:treatment_variable}) browse </nowiki> | <nowiki>ebaltab {it:outcome_variable}, grpvar({it:treatment_variable}) browse </nowiki> | ||
In the example above, let's assume that ''treatment_variable'' is a variable that is 0 for observations in the control group, and 1 for observations in the treatment group. Then in this example, the command will show the mean of {it:outcome_variable} and the standard error of that mean for the control group and the treatment group separately, and it will show the difference between the two groups and test if that difference is statistically significant. | In the example above, let's assume that ''treatment_variable'' is a '''variable''' that is 0 for observations in the '''control group''', and 1 for observations in the '''treatment group'''. Then in this example, the command will show the mean of {it:outcome_variable} and the standard error of that mean for the '''control group''' and the '''treatment group''' separately, and it will show the difference between the two groups and test if that difference is statistically significant. | ||
===Example 2=== | ===Example 2=== | ||
Line 93: | Line 93: | ||
rowlabels("outcome1 Outcome variable 1 @ outcome2 Second outcome variable")</nowiki> | rowlabels("outcome1 Outcome variable 1 @ outcome2 Second outcome variable")</nowiki> | ||
Here, there are now three variables listed as balance variables. In option ''rowlabels()'', two of those balance variables are given a row label to use in lieu of the variable name. Instead of outcome1 and outcome2, the row titles will read "Outcome variable 1 and " | Here, there are now three '''variables''' listed as balance '''variables'''. In option ''rowlabels()'', two of those balance '''variables''' are given a row label to use in lieu of the '''variable''' name. Instead of ''outcome1'' and ''outcome2'', the row titles will read "Outcome variable 1" and "Outcome variable 2", respectively. Since ''outcome3'' is not otherwise specified in ''rowlabels()'', the command will use the '''variable''' name of ''outcome3'' as the row title. | ||
== Back to Parent == | == Back to Parent == |
Latest revision as of 16:44, 11 August 2023
iebaltab
is a Stata command that produces balance tables, or difference-in-means tables, with multiple groups or treatment arms. It is a useful tool to use while sampling, conducting data analysis and exporting results in a reproducible manner. This article outlines the command's features and provides examples for use.
Read First
- This command is a part of the package
ietoolkit
. To install all the commands in this package includingiebaltab
, typessc install ietoolkit
in Stata. - For detailed instructions on how to implement the command in Stata, type
help iebaltab
in Stata.
Overview
iebaltab
is a Stata command that produces balance tables, or difference-in-means tables, with multiple groups or treatment arms. The command can test for statistically significant differences between either one control group and all other groups or between all groups against each other. The command also allows for fixed effects, covariates and different types of variance estimators.
iebaltab
issues helpful error messages if the command is mis-specified or if the nature of the data leaves the potential for the results to be misinterpreted or invalid. For example, if an observation has a missing value in a variable used in an F-test for joint significance, then Stata cannot do anything but drop that observation. The command will issue an error unless the user specifies the option to suppress the error or specifies an option that tells the command how to interpret missing values.
The command attaches notes to the bottom of the table with information on, for example, which significance levels are used for stars, which fixed effects or covariates that were included (if any) etc.
Implementation
This section outlines the basic functionalities of the command -- estimating descriptive stats, t-tests, and F-tests -- with sample code.
Generating Descriptive Stats
reg balancevarname if groupvar = groupcode
where balancevarname refers to the variables (one at a time) listed in balancevarlist, groupvar refers to the variable listed in the option grpvar(varname), and groupcode refers to the value corresponding to the group for which the means and standard errors are estimated. _b[cons] from the returned results is the group mean and _se[cons] is the standard error in the group mean. Fixed effects and covaraiates are never included in this regression.
Running t-tests
reg balancevarname testgroupdummy test testgroupdummy
where testgroupdummy is a dummy with the value 0 for one of the groups compared in the t-test and 1 for the other group. r(p), from the returned results, is used when adding stars to the tables according to the thresholds specified in option starlevels().
Running F-tests
reg testgroupdummy balancevarlist testparm balancevarlist
where r(p), from the returned results, is used when adding stars to the tables according to the thresholds specified in option starlevels().
Including Fixed Effects
xi : reg balancevarname testgroupdummy i.fixed test testgroupdummy xi : reg testgroupdummy balancevarlist i.fixed testparm balancevarlist
where fixed refers to the variable included as the fixed effects in option fixedeffects().
Including Covariates
reg balancevarname testgroupdummy covariatesvarlist test testgroupdummy reg testgroupdummy balancevarlist covariatesvarlist testparm balancevarlist
where covariatesvarlist refers to the variables inlcuded as the control variables in option covariates().
Including Non-Default Variance Estimators
reg balancevarname testgroupdummy, vce(vcetype) test testgroupdummy reg testgroupdummy balancevarlist, vce(vcetype) testparm balancevarlist
where vcetype is the variance estimator specified.
Combining Them All
All options described above can be included in the same regression, for example:
xi : reg balancevarname testgroupdummy i.fixed covariatesvarlist, vce(vcetype) test testgroupdummy
Examples
Example 1
ebaltab {it:outcome_variable}, grpvar({it:treatment_variable}) browse
In the example above, let's assume that treatment_variable is a variable that is 0 for observations in the control group, and 1 for observations in the treatment group. Then in this example, the command will show the mean of {it:outcome_variable} and the standard error of that mean for the control group and the treatment group separately, and it will show the difference between the two groups and test if that difference is statistically significant.
Example 2
global project_folder "C:\Users\project\baseline\results"} iebaltab ''outcome_variable'', grpvar(''treatment_variable'') /// save("$project_folder\balancetable.xlsx")}
Here, the table is saved to file instead of being shown in the browser window as in Example 1.
Example 3
iebaltab ''outcome1 outcome2 outcome3'', grpvar(''treatment_variable'') /// save("$project_folder\balancetable.xlsx") /// rowlabels("outcome1 Outcome variable 1 @ outcome2 Second outcome variable")
Here, there are now three variables listed as balance variables. In option rowlabels(), two of those balance variables are given a row label to use in lieu of the variable name. Instead of outcome1 and outcome2, the row titles will read "Outcome variable 1" and "Outcome variable 2", respectively. Since outcome3 is not otherwise specified in rowlabels(), the command will use the variable name of outcome3 as the row title.
Back to Parent
This article is part of the topic Stata Coding Practices
Additional Resources
- DIME Analytics' Descriptive Statistics: Creating Tables
- Read more about
ietoolkit
here on GitHub