# The ANOVA Procedure

### Example 26.5 Strip-Split Plot

In this example, four different fertilizer treatments are laid out in vertical strips, which are then split into subplots with different levels of calcium. Soil type is stripped across the split-plot experiment, and the entire experiment is then replicated three times. The dependent variable is the yield of winter barley. The data come from the notes of G. Cox and A. Rotti.

The input data are the 96 values of `Y`, arranged so that the calcium value (`Calcium`) changes most rapidly, then the fertilizer value (`Fertilizer`), then the `Soil` value, and, finally, the `Rep` value. Values are shown for `Calcium` (0 and 1); `Fertilizer` (0, 1, 2, 3); `Soil` (1, 2, 3); and `Rep` (1, 2, 3, 4). The following example produces Output 26.5.1, Output 26.5.2, Output 26.5.3, and Output 26.5.4.

```title1 'Strip-split Plot';
data Barley;
do Rep=1 to 4;
do Soil=1 to 3; /* 1=d 2=h 3=p */
do Fertilizer=0 to 3;
do Calcium=0,1;
input Yield @;
output;
end;
end;
end;
end;
datalines;
4.91 4.63 4.76 5.04 5.38 6.21 5.60 5.08
4.94 3.98 4.64 5.26 5.28 5.01 5.45 5.62
5.20 4.45 5.05 5.03 5.01 4.63 5.80 5.90
6.00 5.39 4.95 5.39 6.18 5.94 6.58 6.25
5.86 5.41 5.54 5.41 5.28 6.67 6.65 5.94
5.45 5.12 4.73 4.62 5.06 5.75 6.39 5.62
4.96 5.63 5.47 5.31 6.18 6.31 5.95 6.14
5.71 5.37 6.21 5.83 6.28 6.55 6.39 5.57
4.60 4.90 4.88 4.73 5.89 6.20 5.68 5.72
5.79 5.33 5.13 5.18 5.86 5.98 5.55 4.32
5.61 5.15 4.82 5.06 5.67 5.54 5.19 4.46
5.13 4.90 4.88 5.18 5.45 5.80 5.12 4.42
;
```
```proc anova data=Barley;
class Rep Soil Calcium Fertilizer;
model Yield =
Rep
Fertilizer Fertilizer*Rep
Calcium Calcium*Fertilizer Calcium*Rep(Fertilizer)
Soil Soil*Rep
Soil*Fertilizer Soil*Rep*Fertilizer
Soil*Calcium Soil*Fertilizer*Calcium
Soil*Calcium*Rep(Fertilizer);
test h=Fertilizer                 e=Fertilizer*Rep;
test h=Calcium calcium*fertilizer e=Calcium*Rep(Fertilizer);
test h=Soil                       e=Soil*Rep;
test h=Soil*Fertilizer            e=Soil*Rep*Fertilizer;
test h=Soil*Calcium
Soil*Fertilizer*Calcium    e=Soil*Calcium*Rep(Fertilizer);
means Fertilizer Calcium Soil Calcium*Fertilizer;
run;
```

Output 26.5.1: Class Level Information

 Strip-split Plot

The ANOVA Procedure

Class Level Information
Class Levels Values
Rep 4 1 2 3 4
Soil 3 1 2 3
Calcium 2 0 1
Fertilizer 4 0 1 2 3

 Number of Observations Read 96 96

Output 26.5.2: ANOVA Table

 Strip-split Plot

The ANOVA Procedure

Dependent Variable: Yield

Source DF Sum of Squares Mean Square F Value Pr > F
Model 95 31.89149583 0.33569996 . .
Error 0 0.00000000 .
Corrected Total 95 31.89149583

R-Square Coeff Var Root MSE Yield Mean
1.000000 . . 5.427292

Source DF Anova SS Mean Square F Value Pr > F
Rep 3 6.27974583 2.09324861 . .
Fertilizer 3 7.22127083 2.40709028 . .
Rep*Fertilizer 9 6.08211250 0.67579028 . .
Calcium 1 0.27735000 0.27735000 . .
Calcium*Fertilizer 3 1.96395833 0.65465278 . .
Rep*Calcium(Fertili) 12 1.76705833 0.14725486 . .
Soil 2 1.92658958 0.96329479 . .
Rep*Soil 6 1.66761042 0.27793507 . .
Soil*Fertilizer 6 0.68828542 0.11471424 . .
Rep*Soil*Fertilizer 18 1.58698125 0.08816563 . .
Soil*Calcium 2 0.04493125 0.02246562 . .
Soil*Calcium*Fertili 6 0.18936042 0.03156007 . .
Rep*Soil*Calc(Ferti) 24 2.19624167 0.09151007 . .

Notice in Output 26.5.2 that the default tests against the residual error rate are all unavailable. This is because the `Soil`*`Calcium`*`Rep`(`Fertilizer`) term in the model takes up all the degrees of freedom, leaving none for estimating the residual error rate. This is appropriate in this case since the TEST statements give the specific error terms appropriate for testing each effect. Output 26.5.3 displays the output produced by the various TEST statements. The only significant effect is the `Calcium`*`Fertilizer` interaction.

Output 26.5.3: Tests of Effects

Tests of Hypotheses Using the Anova MS for Rep*Fertilizer as an Error Term
Source DF Anova SS Mean Square F Value Pr > F
Fertilizer 3 7.22127083 2.40709028 3.56 0.0604

Tests of Hypotheses Using the Anova MS for Rep*Calcium(Fertili) as an Error Term
Source DF Anova SS Mean Square F Value Pr > F
Calcium 1 0.27735000 0.27735000 1.88 0.1950
Calcium*Fertilizer 3 1.96395833 0.65465278 4.45 0.0255

Tests of Hypotheses Using the Anova MS for Rep*Soil as an Error Term
Source DF Anova SS Mean Square F Value Pr > F
Soil 2 1.92658958 0.96329479 3.47 0.0999

Tests of Hypotheses Using the Anova MS for Rep*Soil*Fertilizer as an Error Term
Source DF Anova SS Mean Square F Value Pr > F
Soil*Fertilizer 6 0.68828542 0.11471424 1.30 0.3063

Tests of Hypotheses Using the Anova MS for Rep*Soil*Calc(Ferti) as an Error Term
Source DF Anova SS Mean Square F Value Pr > F
Soil*Calcium 2 0.04493125 0.02246562 0.25 0.7843
Soil*Calcium*Fertili 6 0.18936042 0.03156007 0.34 0.9059

Output 26.5.4: Results of MEANS statement

Level of
Fertilizer
N Yield
Mean Std Dev
0 24 5.18416667 0.48266395
1 24 5.12916667 0.38337082
2 24 5.75458333 0.53293265
3 24 5.64125000 0.63926801

Level of
Calcium
N Yield
Mean Std Dev
0 48 5.48104167 0.54186141
1 48 5.37354167 0.61565219

Level of
Soil
N Yield
Mean Std Dev
1 32 5.54312500 0.55806369
2 32 5.51093750 0.62176315
3 32 5.22781250 0.51825224

Level of
Calcium
Level of
Fertilizer
N Yield
Mean Std Dev
0 0 12 5.34666667 0.45029956
0 1 12 5.08833333 0.44986530
0 2 12 5.62666667 0.44707806
0 3 12 5.86250000 0.52886027
1 0 12 5.02166667 0.47615569
1 1 12 5.17000000 0.31826233
1 2 12 5.88250000 0.59856077
1 3 12 5.42000000 0.68409197

Output 26.5.4 shows the results of the MEANS statement, displaying for various effects and combinations of effects, as requested. You can examine the `Calcium`*`Fertilizer` means to understand the interaction better.

In this example, you could reduce memory requirements by omitting the `Soil`*`Calcium`*`Rep`(`Fertilizer`) effect from the model in the MODEL statement. This effect then becomes the ERROR effect, and you can omit the last TEST statement in the statements shown earlier. The test for the `Soil`*`Calcium` effect is then given in the Analysis of Variance table in the top portion of output. However, for all other tests, you should look at the results from the TEST statement. In large models, this method might lead to significant reductions in memory requirements.