I'm trying to correctly model a split-plot design with more than two factors (specifically, four) in SAS. I'm interested in an example from Design and Analysis of Experiments (Montgomery , 8th Ed.), and would preferably use PROC MIXED (PROC GLM could be okay too, but PROC MIXED seems to do a better job with these types of designs in general from what I've read).

I'm first going to consider a more simple split-plot design - that with only two factors. Ultimately, I'm interested if anyone could tell me how to augment this code to reflect the change from two to four factors (as outlined below).

First, starting with the more simple case: The split-plot design with two factors is also given in Montgomery starting on pg. 621:


  • Replicate: Replicates/blocking factor (three replicates)
  • Method: Pulp preparation method (three levels)
  • Temp: Temperature (degrees F; four levels)
  • Strength: Paper tensile strength (outcome)

Description of data collection: A batch of pulp is produced by one of the three methods, then the batch is split-up into four parts, and each is treated with one of the four temperature settings (i.e., temperature is nested within method). Finally, the paper tensile strength is measured. Then, another batch of pulp is made and the process repeated until all data has been collected. This equates to nine total batches (three pulp preparation methods, each replicated three times).

Data for importing into SAS:

DATA Mont;
INPUT Replicate Method Temp Strength;
1   1   200 30
1   2   200 34
1   3   200 29
2   1   200 28
2   2   200 31
2   3   200 31
3   1   200 31
3   2   200 35
3   3   200 32
1   1   225 35
1   2   225 41
1   3   225 26
2   1   225 32
2   2   225 36
2   3   225 30
3   1   225 37
3   2   225 40
3   3   225 34
1   1   250 37
1   2   250 38
1   3   250 33
2   1   250 40
2   2   250 42
2   3   250 32
3   1   250 41
3   2   250 39
3   3   250 39
1   1   275 36
1   2   275 42
1   3   275 36
2   1   275 41
2   2   275 40
2   3   275 40
3   1   275 40
3   2   275 44
3   3   275 45


   CLASS Replicate Method Temp;
   MODEL Strength = Method | Temp / DDFM=SATTERTH; 
   RANDOM Replicate Replicate*Method;

PROC MIXED results:

                             Type 3 Tests of Fixed Effects

                                    Num     Den
                    Effect           DF      DF    F Value    Pr > F

                    Method            2       4       7.08    0.0485
                    Temp              3      18      36.43    <.0001
                    Method*Temp       6      18       3.15    0.0271

Now, for the four-factor split-plot design, Montgomery gives the following scenario (pg. 627): An experiment is conducted in a furnace to grow an oxide on a silicon wafer. The response variable is oxide layer thickness. There are four factors: temperature (A), gas flow (B), time (C) and wafer position on the furnace (D). These all have two levels. He then goes on to say, "Now factors A and B are difficult to change, whereas C and D are easy to change... Notice both replicates of the experiment are split into four whole plots, each containing one combination of the settings of temperature and gas flow. Once these levels are chosen, each whole plot is split into four subplots and a $2^2$ factorial in the factors time and wafer position is conducted, where the treatment combinations in the subplot are tested in random order. Only four changes in temperature and gas flow are made in each replicate, whereas the levels of time and wafer position are completely randomized." This is depicted as:

enter image description here

I'm specifically interested in this scenario - where the whole-plot level has two factors, and so does the sub-plot. Can anyone indicate how the PROC MIXED code above would need to change to account for this design? Also, may inference (F statistic and p-value) from the output be used as is, or do p-values need to be calculated manually (as is the case with split-split plot designs)?

  • 1
    $\begingroup$ Correct me if I am wrong, but isn't it a factorial with split-plots? It seems to me there is no nesting in all factors... If this is the case you can specify the factors with no nesting and the factors with nesting just like you did in the example... And I also do not see a problem with GLM, since the only random effect I see is from Replicate. $\endgroup$
    – Walter
    Jan 5, 2016 at 0:41
  • $\begingroup$ It does appear to be a factorial, split-plot hybrid, yes. He does go on to say, "The whole-plot main effects and interaction are tested against the whole-plot error, whereas the subplot factors and all other interactions are tested against the subplot error," so I'm assuming this affects the SAS code specification. In reality, I'm trying to figure out the logic of SAS in these cases - how do I translate one of the many iterations of an ANOVA into SAS in each case? There are many subtleties. I'm hoping to learn by example. $\endgroup$
    – Meg
    Jan 6, 2016 at 22:18
  • $\begingroup$ My preference of PROC MIXED over GLM is for the sake of consistency. In general, PROC MIXED performs better than GLM for some types of ANOVAs, and I also think the output is more user-friendly. It thus makes more sense to me to stay with MIXED instead of going back and forth between the two, trying to translate syntax in each case. $\endgroup$
    – Meg
    Jan 6, 2016 at 22:19

1 Answer 1


I am pressed for time but I believe

    CLASS Block A B C D ;
    MODEL Thickness = A|B|C|D / DDFM=SATTERTH; 
    RANDOM Block Block*A Block*B Block*A*B ;

You should only consider this a half-baked answer but this seems likely to work.

  • 1
    $\begingroup$ Thanks. It seems reasonable, but without detail explaining the RANDOM statement, I'll have to look into it more before I can accept it as the correct answer. $\endgroup$
    – Meg
    Jan 6, 2016 at 22:33
  • $\begingroup$ Because I had not thought it through, it was offered as a comment and not an answer. I've never actually seen this design and I had no time to look into it. But you used a RANDOM statement in your example code so I did not feel the need to discuss that. $\endgroup$
    – StatNoodle
    Jan 7, 2016 at 7:54
  • $\begingroup$ You gave it as an answer, not a comment (note how it's labeled as "1 Answer" above). If you want to give it as a comment, please move it there. Also, I understand the use of a RANDOM statement in general, but why given terms are or are not included in this statement for a given design is what needs to be addressed. $\endgroup$
    – Meg
    Jan 7, 2016 at 16:29
  • $\begingroup$ @StatNoodle, I think this line does not represent the example: MODEL Thickness = A|B|C|D / DDFM=SATTERTH;. There seems to be no nesting of B in A as it is in the code. $\endgroup$
    – Walter
    Jan 8, 2016 at 1:05
  • 2
    $\begingroup$ The RANDOM statement is basically specifying the variances inherent in the model. There is a variance due to BLOCK, a variance due to WHOLE PLOT, and a variance due to SUBPLOT. I am stuck right now thinking that the RANDOM statement needs to be coded as RANDOM Block Block(A*B), though. That "feels" more correct to me. The effect is the same: the design matrix for Block(A*B) is the same as the design matrix for the collection of Block*A Block*B Block*A*B...so I'm not sure it will make a difference unless it is clarity to PROC MIXED. $\endgroup$
    – StatNoodle
    Jan 10, 2016 at 18:15

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.