Here is the mixed code for one year (split plot with two whole plots). proc mixed; classes block a b c; model y1= a|b|c ; random block block(a b); lsmeans a|b|c / alpha=0.01 diff adjust=simulate ; run; Random effects are only listed in a random statement. All the tests are conducted correctly and automatically (no TEST statements, etc.). See how easy it is. Duncan adjustments are not available, and are not recommended. I put in simulation adjustment, which is now considered a good choice. I actually think you should use a Kenward-Roger df adjustment also. Change model statement to: model y1= a|b|c / ddfm=kr ; Now, we can consider year to be a repeated measure within the block*a*b*c experimental units (you said the same plot is observed for each year). I consider year to be a fixed effect. With only two years, the covariance structure has limited structure, so we can consider compound symmetry. This is the same then as a split-split plot with blocks. I doubt if you want all the interactions with year (you will never be able to interpret all the 2x,3x, and the 4x interaction). But I will write the model (one possibility) with the four way interaction: proc mixed; classes block a b c year; model y1= a|b|c|year / ddfm=kr ; random block block(a b) block(a b c); lsmeans a|b|c / alpha=0.01 diff adjust=simulate ; *you can add more LSMEANS statements here, say for specific year interactions; run; The above assumes that the data are stacked, with a year variable added and a separate record for each year. If you had more than two times, you must consider more complex covariance structures. A more general approach for any number of times for the repeated measure is to use: proc mixed; classes block a b c year; model y1= a|b|c|year / ddfm=kr ; random block block(a b) ; repeated year / subject=block*a*b*c type=ar(1) ; *there are many choices for type; lsmeans a|b|c / alpha=0.01 diff adjust=simulate; *you can add more LSMEANS statements here, say for specific year interactions; run; or proc mixed; classes block a b c year; model y1= a|b|c|year / ddfm=kr ; random block block(a b) random block(a b c) ; repeated year / subject=block*a*b*c type=ar(1) ; lsmeans a|b|c / alpha=0.01 diff adjust=simulate; *you can add more LSMEANS statements here, say for specific year interactions; run; I expect that some variance components will be 0. One approach is to then remove them.
... View more