-
ADJUST=method
-
performs a multiple comparison adjustment of the p-values and
confidence limits for the differences of LS-means. The adjusted quantities are produced along with the unadjusted quantities. This option works together with the DIFF option. If you omit the DIFF option, then the ADJUST= option implies the DIFF option except for ADJUST=T.
You can specify the following methods:
- BON
performs Bonferroni t tests of differences between LS-means. This method involves correction factors described in Chapter 53, The GLM Procedure (SAS/STAT User's Guide), and Chapter 86, The MULTTEST Procedure (SAS/STAT User's Guide); also see Westfall and Young (1993) and Westfall et al. (1999).
- DUNNETT
performs Dunnett’s t test, which determines whether any treatments are significantly different from a single control for the effects in the SLICES statement. If the LS-means are correlated, PROC LMIXED uses the factor-analytic covariance approximation described in Hsu (1992) and identifies the adjustment as "Dunnett-Hsu" in the results.
The approximation derives approximate "effective sample sizes" for which exact critical values are computed.
- NELSON
performs Nelson’s t test of each LS-mean against an average of the LS-means (Ott 1967; Nelson 1982, 1991, 1993). When the LS-means are correlated, PROC LMIXED uses the factor-analytic covariance approximation described in Hsu (1992) and identifies the adjustment as "Nelson-Hsu" in the results. The approximation derives approximate "effective sample sizes" for which exact critical values are computed.
- SCHEFFE
performs Scheffé’s multiple comparison procedure.
- SIDAK
performs pairwise t tests on differences between LS-means with levels adjusted according to Šidák’s inequality. This method involves correction factors described in Chapter 53, The GLM Procedure (SAS/STAT User's Guide), and Chapter 86, The MULTTEST Procedure (SAS/STAT User's Guide); also see Westfall and Young (1993) and Westfall et al. (1999).
- SIMULATE <(simoptions)>
performs the simulation-based multiple comparison procedure. This method computes adjusted p-values and confidence limits from the simulated distribution of the maximum or maximum absolute value of a multivariate t random vector. All covariance parameters, except the residual scale parameter, are fixed at their estimated values throughout the simulation, potentially resulting in some underdispersion. The simulation estimates q, the true
quantile, where
is the confidence coefficient. For a description of the simoptions (except for the CVADJUST option, which you cannot use in the SLICE statement), see the ADJUST= option in the LSMEANS statement.
- SMM | GT2
performs pairwise comparisons on the basis of the studentized maximum modulus and Šidák’s uncorrelated-t inequality, yielding Hochberg’s GT2 method when sample sizes are unequal.
- T | NONE
performs no adjustment for multiple comparisons.
- TUKEY
performs Tukey’s studentized range test on LS-means. When your data are unbalanced, PROC LMIXED uses the approximation described in Kramer (1956) and identifies the adjustment as "Tukey-Kramer" in the results.
By default, ADJUST=T.
If you specify ADJUST=DUNNETT, the procedure analyzes differences between each level and the first control level unless you specify a different control level. If you specify ADJUST=NELSON, then DIFF=ANOM is assumed.
If you specify ADJUST=TUKEY, then DIFF=ALL is assumed. If you specify other methods, then the procedure performs all pairwise differences unless you specify the DIFF option.
Note that computing the exact adjusted p-values and critical values for unbalanced designs can be computationally intensive, especially when ADJUST=NELSON.
-
ALPHA=number
constructs a t-type confidence interval for each LS-means whose confidence level is
. The value of number must be between 0 and 1, exclusive; by default, ALPHA=0.05.
-
AT at-specification
-
enables you to modify the values of the covariates that are used in computing
LS-means. By default, all covariate effects are set equal to their mean values for computation of standard LS-means. The AT option enables you to assign arbitrary values to the covariates. Additional columns in the output table indicate the values of the covariates.
You can specify the following at-specifications:
- MEANS
sets covariates equal to their mean values (as with standard LS-means) and applies this adjustment to crossproducts of covariates.
- variable=value
sets the covariate variable equal to value.
- (variable-list)=(value-list)
sets covariates in the variable-list equal to values in the value-list.
As an example, consider the following invocation of PROC LMIXED:
proc lmixed;
class A B;
model Y = A*B x1 x2 x1*x2;
SLICE A*B;
SLICE A*B / at means;
SLICE A*B / at x1=1.2;
SLICE A*B / at (x1 x2)=(1.2 0.3);
run;
For the first two SLICE statements, the LS-means coefficient of x1 is
(the mean of x1) and of x2 is
(the mean of x2). For the first SLICE statement, the coefficient of x1*x2 is
. However, for the second SLICE statement, the coefficient is
. The third SLICE statement sets the coefficient of x1 equal to 1.2 and leaves it at
for x2, and the final SLICE statement sets these values to 1.2 and 0.3, respectively.
Even if you specify a WEIGHT variable, the unweighted covariate means are used for the covariate coefficients if you omit the AT option. If you specify the AT option, then WEIGHT or FREQ variables are taken into account as follows. The weighted covariate means are used for the covariate coefficients for which no explicit AT option values are given, or if you specify the AT MEANS option. Observations that do not contribute to the analysis because of a missing dependent variable are used in computing the covariate means. You should use the E option in conjunction with the AT option to verify that the modified LS-means coefficients are the ones that you want.
-
CL
constructs t-type confidence limits for each of the LS-means.
If DDFM=NONE, then PROC LMIXED uses
infinite degrees of freedom for this test, essentially computing a z interval. By default, the confidence level is 0.95; you can change this by using the ALPHA= option.
-
CORR
displays the estimated correlation matrix of the LS-means as part of the "Least Squares Means" table.
-
COV
displays the estimated covariance matrix of the LS-means as part of the "Least Squares Means" table.
-
DF=number
specifies the degrees of freedom for the t test and confidence limits. The default is the residual degrees of freedom that you specify in the DDFM=RESIDUAL option.
-
DIFF<=difftype>
PDIFF<=difftype>
-
displays differences of the LS-means. You can specify the following values for the optional difftype:
- ALL
displays all pairwise differences; this is the default.
- ANOM
displays differences between each LS-mean and the average LS-mean, as in the analysis of means (Ott 1967). The average is computed as a weighted mean of the LS-means, where the weights are inversely proportional to the diagonal entries of the
matrix. When you specify a WEIGHT statement, this matrix is replaced by
, where
is the diagonal matrix that contains the weights. If the LS-means are nonestimable, this design-based weighted mean is replaced by an equally weighted mean. Note that the ANOM procedure in SAS/QC software implements both tables and graphics for the analysis of means with a variety of response types. For one-way designs and normally distributed data, the DIFF=ANOM computations are equivalent to the results of PROC ANOM.
- CONTROL
-
displays differences with a control; by default, the control is the first level of each specified SLICE statement effect. To specify which levels of the effects are the controls, list the quoted formatted values in parentheses after the CONTROL keyword. For example, if the effects A, B, and C are classification variables, and each has two levels (1 and 2), then the following SLICE statement specifies the (1,2) level of A*B and the (2,1) level of B*C as controls:
lsmeans A*B B*C / diff=control('1' '2', '2' '1');
For multiple effects, the results depend on the order of the list, so you should check the output to make sure that the controls are correct.
The CONTROL keyword produces two-tailed tests and confidence limits.
- CONTROLL
displays one-tailed test results and performs tests to determine whether the noncontrol levels are significantly smaller than the control. The upper confidence limits for the control minus the noncontrol levels are considered to be infinity and are displayed as missing.
- CONTROLU
displays one-tailed test results and performs tests to determine whether the noncontrol levels are significantly larger than the control. The upper confidence limits for the noncontrol levels minus the control are considered to be infinity and are displayed as missing.
The differences of the LS-means are displayed in a table titled "Differences of Least Squares Means." The ODS table name is SliceDiffs.
-
E
displays the matrix coefficients for all specified SLICE statement effects. The name of this table is "Matrix Coefficients." The ODS table name is Coef.
-
MEANS
displays the LS-means.
-
NOF
suppresses the F test for testing the mutual equality of the
estimable functions in the partition.
-
SINGULAR=number
tunes the estimability checking as documented for the SINGULAR= option in the CONTRAST statement.
-
SLICEBY sliceby-spec-list
SLICE sliceby-spec-list
-
determines how to construct the partition of the LS-means
for the model-effect. The sliceby-spec-list is a list of sliceby-specifications. A sliceby-specification consists of an effect name followed by an optional list of formatted values. The sliceby-spec-list takes either of the following two forms:
<=> sliceby-specification
(sliceby-specification < sliceby-specification < …>>)
If you have only one sliceby-specification, use the first form. If you have one or more sliceby-specifications, you can use the second form.
The following SLICE statement contains one sliceby-specification. It creates partitions of the A*B interaction effect for all levels of variable A.
class a b;
model y = a b a*b;
slice a*b / sliceby=a;
The following SLICE statement contains one sliceby-specification. It creates one partition of the A*B interaction effect for one level, associated with the formatted value 'A1', of variable A.
class a b;
model y = a b a*b;
slice a*b / sliceby a='A1';
The following SLICE statement contains two sliceby-specifications. The first sliceby-specification creates two partitions of the A*B interaction effect for two levels, associated with the formatted values 'B2' and 'B3', of variable B. The second sliceby-specification creates one partition for the level, associated with the formatted values 'A1', of variable A.
class a b;
model y = a b a*b;
slice a*b / sliceby(b=('B2','B3') a='A1') diff;
The following SLICE statement contains one sliceby-specification. It creates two partitions of the A*B*C interaction effect for two levels of the B*C interaction effect. These two levels are associated with the two combinations of the formatted values: the combination of 'B1' and 'C1' and the combination of 'B1' and 'C2'.
class a b c;
model y = a b a*b*c;
slice a*b*c / sliceby b*c=('B1' 'C1', 'B1' 'C2');
The following SLICE statement contains two sliceby-specifications. The first sliceby-specification creates two partitions of the A*B*C interaction effect for two levels that are associated with the two combinations of the formatted values: the combination of 'B1' and 'C1' and the combination of 'B1' and 'C2'. The third sliceby-specification creates one partition for one level, associated with the formatted value 'A1', of variable A.
class a b c;
model y = a b a*b*c;
slice a*b*c / sliceby(b*c=('B1' 'C1', 'B1' 'C2') a='A1');
Notice that an interaction effect of B*C has the internal order of B and C or C and B. The order is determined by the order of these two variables in the CLASS statement. Thus, the order of formatted values in the sliceby-specification must follow the order of variables in the CLASS statement. For example, b*c=('B1' 'C1') is correct if B precedes C in the CLASS statement; otherwise, you have to use b*c=('C1' 'B1').