This page will demonstrate the use of the **anovalator** command (**search anovalator**) to
compute simple main effects for both a two-factor model and a three-factor model. We will be using
**anovalator** with the **anova** command on this page but **anovalator** works equally well
with **regress**, **xtmixed** and many other estimation commands.

**Example 1: Two-factor model**

For our first example we will use the **hsbanova** dataset.

use https://stats.idre.ucla.edu/stat/data/hsbanova, clear anova write grp##femaleNumber of obs = 200 R-squared = 0.2872 Root MSE = 8.14699 Adj R-squared = 0.2612 Source | Partial SS df MS F Prob > F -----------+---------------------------------------------------- Model | 5135.17494 7 733.59642 11.05 0.0000 | grp | 3641.68311 3 1213.89437 18.29 0.0000 female | 984.377328 1 984.377328 14.83 0.0002 grp#female | 575.513416 3 191.837805 2.89 0.0367 | Residual | 12743.7001 192 66.3734378 -----------+---------------------------------------------------- Total | 17878.875 199 89.843593

You will note that the **grp** by **female** interaction is statistically significant.
We will show two ways of using **anovalator** to test the effect of **grp** for each
level of **female**. The first method uses the **simple** option in **anovalator**.
This approach will only work with two-factor models. We will also include the **fratio**
option in all of our examples since the disturbances are assumed to be normally distributed
in our **anova** model.

anovalator grp female, simple fratioanovalator test of simple main effects for grp at(female=0) chi2(3) = 46.001924 p-value = 5.666e-10 scaled as F-ratio = 15.333975 anovalator test of simple main effects for grp at(female=1) chi2(3) = 13.644845 p-value = .00343069 scaled as F-ratio = 4.5482816

We can obtain the same results using **anovalator** with the **maineffect**
(abbreviated **main**) and **at** options.

anovalator grp, main fratio at(female=0)anovalator main-effect for grp at(female=0) chi2(3) = 46.001924 p-value = 5.666e-10 scaled as F-ratio = 15.333975anovalator grp, main fratio at(female=1)anovalator main-effect for grp at(female=1) chi2(3) = 13.644845 p-value = .00343069 scaled as F-ratio = 4.5482816

Since tests of simple main effects are a type of post-hoc comparison we need to use an adjusted
critical value to assess statistical significance. We will use the **smecriticalvalue**
command (**search smecriticalvalue**) for this purpose. The **smecriticalvalue**
command needs four pieces of information: **n** – the number of test performed; **df1** –
the degrees of freedom for each test; **df2** – the degrees of freedon for the error term in
the anova model; and **dfmodel** – the total degrees of freedom for all the terms in the model.

smecriticalvalue, n(2) df1(3) df2(192) dfmodel(7)number of tests: 2 numerator df: 3 denominator df: 192 original model df: 7 Critical value of F for alpha = .05 using ... ------------------------------------------------ Dunn's procedure = 3.3028802 Marascuilo & Levin = 3.6129331 per family error rate = 3.1847981 simultaneous test procedure = 3.6365283

By any of the four criteria above both tests of simple main effects are statistically significant.

**Example 2: Three-factor model**

Next we will run a three-factor model using the **threeway** dataset.

use https://stats.idre.ucla.edu/stat/data/threeway, clear anova y a##b##cNumber of obs = 24 R-squared = 0.9689 Root MSE = 1.1547 Adj R-squared = 0.9403 Source | Partial SS df MS F Prob > F -----------+---------------------------------------------------- Model | 497.833333 11 45.2575758 33.94 0.0000 | a | 150 1 150 112.50 0.0000 b | .666666667 1 .666666667 0.50 0.4930 a#b | 160.166667 1 160.166667 120.13 0.0000 c | 127.583333 2 63.7916667 47.84 0.0000 a#c | 18.25 2 9.125 6.84 0.0104 b#c | 22.5833333 2 11.2916667 8.47 0.0051 a#b#c | 18.5833333 2 9.29166667 6.97 0.0098 | Residual | 16 12 1.33333333 -----------+---------------------------------------------------- Total | 513.833333 23 22.3405797

The **a#b#c** threeway interaction is statistically significant. Prior research has
suggested that we look at the **b#c** interaction for each level of **a**. Because
this is a three-factor design we cannot use the **simple** option so we will use a variation
of the second method shown above, this time using the **twoway** (abbreviated **two**)
option.

anovalator grp female, two fratio at(a=1)anovalator two-way interaction for b#c at(a=1) chi2(2) = 30.5 p-value = 2.382e-07 scaled as F-ratio = 15.25anovalator b c, two fratio at(a=2)anovalator two-way interaction for b#c at(a=2) chi2(2) = .375 p-value = .82902912 scaled as F-ratio = .1875

Since the **b#c** at **a=1** is significant we will follow this analysis up
by looking at **c** for each level of **b** while keeping **a** at level one.

anovalator c, main fratio at(a=1 b=1)anovalator main-effect for c at(a=1 b=1) chi2(2) = 48 p-value = 3.775e-11 scaled as F-ratio = 24anovalator c, main fratio at(a=1 b=2)anovalator main-effect for c at(a=1 b=2) chi2(2) = 1 p-value = .60653066 scaled as F-ratio = .5

We will use the **smecriticalvalue** command once again, this including all four
tests since they have the same degrees of freedom.

smecriticalvalue, n(4) df1(2) df2(12) dfmodel(11)number of tests: 4 numerator df: 2 denominator df: 12 original model df: 11 Critical value of F for alpha = .05 using ... ------------------------------------------------ Dunn's procedure = 6.2753765 Marascuilo & Levin = 7.1335873 per family error rate = 6.4546898 simultaneous test procedure = 10.245969

There really wasn’t much mystery here. Clearly, the F-ratios of .1875 and .5 cannot be significant. While the F-ratios of 15.25 and 24 both exceed the most stringent criteria, the simultaneous test procedure.