Compute and plot oneway analysis of covariance.
The result object is an ancova object which consists of
an ordinary aov object with an additional trellis
attribute. The
trellis attribute is a trellis object consisting of
a series of plots of y ~ x. The left set of panels is
conditioned on the levels of the factor groups. The right
panel is a superpose of all the groups.

Usage

ancova(formula, data.in = NULL, ...,
x, groups, transpose = FALSE,
display.plot.command = FALSE,
superpose.level.name = "superpose",
ignore.groups = FALSE, ignore.groups.name = "ignore.groups",
blocks, blocks.pch = letters[seq(levels(blocks))],
layout, between, main,
pch=trellis.par.get()$superpose.symbol$pch)
panel.ancova(x, y, subscripts, groups,
transpose = FALSE, ...,
coef, contrasts, classes,
ignore.groups, blocks, blocks.pch, blocks.cex, pch)
## The following are ancova methods for generic functions.
## S3 method for class 'ancova'
anova(object, ...)
## S3 method for class 'ancova'
predict(object, ...)
## S3 method for class 'ancova'
print(x, ...) ## prints the anova(x) and the trellis attribute
## S3 method for class 'ancova'
model.frame(formula, ...)
## S3 method for class 'ancova'
summary(object, ...)
## S3 method for class 'ancova'
plot(x, y, ...) ## standard lm plot. y is always ignored.
## S3 method for class 'ancova'
coef(object, ...)

Arguments

formula

A formula specifying the model.

data.in

A data frame in which the variables specified in the
formula will be found. If missing, the variables are searched for in
the standard way.

...

Arguments to be passed to aov, such as subset
or na.action.

x

Covariate in ancova, needed for plotting when the
formula does not include x.
"aov" object in print.ancova, to match the argument of
the print generic function.
Variable to plotted in "panel.ancova".

groups

Factor. Needed for plotting when the formula does not
include groups after the conditioning bar "|".

transpose

S-Plus: The axes in each panel of the plot are
transposed. The analysis
is identical, just the axes displaying it have been interchanged.
R: no effect.

display.plot.command

The default setting is usually what the user
wants. The alternate value TRUE prints on the console the
command that draws the graph. This is strictly for debugging the
ancova command.

superpose.level.name

Name used in strip label for superposed panel.

ignore.groups

When TRUE, an additional panel showing all
groups together with a common regression line is displayed.

ignore.groups.name

Name used in strip label for
ignore.groups panel.

pch

Plotting character for groups.

blocks

Additional factor used to label points in the panels.

blocks.pch

Alternate set of labels used when a blocks
factor is specified.

blocks.cex

Alternate set of cex used when a blocks
factor is specified.

layout

The layout of multiple panels. The default is a single
row. See details.

between

Space between the panels for the individual group
levels and the superpose panel including all groups.

main

Character with a main header title to be done on the top
of each page.

y,subscripts

In "panel.ancova",
see panel.xyplot.

object

An "aov"

object. The functions using this
argument are methods for the similarly named generic functions.

coef, contrasts, classes

Internal variables used to communicate between
ancova and panel.ancova. They keep track
of the constant or different slopes and intercepts in each
panel of the plot.

Details

The ancova function does two things. It passes its
arguments directly to the aov function and returns the entire
aov object. It also rearranges the data and formula in its
argument and passes that to the xyplot function. The
trellis attribute is a trellis object consisting of
a series of plots of y ~ x. The left set of panels is
conditioned on the levels of the factor groups. The right
panel is a superpose of all the groups.

Value

The result object is an ancova object which consists of
an ordinary aov object with an additional trellis
attribute. The default print method is to print both the anova
of the object and the trellis attribute.

Author(s)

Richard M. Heiberger <rmh@temple.edu>

References

Heiberger, Richard M. and Holland, Burt (2004b).
Statistical Analysis and Data Display: An Intermediate Course
with Examples in S-Plus, R, and SAS.
Springer Texts in Statistics. Springer.
ISBN 0-387-40270-5.

See Also

ancova-classaovxyplot.
See ancovaplot for a newer set of functions that keep the
graph and the aov object separate.

Examples

data(hotdog)
## y ~ x ## constant line across all groups
ancova(Sodium ~ Calories, data=hotdog, groups=Type)
## y ~ a ## different horizontal line in each group
ancova(Sodium ~ Type, data=hotdog, x=Calories)
## This is the usual usage
## y ~ x + a or y ~ a + x ## constant slope, different intercepts
ancova(Sodium ~ Calories + Type, data=hotdog)
ancova(Sodium ~ Type + Calories, data=hotdog)
## y ~ x * a or y ~ a * x ## different slopes, and different intercepts
ancova(Sodium ~ Calories * Type, data=hotdog)
ancova(Sodium ~ Type * Calories, data=hotdog)
## y ~ a * x ## save the object and print the trellis graph
hotdog.ancova <- ancova(Sodium ~ Type * Calories, data=hotdog)
attr(hotdog.ancova, "trellis")
## label points in the panels by the value of the block factor
data(apple)
ancova(yield ~ treat + pre, data=apple, blocks=block)
## Please see
## demo("ancova")
## for a composite graph illustrating the four models listed above.

Results

R version 3.3.1 (2016-06-21) -- "Bug in Your Hair"
Copyright (C) 2016 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)
R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under certain conditions.
Type 'license()' or 'licence()' for distribution details.
R is a collaborative project with many contributors.
Type 'contributors()' for more information and
'citation()' on how to cite R or R packages in publications.
Type 'demo()' for some demos, 'help()' for on-line help, or
'help.start()' for an HTML browser interface to help.
Type 'q()' to quit R.
> library(HH)
Loading required package: lattice
Loading required package: grid
Loading required package: latticeExtra
Loading required package: RColorBrewer
Loading required package: multcomp
Loading required package: mvtnorm
Loading required package: survival
Loading required package: TH.data
Loading required package: MASS
Attaching package: 'TH.data'
The following object is masked from 'package:MASS':
geyser
Loading required package: gridExtra
> png(filename="/home/ddbj/snapshot/RGM3/R_CC/result/HH/ancova.Rd_%03d_medium.png", width=480, height=480)
> ### Name: ancova
> ### Title: Compute and plot oneway analysis of covariance
> ### Aliases: ancova 'analysis of covariance' covariance anova.ancova
> ### predict.ancova print.ancova model.frame.ancova summary.ancova
> ### plot.ancova coef.ancova panel.ancova
> ### Keywords: hplot dplot models regression
>
> ### ** Examples
>
> data(hotdog)
>
> ## y ~ x ## constant line across all groups
> ancova(Sodium ~ Calories, data=hotdog, groups=Type)
Analysis of Variance Table
Response: Sodium
Df Sum Sq Mean Sq F value Pr(>F)
Calories 1 106270 106270 14.515 0.0003693 ***
Residuals 52 380718 7321
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
>
> ## y ~ a ## different horizontal line in each group
> ancova(Sodium ~ Type, data=hotdog, x=Calories)
Analysis of Variance Table
Response: Sodium
Df Sum Sq Mean Sq F value Pr(>F)
Type 2 31739 15869.4 1.7778 0.1793
Residuals 51 455249 8926.4
>
> ## This is the usual usage
> ## y ~ x + a or y ~ a + x ## constant slope, different intercepts
> ancova(Sodium ~ Calories + Type, data=hotdog)
Analysis of Variance Table
Response: Sodium
Df Sum Sq Mean Sq F value Pr(>F)
Calories 1 106270 106270 34.654 3.281e-07 ***
Type 2 227386 113693 37.074 1.336e-10 ***
Residuals 50 153331 3067
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
> ancova(Sodium ~ Type + Calories, data=hotdog)
Analysis of Variance Table
Response: Sodium
Df Sum Sq Mean Sq F value Pr(>F)
Type 2 31739 15869 5.1749 0.009065 **
Calories 1 301917 301917 98.4526 2.089e-13 ***
Residuals 50 153331 3067
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
>
> ## y ~ x * a or y ~ a * x ## different slopes, and different intercepts
> ancova(Sodium ~ Calories * Type, data=hotdog)
Analysis of Variance Table
Response: Sodium
Df Sum Sq Mean Sq F value Pr(>F)
Calories 1 106270 106270 35.6885 2.747e-07 ***
Type 2 227386 113693 38.1815 1.195e-10 ***
Calories:Type 2 10402 5201 1.7466 0.1853
Residuals 48 142930 2978
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
> ancova(Sodium ~ Type * Calories, data=hotdog)
Analysis of Variance Table
Response: Sodium
Df Sum Sq Mean Sq F value Pr(>F)
Type 2 31739 15869 5.3294 0.008124 **
Calories 1 301917 301917 101.3927 2.019e-13 ***
Type:Calories 2 10402 5201 1.7466 0.185267
Residuals 48 142930 2978
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
>
> ## y ~ a * x ## save the object and print the trellis graph
> hotdog.ancova <- ancova(Sodium ~ Type * Calories, data=hotdog)
> attr(hotdog.ancova, "trellis")
>
>
> ## label points in the panels by the value of the block factor
> data(apple)
> ancova(yield ~ treat + pre, data=apple, blocks=block)
Analysis of Variance Table
Response: yield
Df Sum Sq Mean Sq F value Pr(>F)
treat 5 750 150 0.1486 0.9777
pre 1 54142 54142 53.6893 1.181e-06 ***
Residuals 17 17143 1008
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
>
> ## Please see
> ## demo("ancova")
> ## for a composite graph illustrating the four models listed above.
>
>
>
>
>
> dev.off()
null device
1
>