# Stata: Planned Comparisons with the test command

06 Jul 2011# Planned 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 the`test`

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 that`test`

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.