Stata: Planned Comparisons with the test command
06 Jul 2011Planned Comparisons
This post will show you how to:
- Run a one-way ANOVA using an independent variable with four levels.
- Use planned comparisons to contrast levels of the independent variable.
We will use the built-in dataset systolic.
webuse systolic
Examining the data
We will treat the systolic variable as the outcome and drug as the independent variable. Let’s look at descriptive statistics for systolic and frequencies for drug.
summarize systolic, detail
table drug
Let’s also look at a boxplot of systolic by drug.
graph box systolic, by(drug)
Thus, it appears there are some differences between drug levels and systolic blood pressure.
Oneway ANOVA
Let’s run a oneway ANOVA. The null hypothesis is that there is no difference in the mean systolic blood pressure among the levels of drug.
anova systolic drug
We reject the null hypothesis.
Using the test
command to perform planned comparisons
In Stata, once we have completed the ANOVA, we can use the test
command to perform planned comparisons. Note two important things about the test
command:
- You can only use it after you have run the ANOVA. If you try to run it before you run the ANOVA, it won’t work.
- The
test
command is available to use for the most recently run model. If you run a second (or third, fourth, etc.) ANOVA model or another model that supports thetest
command (e.g., a regression) after you run the ANOVA you care about, you won’t be able to run the analysis you care about. That is, the information thattest
needs will not be available if you run another model.
Let’s say we want to know whether the average of drugs 1 and 2 differ from the averages of 3 and 4. To do this, we’d type the following command (after we ran the ANOVA).
test (1.drug + 2.drug)/2 = (3.drug + 4.drug)/2
We reject the null hypothesis that they are not different. Note that to reference levels of the variable drug we type 1.drug
or 2.drug
, etc. We put the level number, then a period, then the variabl ename.
See if you can figure out why the following statement is equivalent
test (1.drug + 2.drug)/2 - (3.drug + 4.drug)/2 = 0
Suppose we want to know if level 1 of drug is different from level 2.
test 1.drug = 2.drug
We cannot reject reject the null.
The test
command is really quite flexible. Fiddle around with it to better learn the syntax.