Scheffe's method applies to the set of estimates of all possible contrasts among the factor level means, not just the pairwise differences considered by Tukey's method.

ScheffeTest(x, ...) 

# S3 method for class 'formula'
ScheffeTest(formula, data, subset, na.action, ...)
# S3 method for class 'aov'
ScheffeTest(x, which = NULL, contrasts = NULL, 
            conf.level = 0.95, ...)
# Default S3 method
ScheffeTest(x, g = NULL, which = NULL, 
            contrasts = NULL, conf.level = 0.95, ...)

Arguments

x

either a fitted model object, usually an aov fit, when g is left to NULL or a response variable to be evalutated by g (which mustn't be NULL then).

g

the grouping variable.

which

character vector listing terms in the fitted model for which the intervals should be calculated. Defaults to all the terms.

contrasts

a \(r \times c\) matrix containing the contrasts to be computed, while r is the number of factor levels and c the number of contrasts. Each column must contain a full contrast ("sum") adding up to 0. Note that the argument which must be defined, when non default contrasts are used. Default value of contrasts is NULL. In this case all pairwise contrasts will be reported.

conf.level

numeric value between zero and one giving the confidence level to use. If this is set to NA, just a matrix with the p-values will be returned.

formula

a formula of the form lhs ~ rhs where lhs gives the data values and rhs the corresponding groups.

data

an optional matrix or data frame (or similar: see model.frame) containing the variables in the formula formula. By default the variables are taken from environment(formula).

subset

an optional vector specifying a subset of observations to be used.

na.action

a function which indicates what should happen when the data contain NAs. Defaults to getOption("na.action").

...

further arguments, currently not used.

Value

A list of classes c("PostHocTest"), with one component for each term requested in which. Each component is a matrix with columns diff giving the difference in the observed means, lwr.ci giving the lower end point of the interval, upr.ci giving the upper end point and pval giving the p-value after adjustment for the multiple comparisons.

There are print and plot methods for class "PostHocTest". The plot method does not accept xlab, ylab or main arguments and creates its own values for each plot.

References

Robert O. Kuehl, Steel R. (2000) Design of experiments. Duxbury

Steel R.G.D., Torrie J.H., Dickey, D.A. (1997) Principles and Procedures of Statistics, A Biometrical Approach. McGraw-Hill

Author

Andri Signorell <andri@signorell.net>

Examples

fm1 <- aov(breaks ~ wool + tension, data = warpbreaks)

ScheffeTest(x=fm1)
#> 
#>   Posthoc multiple comparisons of means: Scheffe Test 
#>     95% family-wise confidence level
#> 
#> $wool
#>          diff    lwr.ci   upr.ci   pval    
#> B-A -5.777778 -14.92513 3.369576 0.3526    
#> 
#> $tension
#>           diff    lwr.ci    upr.ci   pval    
#> M-L -10.000000 -21.20317  1.203174 0.0970 .  
#> H-L -14.722222 -25.92540 -3.519048 0.0050 ** 
#> H-M  -4.722222 -15.92540  6.480952 0.6869    
#> 
#> ---
#> Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#> 
ScheffeTest(x=fm1, which="tension")
#> 
#>   Posthoc multiple comparisons of means: Scheffe Test 
#>     95% family-wise confidence level
#> 
#> $tension
#>           diff    lwr.ci    upr.ci   pval    
#> M-L -10.000000 -21.20317  1.203174 0.0970 .  
#> H-L -14.722222 -25.92540 -3.519048 0.0050 ** 
#> H-M  -4.722222 -15.92540  6.480952 0.6869    
#> 
#> ---
#> Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#> 

TukeyHSD(fm1)
#>   Tukey multiple comparisons of means
#>     95% family-wise confidence level
#> 
#> Fit: aov(formula = breaks ~ wool + tension, data = warpbreaks)
#> 
#> $wool
#>          diff       lwr       upr     p adj
#> B-A -5.777778 -12.12841 0.5728505 0.0736137
#> 
#> $tension
#>           diff       lwr        upr     p adj
#> M-L -10.000000 -19.35342 -0.6465793 0.0336262
#> H-L -14.722222 -24.07564 -5.3688015 0.0011218
#> H-M  -4.722222 -14.07564  4.6311985 0.4474210
#> 

# some special contrasts
y <- c(7,33,26,27,21,6,14,19,6,11,11,18,14,18,19,14,9,12,6,
       24,7,10,1,10,42,25,8,28,30,22,17,32,28,6,1,15,9,15,
       2,37,13,18,23,1,3,4,6,2)
group <- factor(c(1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,3,3,3,3,3,
       3,3,3,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,6,6,6,6,6,6,6,6))

r.aov <- aov(y ~ group)

ScheffeTest(r.aov, contrasts=matrix( c(1,-0.5,-0.5,0,0,0,
                                       0,0,0,1,-0.5,-0.5), ncol=2) )
#> 
#>   Posthoc multiple comparisons of means: Scheffe Test 
#>     95% family-wise confidence level
#> 
#> $group
#>          diff    lwr.ci   upr.ci   pval    
#> 1-2,3  7.2500 -6.417446 20.91745 0.6367    
#> 4-5,6 14.0625  0.395054 27.72995 0.0401 *  
#> 
#> ---
#> Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#> 

# just p-values:
ScheffeTest(r.aov, conf.level=NA)
#> 
#>   Posthoc multiple comparisons of means: Scheffe Test 
#> 
#> $group
#>   1     2     3     4     5    
#> 2 0.927 -     -     -     -    
#> 3 0.531 0.977 -     -     -    
#> 4 0.848 0.273 0.054 -     -    
#> 5 0.940 1.000 0.970 0.296 -    
#> 6 0.400 0.934 1.000 0.031 0.920
#> 
#>