HH PDF
HH PDF
August 7, 2007
Type Package
Version 2.1-3
Date 2007-07-29
Depends R (>= 2.5.0), lattice, stats, grid, multcomp (>= 0.991-7), mvtnorm, methods
Description Support software for Statistical Analysis and Data Display (Springer, ISBN
0-387-40270-5). This contemporary presentation of statistical methods features extensive use of
graphical displays for exploring data and for displaying the analysis. The authors demonstrate
how to analyze data—showing code, graphics, and accompanying computer listings—for all the
methods they cover. They emphasize how to construct and interpret graphs, discuss principles of
graphical design, and show how accompanying traditional tabular results are used to confirm the
visual impressions derived directly from the graphs. Many of the graphical formats are novel and
appear here for the first time in print. All chapters have exercises.
R topics documented:
GSremove . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
HH-package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
X.residuals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
ae.dotplot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
ancova-class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
ancova . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
anova.mean . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
aov.sufficient . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
arima.diag.hh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
arma.loop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
as.multicomp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
1
2 R topics documented:
axis.i2wt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
bwplot.formula . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
ci.plot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
col.hh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
diag.maybe.null . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
do.formula.trellis.xysplom . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
export.eps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
extra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
gof.calculation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
grid.yaxis.hh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
hh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
hov . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
if.R . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
interaction.positioned . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
interaction2wt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
intxplot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
ladder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
legendGrob2wt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
lm.case . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
mcalinfct . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
mmc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
mmc.mean . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
multicomp.order . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
multicomp.reverse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
norm.curve . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
npar.arma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
objip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
odds.ratio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
orthog.complete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
panel.acf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
panel.bwplot.intermediate.hh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
panel.bwplott . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
panel.cartesian . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
panel.ci.plot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
panel.dotplot.tb . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
panel.interaction2wt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
panel.pairs.hh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
panel.xysplom . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
partial.corr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
plot.hov . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
plot.mmc.multicomp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
plot.multicomp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
position . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
positioned-class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
print.tsdiagplot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
push.vp.hh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
regr1.plot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
resid.squares . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
GSremove 3
residual.plots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
seqplot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
seqplot.forecast . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
strip.background0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
strip.xysplom . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
sufficient . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
summary.arma.loop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
t.trellis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
tsacfplots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
tsdiagplot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
vif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
xysplom . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
Index 121
Description
Remove selected GraphSheetPages in the S-Plus Windows GUI Graphsheet. This does the same
task as right-click/delete on the tabs of the GraphSheet.
Usage
GSremove(pages, sheet = "GSD2$Page")
Arguments
pages Page numbers in the tabs at the bottom of the Graphsheet.
sheet Defaults to GSD2, the first name that is used when the graphsheet or trellis.device
function is used.
Author(s)
Richard M. Heiberger <rmh@temple.edu>
See Also
graphsheet in S-Plus.
Examples
## Not run:
trellis.device()
plot(1:10); plot(11:20); plot(21:30)
GSremove(c(1,3))
## End(Not run)
4 HH-package
HH-package Support software for Statistical Analysis and Data Display by Richard
M. Heiberger and Burt Holland
Description
Support software for Statistical Analysis and Data Display (Springer, ISBN 0-387-40270-5). This
contemporary presentation of statistical methods features extensive use of graphical displays for
exploring data and for displaying the analysis. The authors demonstrate how to analyze data—
showing code, graphics, and accompanying computer listings—for all the methods they cover. They
emphasize how to construct and interpret graphs, discuss principles of graphical design, and show
how accompanying traditional tabular results are used to confirm the visual impressions derived
directly from the graphs. Many of the graphical formats are novel and appear here for the first time
in print. All chapters have exercises.
Details
Package: HH
Type: Package
Version: 1.4
Date: 2006-08-21
License: GPL version 2 or newer
data display, scatterplot matrix, MMC mean–mean multiple comparison plots, interaction plots,
ANCOVA plots, regression diagnostics, time series, ARIMA models, boxplots
Author(s)
Richard M. Heiberger
Maintainer: Richard M. Heiberger <rmh@temple.edu>
References
Heiberger, Richard M. and Holland, Burt (2004b). Statistical Analysis and Data Display: An Inter-
mediate Course with Examples in S-Plus, R, and SAS. Springer Texts in Statistics. Springer. ISBN
0-387-40270-5.
See Also
ancova, ancova, ancova, ancova, ancova, ancova, ancova, ancova, ancova,
ancova
Examples
## interaction2wt()
## multicomp.mmc() ## S-Plus
X.residuals 5
## glht.mmc() ## R
## ancova()
## xysplom()
## plot.case()
## bwplot() ## with position
## tsacfplots() ## at this writing, only S-Plus
## tsdiagplot() ## at this writing, only S-Plus
Description
Calculate the residuals from the regression of each column of a data.frame against all the other
columns.
Usage
X.residuals(x, ...)
## Default S3 method:
X.residuals(x, y.name, na.action = na.exclude, ...) ## x is a data.frame
Arguments
x data.frame, or formula, or lm object computed with x=TRUE.
na.action See na.action.
... additional arguments.
y.name Name of Y-variable to be excluded from the computations.
data 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.
Value
Data.frame of residuals, one column from each regression.
Author(s)
Richard M. Heiberger <rmh@temple.edu>
6 ae.dotplot
References
Heiberger, Richard M. and Holland, Burt (2004b). Statistical Analysis and Data Display: An Inter-
mediate Course with Examples in S-Plus, R, and SAS. Springer Texts in Statistics. Springer. ISBN
0-387-40270-5.
See Also
lm in R or lm in S-Plus, vif, lm.case.
Examples
usair <- read.table(hh("datasets/usair.dat"),
col.names=c("SO2","temp","mfgfirms","popn",
"wind","precip","raindays"))
usair$lnSO2 <- log(usair$SO2)
usair$lnmfg <- log(usair$mfgfirms)
usair$lnpopn <- log(usair$popn)
X.residuals(usair)
X.residuals(usair, y.name="lnSO2")
Description
A two-panel display of the most frequently occurring AEs in the active arm of a clinical study. The
first panel displays their incidence by treatment group, with different symbols for each group. The
second panel displays the relative risk of an event on the active arm relative to the placebo arm, with
95% confidence intervals for a 2×2 table. The AEs are ordered by relative risk so that events with
the largest increases in risk for the active treatment are prominent at the top of the display.
Usage
ae.dotplot(xr,
A.name = levels(xr$RAND)[1], B.name = levels(xr$RAND)[2],
col.AB = c("red","blue"), pch.AB = c(16, 17),
main.title = "Most Frequent On-Therapy Adverse Events Sorted by Relative
main.cex = 1,
cex.AB.points = NULL, cex.AB.y.scale = 0.6,
position.left = c(0, 0, 0.7, 1), position.right = c(0.61, 0, 0.98, 1),
ae.dotplot 7
Arguments
ae data.frame containing the first 4 columns of xr described below.
xr RAND: treatment as randomized (factor).\ PREF: adverse event symptom name
(factor).\ SN: number of patients in treatment group.\ SAE: number of patients
in each group for whom the event PREF was observed.\ PCT: SAE/SN as a
percent.\ relrisk: Relative risk defined as PCT for the B treatment divided
by PCT for the A treatment.\ logrelrisk: natural logarithm of relrisk.\
ase.logrelrisk: asymptotic standard error of logrelrisk.\ logrelriskCI.lower,
logrelriskCI.upper: confidence interval for logrelrisk. \ relriskCI.lower,
relriskCI.upper: back transform of the CI for the log relative risk into the
relative risk scale.\
A.name, B.name
Names of treatment groups (in x$RAND).
col.AB, pch.AB, cex.AB.points
color, plotting character and character expansion for the individual points on the
left plot.
cex.AB.y.scale
Character expansion for the left tick labels (the symptom names).
main.title, main.cex
Main title and character expansion for the combined plot in ae.dotplot.
position.left, position.right
position of the left and right plots. This argument is use in S-Plus only, not in
R. See the discussion of position in print.trellis in R, print.trellis
in S-Plus.
key.y Position of the key (legend) in the combined plot. This is the y argument of the
key. See key in S-Plus, and the discussion of the key argument to xyplot
in xyplot in R.
crit.value Critical value used to compute confidence intervals on the log relative risk.
Defaults to 1.96. User is responsible for specifying both crit.value and
CI.percent consistently.
CI.percent Confidence percent associated with the crit.value Defaults to 95. User is
responsible for specifying both crit.value and CI.percent consistently.
x, y, groups, lwd, ...
standard panel function arguments.
lower, upper
xr$logrelriskCI.lower and xr$logrelriskCI.upper inside the panel functions.
8 ae.dotplot
Details
The second panel shows relative risk of an event on the active arm (treatment B) relative to the
placebo arm (treatment A), with 95% confidence intervals for a 2×2 table. Confidence intervals on
the log relative risk are calculated using the asymptotic standard error formula given as Equation
3.18 in Agresti A., Categorical Data Analysis. Wiley: New York, 1990.
Value
logrelrisk takes an input data.frame of the form x described in the argument list and returns a
data.frame consisting of the input argument with additional columns as described in the argument
xr. The result column of symptom names PREF is an ordered factor, with the order specified by
the relative risk.
ae.leftplot returns a "trellis" object containing a horizontal dotplot of the percents against
each of the symptom names.
ae.rightplot returns a "trellis" object containing a horizontal plot on the log scale of the
relative risk confidence intervals against each of the symptom names.
ae.dotplot calls both ae.leftplot and ae.rightplot and combines their plots into a
single display with a single set of left axis labels, a main title, and a key. The value returned
invisibly is a list of the full left trellis object and the right trellis obect with its left labels blanked
out. Printing the value will not usually be interesting as the main title and key are not included. It is
better to call ae.dotplot directly, perhaps with a change in some of the positioning arguments.
Author(s)
Richard M. Heiberger <rmh@temple.edu>
References
Ohad Amit, Lane, Peter W., & Richard M. Heiberger (2007). Graphical Approaches to the Analysis
of Safety Data from Clinical Trials. Pharmaceutical Statistics. http://www3.interscience.
wiley.com/cgi-bin/abstract/114129388/ABSTRACT?CRETRY=1\&SRETRY=0
Examples
## variable names in the input data.frame aeanonym
## RAND treatment as randomized
## PREF adverse event symptom name
## SN number of patients in treatment group
## SAE number of patients in each group for whom the event PREF was observed
##
## Input sort order is PREF/RAND
B.name=levels(aeanonym$RAND)[2])
aeanonymr[1:4,]
Description
Analysis of Covariance. The class is an extension of "aov" and "lm". It is identical to the "aov" for
a single factor and a single covariate plus an attribute which contains a "trellis" object. Four
different models are included in the class. See ancova for the examples.
Extends
Class "aov", directly. Class "lm", by class "aov", distance 2. Class "mlm", by class "aov",
distance 2, with explicit test and coerce. Class "oldClass", by class "aov", distance 3. Class
"oldClass", by class "aov", distance 4, with explicit test and coerce.
Methods
No methods defined with class "ancova" in the signature. S3-type methods are "anova.ancova",
"coef.ancova", "coefficients.ancova", "model.frame.ancova", "plot.ancova",
"predict.ancova", "print.ancova", "summary.ancova". "plot.ancova(x)"
plots a standard lm plot of x. "print.ancova(x)" prints the anova(x) and the trellis at-
tribute. The remaining methods use NextMethod.
10 ancova
Author(s)
Richard M. Heiberger <rmh@temple.edu>
References
Heiberger, Richard M. and Holland, Burt (2004b). Statistical Analysis and Data Display: An Inter-
mediate Course with Examples in S-Plus, R, and SAS. Springer Texts in Statistics. Springer. ISBN
0-387-40270-5.
See Also
ancova
Description
Usage
ancova(formula, data.in = sys.parent(), ...,
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)
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 iden-
tical, 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.
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.
12 ancova
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 Inter-
mediate Course with Examples in S-Plus, R, and SAS. Springer Texts in Statistics. Springer. ISBN
0-387-40270-5.
See Also
ancova-class aov xyplot
Examples
hotdog <- read.table(hh("datasets/hotdog.dat"), header=TRUE)
anova.mean ANOVA table from the group sample sizes, means, and standard devi-
ations.
Description
Oneway ANOVA table from the summary information consisting of group sample sizes, means,
and standard deviations. The full dataset is not needed.
Usage
anova.mean(object, n, ybar, s, ..., ylabel = "ylabel")
Arguments
object level names
n sample size for each level
ybar sample mean for each level
s sample standard deviation for each level
... other arguments (not used)
ylabel name of response variable
Value
Analysis of variance table, identical to the ANOVA table that would have been produced by anova.lm
in S-Plus and anova.lm in R if the original data, rather than the summary data, had been available.
Author(s)
Richard M. Heiberger <rmh@temple.edu>
14 aov.sufficient
See Also
anova.lm in S-Plus and anova.lm in R. plot.mmc.multicomp
Examples
## pulmonary data used in Hsu and Peruggia paper defining the mean-mean plot
## See ?plot.mmc.multicomp for details on the dataset.
anova.mean(pulmonary$smoker,
pulmonary$n,
pulmonary$FVC,
pulmonary$s,
ylabel="pulmonary")
Description
Analysis of variance from sufficient statistics for groups. For each group, we need the factor level,
the response mean, the within-group standard deviation, and the sample size. The correct ANOVA
table is produced. The residuals are fake. The generic vcov and summary.lm don’t work for the
variance of the regression coefficients in this case. Use vcov.sufficient.
Usage
aov.sufficient(formula, data = NULL,
projections = FALSE, qr = TRUE, contrasts = NULL,
weights = data$n, sd = data$s,
...)
vcov.sufficient(object, ...)
Arguments
formula, data, projections, qr, contrasts, ...
See aov in R, aov in S-Plus.
weights See lm in R, lm in S-Plus.
sd vector of within-group standard deviations.
object "aov" object constructed by aov.sufficient. It also works with regular
aov objects.
aov.sufficient 15
Value
For aov.sufficient, an object of class c("aov", "lm"). For vcov.sufficient, a function
that returns the covariance matrix of the regression coefficients.
Note
The residuals are fake. They are all identical and equal to the MLE standard error (sqrt(SumSq.res/df.tot)).
They give the right ANOVA table. They may cause confusion or warnings in other programs. The
standard errors and t-tests of the coefficients are not calculated by summary.lm. Using the aov
object from aov.sufficient in glht requires the vcov. and df arguments.
Author(s)
Richard M. Heiberger <rmh@temple.edu>
See Also
MMC and aov in R, aov in S-Plus.
Examples
## This example is from Hsu and Peruggia
if.R(s={},
r={
## orthogonal contrasts
plot(pulmonary.mmc, print.lmat=TRUE, col.lmat.signif='blue', col.iso='gray')
})
Description
Repair design error in S-Plus arima.diag.
Usage
arima.diag.hh(z, acf.resid = TRUE,
lag.max = round(max(gof.lag + n.parms + 1, 10 * log10(n))),
gof.lag = 15, resid = FALSE,
std.resid = TRUE, plot = TRUE, type = "h", ...,
x=eval(parse(text = series.name), local = sys.parent()))
Arguments
z,acf.resid,lag.max,gof.lag,resid,std.resid,plot,type,...
See arima.diag.
x The time series. This must be specified when arima.diag is called from inside
another function.
arma.loop 17
Details
Repairs design flaw in S-Plus arima.diag. The location of the time series is hardwired one level
up, so it can’t be found when arima.diag is not one level down from the top.
This function is a no-op in R.
Value
See arima.diag.
Author(s)
Richard M. Heiberger <rmh@temple.edu>
See Also
tsdiagplot, arima.diag
arma.loop Loop through a series of ARIMA models and display coordinated ta-
bles and diagnoastic graphs.
Description
Loop through a series of ARIMA models and display coordinated tables and diagnostic graphs. The
complete example from the Heiberger and Teles article, also included in the Heiberger and Holland
book, si illustrated.
Usage
arma.loop(x,
model, ## S-Plus
order, seasonal, ## R
series=deparse(substitute(x)), ...)
diag.arma.loop(z,
x=stop("The time series x is needed in S-Plus when p=q=0."),
lag.max = 36, gof.lag = lag.max)
rearrange.diag.arma.loop(z)
Arguments
x Time series vector.
model A valid S-Plus model for arima.mle.
order, seasonal
A valid R order and seasonal for arima.
18 arma.loop
Details
S-Plus and R have different functions, with different input argument names and different compo-
nents in their value.
Value
arma.loop: "arma.loop" object which is a matrix of lists, each containing an arima model.
diag.arma.loop: "diag.arma.loop" object which is a matrix of lists, each containing the
standard diagnostics for one arima model.
rearrange.diag.arma.loop: List of matrices, each containing all the values for a specific
diagnostic measure collected from the set of arima models.
Author(s)
References
"Displays for Direct Comparison of ARIMA Models" The American Statistician, May 2002, Vol.
56, No. 2, pp. 131-138. Richard M. Heiberger, Temple University, and Paulo Teles, Faculdade de
Economia do Porto.
Richard M. Heiberger and Burt Holland (2004), Statistical Analysis and Data Display, Springer,
ISBN 0-387-40270-5
See Also
tsdiagplot
Examples
Description
MMC plots: In R, functions used to interface the glht in R to the MMC functions designed with
S-Plus multicomp notation. These are all internal functions that the user doesn’t see.
Usage
## S3 method for class 'mmc.multicomp':
print(x, ...)
as.multicomp(x, ...)
as.glht(x, ...)
as.glht(x, ...)
Arguments
x "glht" object for as.multicomp. A "mmc.multicomp" object for print.mmc.multicomp
and print.glht.mmc.multicomp. A "multicomp" object for as.glht
and print.multicomp.
... other arguments.
focus name of focus factor.
ylabel response variable name on the graph.
means means of the response variable on the focus factor.
lmat, lmat.rows
mmc
lmat.scale.abs2
logical, almost always TRUE. If it is not TRUE, then the contrasts will not be
properly placed on the MMC plot.
estimate.sign
numeric. 1: force all contrasts to be positive by reversing negative contrasts.
−1: force all contrasts to be negative by reversing positive contrasts. Leave
contrasts as they are constructed by glht.
order.contrasts
logical. If TRUE, order contrasts by height (see MMC).
contrasts.none
logical. This is an internal detail. The “contrasts” for the group means are not
real contrasts in the sense they don’t compare anything. glht.mmc.glht sets
this argument to TRUE for the none component.
level Confidence level. Defaults to 0.95.
calpha User-specified critical point. See confint.glht.hh and confint.glht.
method See type in confint.glht.
Details
The mmc.multicomp print method displays the confidence intervals and heights on the MMC
plot for each component of the mmc.multicomp object.
print.multicomp displays the confidence intervals and heights for a single component.
print.glht.mmc.multicomp(x, ...) uses print.glht on each component of a mmc.multicomp
object and therefore prints only the estimates of the comparisons.
Value
as.multicomp is a generic function to change its argument to a "multicomp" object.
as.multicomp.glht changes an "glht" object to a "multicomp" object. If the model
component of the argument "x" is an "aov" object then the standard error is taken from the
anova(x$model) table, otherwise from the summary(x). With a large number of levels for the
focus factor, the summary(x) function is exceedingly slow (80 minutes for 30 levels on 1.5GHz
Windows XP). For the same example, the anova(x$model) takes a fraction of a second.
axis.i2wt 21
Note
The multiple comparisons calculations in R and S-Plus use completely different libraries. MMC
plots in R are based on glht. MMC plots in S-Plus are based on multicomp. The MMC plot is
the same in both systems. The details of gettting the plot differ.
Author(s)
Richard M. Heiberger <rmh@temple.edu>
References
Heiberger, Richard M. and Holland, Burt (2004b). Statistical Analysis and Data Display: An Inter-
mediate Course with Examples in S-Plus, R, and SAS. Springer Texts in Statistics. Springer. ISBN
0-387-40270-5.
Heiberger, R. M. and Holland, B. (2006). "Mean–mean multiple comparison displays for families
of linear contrasts." Journal of Computational and Graphical Statistics, 15:937–955.
See Also
mmc, glht in R, multicomp in S-Plus.
Description
Labels the bottom axis with the x-factor name for each column. Labels the right axis with the
response variable name in all rows.
Usage
axis.i2wt(side, scales, ...)
Arguments
side, scales, ...
See axis.default.
Author(s)
Richard M. Heiberger, with asssistance from Deepayan Sarkar.
See Also
interaction2wt
22 bwplot.formula
Description
Replacement for bwplot.formula and compute.packet in R trellis to allow them to work
with the new "positioned" class.
Usage
## S3 method for class 'formula':
bwplot(x, data = NULL, allow.multiple = is.null(groups) ||
outer, outer = FALSE, auto.key = FALSE, aspect = "fill",
panel = "panel.bwplot", prepanel = NULL, scales = list(),
strip = TRUE, groups = NULL, xlab, xlim, ylab, ylim, box.ratio = 1,
horizontal = NULL,
drop.unused.levels = lattice.getOption("drop.unused.levels"),
...,
default.scales =
if (horizontal)
list(y = list(tck = 0, alternating = FALSE, rot = 0))
else
list(x = list(tck = 0, alternating = FALSE)),
subscripts = !is.null(groups),
subset = TRUE)
Arguments
x, data, allow.multiple, outer, auto.key, aspect, panel, prepanel, scales, strip, g
See bwplot.formula.
cond, levels standard values used by lattice:::compute.packet.
cond.levels
Details
bwplot makes the assumption that the numeric equivalent of a factor f are always integers from
the sequence seq(1:length(levels(f))). When the "positioned" class is introduced,
this is no longer the right assumption. The numeric values need to be chosen from the "position"
attribute.
Value
See bwplot.formula.
ci.plot 23
Author(s)
original by Deepayan Sarkar hDeepayan.Sarkar@R-project.orgi. Modifications by Richard M.
Heiberger <rmh@temple.edu>
See Also
bwplot.formula.
ci.plot Plot confidence and prediction intervals for simple linear regression
Description
The data, the least squares line, the confidence interval lines, and the prediction interval lines for
a simple linear regression (lm(y ~ x)) are displayed. Tick marks are placed at the location of
xbar, the x-value of the narrowest interval.
Usage
ci.plot(lm.object, ...)
Arguments
lm.object Linear model for one y and one x variable.
xlim xlim for plot. Default is based on data from which lm.object was con-
structed.
newdata data.frame containing data for which predictions are wanted. The variable
name of the column must be identical to the name of the predictor variable in the
model object. Defaults to a data.frame containing a vector spanning the range
of observed data. User-specified values are appended to the default vector.
conf.level Confidence level for intervals, defaults to .95
24 col.hh
Value
"trellis" object containing the plot.
Note
The predict.lm functions in S-Plus and R differ. The S-Plus function can produce both confi-
dence and prediction intervals with a single call. The R function produces only one of them in a
single call. Therefore the default calculation of newfit within the function depends on the system.
Author(s)
Richard M. Heiberger <rmh@temple.edu>
See Also
lm, predict.lm
Examples
tmp <- data.frame(x=rnorm(20), y=rnorm(20))
tmp.lm <- lm(y ~ x, data=tmp)
ci.plot(tmp.lm)
Description
Initialization of an R display device with the graphical parameters that rmh prefers.
Usage
col.hh()
Value
List of graphical parameters to be used in the theme argument to the trellis.device or
trellis.par.set functions.
diag.maybe.null 25
Author(s)
Richard M. Heiberger <rmh@temple.edu>
See Also
trellis.device, trellis.par.get
Examples
## function name or result of function call
if.R(r={
trellis.device(theme="col.hh")
trellis.device(theme=col.hh())
Description
Returns the argument for the diagonal of NA and NULL arguments. For all other arguments, it calls
the regular diag function.
Usage
diag.maybe.null(x, ...)
Arguments
x matrix, vector, NA,
... Other arguments to diag.
Author(s)
Richard M. Heiberger (rmh@temple.edu)
See Also
diag in R, diag in S-Plus.
Examples
diag.maybe.null(NULL)
diag.maybe.null(NA)
diag.maybe.null(1:5)
26 do.formula.trellis.xysplom
do.formula.trellis.xysplom
Interprets model formulas for xysplom and extended bwplots
Description
Interprets a model formula in the context of its data.frame.
Usage
do.formula.trellis.xysplom(formula, data, na.action = na.pass)
Arguments
formula model formula
data data.frame
na.action see na.action
Value
A list containing three data.frames and three formula, one for each.
x data.frame containing the variables on the right-hand side of the model for-
mula.
y data.frame containing the variables on the left-hand side of the model for-
mula.
g data.frame containing the variables, if any, after the conditioning bar | of
the model formula.
x.formula formula containing the right-hand side of the model formula.
y.formula formula containing the left-hand side of the model formula.
g.formula formula containing the formula after the conditioning bar | of the model for-
mula.
Author(s)
Richard M. Heiberger <rmh@temple.edu>
See Also
formula, na.action
Examples
tmp <- data.frame(y=1, x=2, z=3, g=4)
do.formula.trellis.xysplom( y ~ x + z | g, data=tmp)
export.eps 27
Description
Exports a graph from the current device in R, or the graphsheet in S-Plus, to an EPS file.
Usage
Arguments
Author(s)
See Also
dev.copy2eps in R, export.graph in S.
Examples
## Not run:
trellis.device()
plot(1:10)
export.eps("abcd.eps")
## End(Not run)
Description
Usage
as.rts(x, ...)
arima.model(x)
coef.arima.HH(object, ...)
.arima.info.names.not.ordered (model)
Arguments
x vector or time series
... Additional arguments.
main, sub, xlab, ylab, line, outer, axes
See title.
model A time series model specification in the S-Plus notation.
object "arima" object in S-Plus.
y, gp See grid.text in R.
Author(s)
Richard M. Heiberger (rmh@temple.edu)
See Also
arma.loop
Description
Calculate Box–Ljung Goodness of Fit for ARIMA models in S-Plus. In R we use the Box.test
function.
grid.yaxis.hh 29
Usage
gof.calculation(acf.list, gof.lag, n, n.parms)
Arguments
acf.list An "acf" object.
gof.lag The number of model parameters is the number of lags to use for computing the
Portmanteau goodness of fit statistic
n Number of residuals in model.
n.parms Number of AR and MA parameters in the model.
Details
This function is isolated from the S-Plus arima.diag function. It is used only in S-Plus.
Value
See the gof value described in arima.diag in S-Plus.
Author(s)
Richard M. Heiberger (rmh@temple.edu)
See Also
arima.diag in S-Plus.
Examples
if.R(s={
co2.arima <- arima.mle(co2, list(list(order=c(0,1,1)),
list(order=c(0,1,1), period=12)))
co2.acf <- acf(resid(co2.arima), plot=FALSE, lag=40)
co2.gof <- gof.calculation(co2.acf, 36, length(co2), 2)
xyplot(p.value ~ lag, data=co2.gof, panel=panel.gof,
ylim=range(0, co2.gof$p.value))
},r={})
Description
uses modified older version of grid functions. Includes optional specification of the axis labels.
30 hh
Usage
grid.yaxis.hh(at = NULL, label = TRUE, main = TRUE, gp = gpar(),
draw = TRUE, vp = NULL, labels)
Arguments
at, label, main, gp, draw, vp
See link[grid]{grid.xaxis}.
labels label values if you don’t want the defaults
Value
See link[grid]{grid.xaxis}.
Author(s)
Richard M. Heiberger <rmh@temple.edu>
See Also
link[grid]{grid.xaxis}
Description
The pathnames for all the datasets and executable files in the online files accompanying Heiberger
and Holland (2004) are given relative to the options()$HH.ROOT.DIR directory.
Usage
hh(file)
Arguments
file Character string giving the pathname of a file in the HH online files relative to the
options()$HH.ROOT.DIR directory. file is the name exactly as specified
in Heiberger and Holland (2004). The hh function resolves those names to the
location where the files are stored on your computer.
hov 31
Details
The datasets and code listings in Heiberger and Holland (2004) are all given paths relative to the
beginning of the hh directory, which must be stored as options()$HH.ROOT.DIR
If you installed the HH library from an R or S-Plus package, then option options()$HH.ROOT.DIR
is set automatically.
If you installed the HH library by unzipping the downloaded online files (not a package), then
you must manually define the HH.ROOT.DIR option in your working directory (for example,
"c:/HOME/yourname/.Data" in S-Plus, or the .GlobalEnv in R). You may do this in your
.First function in either system. Or you may enter at the command prompt a statement of the
form options(HH.ROOT.DIR="c:/HOME/hh") in Windows or options(HH.ROOT.DIR="/usr/users/hh")
in Unix. See Appendix B of Heiberger and Holland (2004) for further details. The options state-
ment may need to be modified to match the location of the hh directory on your machine. If you
use more than one computer, you may need a different value for the HH.ROOT.DIR option on
each machine. This is the only change you will need to make in order to run any of our software or
examples. The hh function itself is unchanged.
Value
Author(s)
References
Heiberger, Richard M. and Holland, Burt (2004b). Statistical Analysis and Data Display: An Inter-
mediate Course with Examples in S-Plus, R, and SAS. Springer Texts in Statistics. Springer. ISBN
0-387-40270-5.
Examples
hotdog <- read.table(hh("datasets/hotdog.dat"), header=TRUE)
Description
Oneway analysis of variance makes the assumption that the variances of the groups are equal.
Brown and Forsyth, 1974 present the recommended test of this assumption. The Brown and Forsyth
test statistic is the F statistic resulting from an ordinary one-way analysis of variance on the absolute
deviations from the median.
32 hov
Usage
hov(x, data = sys.parent(), method = "bf") ## x is a formula
## users will normally use the formula above and will not call the
## method directly.
hov.bf(x, group, ## x is the response variable
y.name = deparse(substitute(x)),
group.name = deparse(substitute(group)))
Arguments
x Formula appropriate for oneway anova in hov. Response variable in hov.bf.
data data.frame
method Character string defining method. At this time the only recognized method is
"bf" for the Brown–Forsyth method.
group factor.
y.name name of response variable, defaults to variable name in formula.
group.name name of factor, defaults to variable name in formula.
Value
"htest" object for the hov test.
Author(s)
Richard M. Heiberger <rmh@temple.edu>
References
Heiberger, Richard M. and Holland, Burt (2004b). Statistical Analysis and Data Display: An Inter-
mediate Course with Examples in S-Plus, R, and SAS. Springer Texts in Statistics. Springer. ISBN
0-387-40270-5.
Brown, M. B. and Forsyth, A. B. (1974). Robust tests for equality of variances. Journal of the
American Statistical Association, 69:364–367.
See Also
aov, plot.hov
Examples
turkey <- read.table(hh("datasets/turkey.dat"), header=FALSE)
names(turkey) <- c("diet","wt.gain")
turkey$diet <- factor(turkey$diet,
labels=c("control","A1","A2","B1","B2"))
Description
if.R uses the is.R function to determine whether to execute the expression in the r argument or
the expression in the s argument.
Usage
if.R(r, s)
Arguments
Details
Not all functions are in both implementations of the S language. In particular, panel functions for
lattice in R (based on grid graphics) are very different from panel functions for trellis
(based on the older graphics technology) in S-Plus.
Value
Author(s)
See Also
is.R
Examples
if.R(r={"This is R."},
s={"This is S-Plus"})
34 interaction.positioned
interaction.positioned
interaction method for positioned factors.
Description
This is intended to be a method for interaction for positioned factors. Since interaction is
not currently implemented as a generic, interaction.positioned is a standalone function.
The result is assigned a position. The position for each interaction level is the position of the
corresponding a factor plus a scaled level of the b factor. The default scale is .1.
Usage
interaction.positioned(..., ## exactly two factors
drop = FALSE, sep = ".",
b.offset=0,
b.scale=.1)
Arguments
... exactly two factors. The first factor a is used as the major factor in sort order.
The second factor b is used as minor factor in sort order.
b.offset amount added to position(b) to adjust appearance.
b.scale scale to relate units of position(a) to units of position(b).
drop, sep See factor.
Value
"positioned" object containing the ordinary interaction with a "position" attribute.
Author(s)
Richard M. Heiberger <rmh@temple.edu>
See Also
positioned.
Examples
a <- positioned(letters[c(1,2,3,1,2,3)], value=c(1,4,9))
b <- positioned(LETTERS[c(4,4,4,5,5,5)], value=c(1,2))
a.b <- interaction.positioned(a, b)
a.b.2 <- interaction.positioned(a, b, b.scale=.2)
b.a <- interaction.positioned(b, a)
interaction2wt 35
interaction2wt Plot all main effects and twoway interactions in a multifactor design
Description
The main diagonal displays boxplots for the main effects of each factor. The off-diagonals show
the interaction plots for each pair of factors. The i,j panel shows the same factors as the j,i but
with the trace- and x-factor roles interchanged.
Usage
interaction2wt(x, ...)
## Default S3 method:
interaction2wt(x,
response.var,
responselab = deparse(substitute(y)),
relation = list(x = "same", y = "same"),
x.relation = relation$x,
y.relation = relation$y,
digits = 3,
x.between=if (label.as.interaction.formula) 0 else 1,
y.between=if (label.as.interaction.formula) 0 else 1,
between,
cex = 0.75,
rot=c(0,0),
panel.input = panel.interaction2wt,
strip.input =
if (label.as.interaction.formula) strip.default
else strip.interaction2wt,
par.strip.text.input = list(cex=.7, responselab=responselab),
scales.additional,
main.in =
paste(responselab,
": main effects and 2-way interactions",
sep = ""),
xlab = list(labels = ""),
ylab = list(labels = ""),
simple=FALSE,
box.ratio=if (simple) .32 else 1,
label.as.interaction.formula=TRUE,
...,
main.cex)
36 interaction2wt
Arguments
Arguments when x is a formula.
x The object on which method dispatch is carried out.
For the "formula" method, a formula describing the response variable and
factors. The formula is generally of the form y ~ g1 + g2 + .... There
may be one or more factors in the formula.
For the "default" method, data.frame of factors. This is usually con-
structed by formula method from the input data and the input formula.
data For the formula method, a data frame containing values for any variables in
the formula. In the R version, if not found in data, or if data is unspecified,
the variables are looked for in the environment of the formula.
responselab Character name of response variable, defaults to the name of the response vari-
able in the formula.
... additional arguments, primarily trellis arguments.
response.var For the "default" method, the response variable. This is usually constructed
by formula method from the input data and the input formula.
simple logical. TRUE if simple effects are to be displayed. Arguments simple.offset,
simple.scale, and col.by.row may also be needed. See panel.interaction2wt
for details.
box.ratio bwplot in R or bwplot in S-Plus.
relation trellis argument.
x.relation x value of relation argument.
y.relation y value of relation argument.
digits doesn’t do anything at the moment
x.between x value of between argument.
y.between y value of between argument.
between trellis/lattice between argument. If used, between has precedence over both
the x.between and y.between arguments.
cex S-Plus: changes the size of the median dot in the boxplots. R: doesn’t do any-
thing.
panel.input panel function. Default is panel.interaction2wt.
label.as.interaction.formula
logical. If TRUE, each panel has a single strip label of the form y ~ a | b. If
FALSE, each panel has a pair of strip labels, one for the trace factor and one
for the x factor.
strip.input strip function. Default depends on the value of label.as.interaction.formula.
par.strip.text.input
par.strip.text argument.
scales.additional
additional arguments to scales argument.
main.in Text of main title.
interaction2wt 37
xlab No effect.
ylab No effect.
main.cex cex for main title.
rot Rotation of x tick labels and y tick labels. Only 0 and 90 will look good.
Value
"trellis" object containing the plot.
Author(s)
Richard M. Heiberger <rmh@temple.edu>
References
Heiberger, Richard M. and Holland, Burt (2004b). Statistical Analysis and Data Display: An Inter-
mediate Course with Examples in S-Plus, R, and SAS. Springer Texts in Statistics. Springer. ISBN
0-387-40270-5.
See Also
panel.interaction2wt
Examples
vulcan <- read.table(hh("datasets/vulcan.dat"), header=TRUE)
vulcan$filler <- factor(vulcan$filler)
position(vulcan$raw) <- (1:4)+.5
position(vulcan$pretreat) <- 2:4
interaction2wt(wear ~ filler + pretreat + raw, data=vulcan)
interaction2wt(wear ~ filler + raw, data=vulcan,
simple=TRUE)
interaction2wt(wear ~ filler + raw, data=vulcan,
simple=TRUE, simple.scale=c(filler=.15, raw=.2))
if.R(r={
ToothGrowth <- ToothGrowth ## local copy
ToothGrowth$dose <- positioned(ToothGrowth$dose) ## modify local copy
print(
anova(aov(len ~ supp*dose, data=ToothGrowth))
)
print(
interaction2wt(len ~ supp + dose, data=ToothGrowth)
)
print(
bwplot(len ~ supp | unpositioned(dose), data=ToothGrowth, layout=c(3,1))
)
print(
bwplot(len ~ dose | supp, data=ToothGrowth, layout=c(2,1),
box.ratio=.5,
panel=panel.bwplot.intermediate.hh,
38 intxplot
scales=list(x=list(at=position(ToothGrowth$dose))))
)
print(
bwplot(len ~ dose | supp, data=ToothGrowth, layout=c(2,1),
box.ratio=.5,
scales=list(x=list(at=position(ToothGrowth$dose))))
)
esoph=esoph
esoph$rate=with(esoph, ncases/ncontrols)
print(
interaction2wt(rate ~ agegp + alcgp + tobgp, esoph, rot=c(90,0))
)
esoph.aov <- aov(rate ~ agegp + alcgp + tobgp, data=esoph)
print(
anova(esoph.aov)
)
}, s={})
Description
Interaction plot, with an option to print standard error bars. There is an option to offset group lines
to prevent the bars from overprinting.
Usage
intxplot(x, data=sys.parent[1], groups.in,
scales,
key.length=1,
key.lines,
key=TRUE,
trace.factor.name=deparse(substitute(groups.in)),
x.factor.name=x.factor,
xlab=x.factor.name,
main=list(main.title, cex=main.cex),
condition.name="condition",
panel="panel.intxplot",
summary.function="sufficient",
se,
...,
data.is.summary=FALSE,
main.title=paste(
intxplot 39
Arguments
x For intxplot, a formula with a factor as the predictor variable. For panel.intxplot,
standard argument for panel functions.
data data.frame, as used in xyplot.
groups.in groups.in, as used in xyplot.
scales Optional, additional arguments for the standard scales in xyplot.
key.length Number of columns in the key.
key.lines default value for the lines argument of key.
key logical. If TRUE, draw the key.
trace.factor.name
Name of the grouping variable.
x.factor.name
name of the dependent variable.
xlab as in xyplot, defaults to the name of the predictor variable from the formula.
main as in xyplot. Defaults to the main.title argument.
panel as in xyplot. Defaults to the "panel.intxplot".
condition.name
name of the conditioning variable.
summary.function
The default sufficient finds the mean, standard deviation, and sample size
of the response variable for each level of the conditioning factor. See sufficient.
se standard errors to be passed to panel.intxplot. se Missing, logical, or
a numeric vector. If missing or FALSE, standard errors are not plotted. If
se=TRUE in intxplot, the standard errors are calculated from the suffi-
cient statistics for each group as the group’s standard deviation divided by the
square root of the group’s observation count. If se is numeric vector, it is
evaluated in the environment of the sufficient statistics. the se argument to
panel.intxplot must be numeric.
... In intxplot, arguments for panel.intxplot. In panel.intxplot,
arguments for panel.superpose.
40 intxplot
data.is.summary
logical, defaults to FALSE under the assumption that the input data.frame is
the original data and the intxplot function will generate the summary infor-
mation (primarily standard deviation sd and number of observations nobs for
each group). When TRUE, the standard error calculation assumes variables sd
and nobs are in the dataset.
main.title Default main title for plot.
main.cex Default character expansion for main title.
y, subscripts, groups, type
Standard arguments for panel functions.
cv critical value for confidence intervals. Defaults to 1.96.
offset.use logical. If TRUE, offset the endpoints of each group.
offset.scale Scale number indicating how far apart the ends of the groups will be placed.
Larger numbers make them closer together.
offset Actual numbers by which the end of the groups are offset from their nominal
location which is the as.numeric of the group levels.
rug.use logical. If TRUE, display a rug for the endpoints of each group.
Value
"trellis" object.
Author(s)
Richard M. Heiberger <rmh@temple.edu>
See Also
sufficient
Examples
## This uses the same data as the HH Section 12.13 rhizobium example.
## interaction plot, no se
intxplot(Npg ~ strain, groups=comb, data=rhiz.clover)
Description
Draw a "ladder of powers" plot, plotting each of several powers of y against the same powers of x.
The powers are
result <- data.frame(-1/x, -1/sqrt(x), log(x), sqrt(x), x, x^2)
names(result) <- c(-1, -.5, 0, .5, 1, 2)
Usage
ladder(formula.in, data=sys.parent(),
main.in="Ladders of Powers",
panel.in=panel.cartesian,
xlab=deparse(formula.in[[3]]),
ylab=deparse(formula.in[[2]]),
scales=list(alternating=if.R(s=TRUE, r=FALSE),
labels=FALSE, ticks=FALSE, cex=.6),
par.strip.text=list(cex=.6),
cex=.5, pch=16, between=list(x=.3, y=.3),
dsx=xlab,
dsy=ylab,
42 ladder
ladder.function=ladder.f,
strip.number=1,
strip.names,
strip.style=1,
strip,
oma=c(0,0,0,0), ## S-Plus
axis3.line=.61,
layout=c(length(tmp$x.power), length(tmp$y.power)),
axis.key.padding = 10, ## R right axis
key.axis.padding = 10, ## R top axis
...)
ladder3(x, y,
dsx=deparse(substitute(x)),
dsy=deparse(substitute(y)),
ladder.function=ladder.f)
ladder.f(x)
ladder.fstar(x)
strip.ladder(which.given,
which.panel,
var.name,
factor.levels,
shingle.intervals,
par.strip.text=trellis.par.get("add.text"),
strip.names=c(TRUE,TRUE),
style=1,
...)
Arguments
formula.in A formula with exactly one variable on each side.
data data.frame
main.in main title for xyplot
panel.in panel.cartesian has many arguments in addition to the arguments in panel.xyplot.
Any replacement panel function must have those argument names, even if it
doesn’t do anything with them.
xlab, ylab Trellis arguments, default to right- and left-sides of the formula.in.
strip Strip function. Our default is strip.ladder (see below). The other viable
argument value is FALSE.
cex, pch, between, scales, layout
arguments for xyplot.
dsx, dsy Names to be used as level names in ladder.function for the generated fac-
tor distinguishing the powers. They default to xlab, ylab. For long variable
ladder 43
names, an abbreviated name here will decrease clutter in the ladder of powers
plot. These names are not visible in the plot when strip=FALSE.
ladder.function
function to use to create data.frame of powers of input variable.
strip.number Number of strip labels in each panel of the display. 0: no strip labels; 1: one
strip label of the form y^p ~ x^q; 2: two strip labels of the form ylab:
y^p and xlab: x^q, where p and q are the powers returned by ladders;
y and x are the arguments dsy and dsx.
strip.style style argument to strip.
oma argument to par in S-Plus.
... other arguments to xyplot.
axis3.line extra space to make the top axis align with the top of the top row of panels. Trial
and error to choose a good value.
axis.key.padding
Extra space on right of set of panels in R.
key.axis.padding
Extra space on top of set of panels in R.
x, y variables.
which.given, which.panel, var.name, factor.levels, shingle.intervals, par.strip.tex
See strip.default in R or strip.default in S-Plus.
strip.names, style
We always print the strip.names in style=1. Multicolored styles are too
busy.
Details
The ladder function uses panel.cartesian which is defined differently in R (using grid
graphics) and S-Plus (using traditional graphics). Therefore the fine control over appearance uses
different arguments or different values for the same arguments.
Value
ladder returns a "trellis" object.
The functions ladder.fstar and ladder.f take an input vector x of non-negative values
and construct a data.frame by taking the input to the powers c(-1, -.5, 0, .5, 1, 2),
one column per power. ladder.f uses the simple powers and ladder.fstar uses the scaled
Box–Cox transformation.
ladder3 takes two vectors as arguments. It returns a data.frame with five columns:
X, Y data to be plotted. The column X contains the data from the input x taken to all the powers
and aligned with the similarly expanded column Y.
x, y symbolic labeling of the power corresponding to X,Y.
group result from pasting the labels in x, y with * between them.
Author(s)
Richard M. Heiberger <rmh@temple.edu>
References
Heiberger, Richard M. and Holland, Burt (2004b). Statistical Analysis and Data Display: An Inter-
mediate Course with Examples in S-Plus, R, and SAS. Springer Texts in Statistics. Springer. ISBN
0-387-40270-5.
Hoaglin, D. C., Mosteller, F., and Tukey, J. W., editors (1983). Understanding Robust and Ex-
ploratory Data Analysis. Wiley.
Box, G. E. P. and Cox, D. R. (1964). An analysis of transformations. J. Royal Statist Soc B,
26:211–252.
See Also
panel.cartesian
Examples
## some country names have embedded blanks
tv <- if.R(r=
read.fwf(hh("datasets/tv.dat"),
widths=c(22,6,7,7,4,2),
strip.white=TRUE,
na.strings="*",
row.names=1)
,s=
read.table(hh("datasets/tv.dat"),
sep=c(1,23,29,36,43,47),
na.strings="*")
)
names(tv) <- c("life.exp","ppl.per.tv","ppl.per.phys",
"fem.life.exp","male.life.exp")
strip.number=2,
dsx="ppp", dsy="le")
,s=
ladder(life.exp ~ ppl.per.phys, data=tv,
main="Ladder of Powers for Life Expectancy and People per Physician",
strip.number=2,
dsx="ppp", dsy="le",
axis3.line=1.2)
)
Description
Each key is created and then inserted into a single grob.
Usage
legendGrob2wt(...)
Arguments
... key1, key2, etc. Each key will normally be the result of a draw.key with
draw=FALSE.
Value
A Grid frame object (that inherits from ’grob’).
Author(s)
Richard M. Heiberger, with asssistance from Deepayan Sarkar.
See Also
interaction2wt
46 lm.case
Description
Case statistics for regression analysis. lm.case calculates the statistics. plot.case plots the
cases, one statistic per panel, and illustrates and itemizes all observations for which the stan-
dard thresholds are exceeded. plot.case returns a "trellis" object containing the plot
and also places the row.names of the flagged observations in the variable .lm.case.large.
panel.case is a panel function for plot.case.
Usage
lm.case(fit, lms = summary.lm(fit), lmi = lm.influence(fit))
plot.case(x, fit,
which=c("stu.res","si","h","cook","dffits",
dimnames(x)[[2]][-(1:8)]), ##DFBETAS
between.in=list(y=4, x=9),
oma=c(0,0,0,4), cex.threshold=if.R(r=1.2, s=1.6),
main.in=list(
paste(deparse(fit$call), collapse=""),
cex=main.cex),
sigma.in=summary.lm(fit)$sigma,
p.in=summary.lm(fit)$df[1]-1,
obs.large=".lm.case.large",
obs.large.env=if.R(r=globalenv(), s=0),
main.cex=NULL,
...)
Arguments
fit "lm" object computed with x=TRUE
lms summary.lm(fit)
lmi lm.influence(fit)
x In plot.case, the matrix output from lm.case containing case diagnostics
on each observation in the original dataset. In panel.case, the x variable to
be plotted
which In plot.case, the names of the columns of x that are to be graphed.
lm.case 47
Details
lm.influence is part of S-Plus and R lm.case and plot.case are based on: Section 4.3.3
"Influence of Individual Obervations in Chambers and Hastie", Statistical Models in S.
Value
lm.case returns a matrix, with one row for each observation in the original dataset. The columns
contain the diagnostic statistics: e (residuals), h* (hat diagonals), si* (deleted standard deviation),
sta.res (standardized residuals), stu.res* (Studentized deleted resididuals), dffit (differ-
ence in fits, change in predicted y when observation i is deleted), dffits* (standardized difference
48 lm.case
in fits, standardized change in predicted y when observation i is deleted), cook* (Cook’s distance),
and DFBETAs* (standardized difference in regression coefficients when observation i is deleted,
one for each column of the x-matrix, including the intercept).
plot.case returns a "trellis" object containing the plot (including the starred columns by
default) and also places the row.names of the flagged observations in the variable .lm.case.large.
The variable .lm.case.large is placed by default into frame 0 in S-Plus and into globalenv()
in R.
panel.case is a panel function for plot.case. The variable .lm.case.large is created
one column at a time inside the panel function.
Author(s)
References
Heiberger, Richard M. and Holland, Burt (2004b). Statistical Analysis and Data Display: An Inter-
mediate Course with Examples in S-Plus, R, and SAS. Springer Texts in Statistics. Springer. ISBN
0-387-40270-5.
See Also
Examples
Description
MCA multiple comparisons analysis (pairwise). We calculate the contrast matrix for all pairwise
comparisons, taking account of covariates and interactions.
Usage
mcalinfct(model, focus,
mmm.data=model$model,
formula.in=terms(model),
linfct.Means=
multcomp:::meanslinfct(model, focus, mmm.data, formula.in),
type="Tukey"
)
Arguments
model aov object
focus name of one of the factors in the model, as a character object.
mmm.data data.frame from which the model was estimated. Normally, the default is
the correct value.
formula.in formula of the model which was estimated. Normally, the default is the cor-
rect value. The use of the terms function honors the keep.order=TRUE if
it was specified.
linfct.Means Contrast matrix for the adjusted means of each level of the focus factor. Nor-
mally, the default is the correct value.
type Name of the multiple comparison procedure to be used. See contrMat.
Value
Matrix to be used as a value for the linfct argument to glht.
Note
This function provides results similar to the mcp(focusname="Tukey") argument to glht. I
think it provides better values for covariate and interaction terms.
Author(s)
Richard M. Heiberger <rmh@temple.edu>
See Also
MMC
50 mmc
Examples
## See the examples in HH/scripts/MMC.cc176.R
Description
Constructs a "mmc.multicomp" object from the formula and other arguments. The object must
be explicitly plotted.
Usage
glht.mmc(model, ...) ## R
lmat, lmat.rows=-1,
lmat.scale.abs2=TRUE,
ry,
plot=TRUE,
crit.point,
iso.name=TRUE,
estimate.sign=1,
x.offset=0,
order.contrasts=TRUE,
main,
main2)
Arguments
model "aov" object in "lm" method.
ylabel name of the response variable.
lmat contrast matrix as in the S-Plus multicomp. The convention for lmat in R is
to use the transpose of the linfct component produced by glht. Required
for user-specified contrasts.
lmat.rows rows in lmat for the focus factor.
focus define the factor to compute contrasts of. See mcp in R.
linfct In R, see glht.
... other arguments. alternative and base are frequently used with glht.
comparisons argument to multicomp
lmat.scale.abs2
logical, scale the contrasts in the columns of lmat to make the sum of the
absolute values of each column equal 2.
estimate.sign
numeric. If 0, leave contrasts in the default lexicographic direction. If positive,
force all contrasts to positive, reversing their names if needed (if contrast A-B is
negative, reverse it to B-A). If negative, the force all contrasts to positive.
order.contrasts
sort the contrasts in the (mca, none, lmat) components by height on the MMC
plot. This will place the contrasts in the multicomp plots in the same order as in
the MMC plot.
alternative Direction of alternative hypothesis. See confint in R. S-Plus multicomp
uses the argument bounds for this concept.
level Confidence level. Defaults to 0.95.
crit.point, calpha
critical value for the tests. The value from the specified multicomp method
is used for the user-specified contrasts when lmat is specified. This argument
is called crit.point with multicomp in S-Plus and calpha when used
52 mmc
with glht and confint in R. In R, with a large number of levels for the
focus factor, calpha should be specified. See notes below for discussion of
the timing issues and the examples for an illustration how to use calpha.
plot logical, display the plot if TRUE.
ry, iso.name, x.offset, main, main2
arguments to plot.mmc.multicomp.
x, drop See "[".
Details
By default, if lmat is not specified, we plot the isomeans grid and the pairwise comparisons for
the focus factor. By default, we plot the specified contrasts if the lmat is specified.
We get the right contrasts automatically if the aov is oneway. If we specify an lmat for oneway it
must have a leading row of 0.
For any more complex design, we must study the lmat from the mca component of the result to
see how to construct the lmat (with the extra rows as needed) and how to specify the lmat.rows
corresponding to the rows for the focus factor.
glht.mmc in R works from either an "glht" object or an "aov" object. multicomp.mmc in
S-Plus works from an "aov" object.
Value
An "mmc.multicomp" object contains either the first two or all three of the "multicomp"
components
mca
none
lmat
mca Object containing the pairwise comparisons.
none Object comparing each mean to 0.
lmat Object for the contrasts specified in the lmat argument.
"[.mmc.multicomp" is a subscript method.
Note
The multiple comparisons calculations in R and S-Plus use completely different functions. MMC
plots in R are constructed by glht.mmc based on glht. MMC plots in S-Plus are constructed by
multicomp.mmc based on the S-Plus multicomp. The MMC plot is the same in both systems.
The details of getting the plot differ.
Function glht.mmc calls glht and confint.glht. With a large number of levels for the focus
factor, the confint function is exceedingly slow (80 minutes for 30 levels on 1.5GHz Windows
XP). Therefore, always specify calpha to reduce the time to under a second for the same example.
plot.mmc.multicomp chooses sensible defaults for its many arguments. They will often need
manual adjustment. The examples show several types of adjustments. We have changed the center-
ing and scaling to avoid overprinting of label information. By default the significant contrasts are
shown in a more intense color than the nonsignificant contrasts. We have an option to reduce the
color intensity of the isomeans grid.
mmc 53
Author(s)
Richard M. Heiberger <rmh@temple.edu>
References
Heiberger, Richard M. and Holland, Burt (2004b). Statistical Analysis and Data Display: An Inter-
mediate Course with Examples in S-Plus, R, and SAS. Springer Texts in Statistics. Springer. ISBN
0-387-40270-5.
Heiberger, R. M. and Holland, B. (2006). "Mean–mean multiple comparison displays for families
of linear contrasts." Journal of Computational and Graphical Statistics, 15:937–955.
Hsu, J. and Peruggia, M. (1994). "Graphical representations of Tukey’s multiple comparison
method." Journal of Computational and Graphical Statistics, 3:143–161.
See Also
as.multicomp, plot.mmc.multicomp
Examples
## Use glht.mmc with R.
## Use multicomp.mmc with S-Plus.
if.R(r=
bwplot(concent ~ catalyst, data=catalystm,
scales=list(cex=1.5),
ylab=list("concentration", cex=1.5),
xlab=list("catalyst",cex=1.5))
,s=
t(bwplot(catalyst ~ concent, data=catalystm,
scales=list(cex=1.5),
xlab=list("concentration", cex=1.5),
ylab=list("catalyst",cex=1.5)))
)
catalystm.mca <-
if.R(r=glht(catalystm1.aov, linfct = mcp(catalyst = "Tukey")),
s=multicomp(catalystm1.aov, plot=FALSE))
plot(catalystm.mca) ## S-Plus always and R for small number of levels
if.R(s={},
r=plot(confint(catalystm.mca, calpha=qtukey(.95, 4, 12)/sqrt(2))))
## R for large number of levels
catalystm.mca
54 mmc
## pairwise comparisons
catalystm.mmc <-
if.R(r=glht.mmc(catalystm1.aov, linfct = mcp(catalyst = "Tukey")),
s=multicomp.mmc(catalystm1.aov, plot=FALSE))
catalystm.mmc
plot(catalystm.mmc)
plot(catalystm.mmc$mca)
plot(catalystm.mmc$none)
if.R(s={},
r={## R for large number of levels
plot(confint(catalystm.mmc$mca$glht,
calpha=catalystm.mmc$mca$crit.point))
plot(confint(catalystm.mmc$none$glht,
calpha=catalystm.mmc$none$crit.point))
}
)
## user-specified contrasts
catalystm.lmat <- cbind("AB-D" =c(0, 1, 1, 0,-2),
"A-B" =c(0, 1,-1, 0, 0),
"ABD-C"=c(0, 1, 1,-3, 1))
if.R(r=catalystm.lmat <- catalystm.lmat[-2,],
s={})
dimnames(catalystm.lmat)[[1]] <- dimnames(catalystm.mmc$mca$lmat)[[1]]
zapsmall(catalystm.lmat)
if.R(s=dimnames(catalystm.mca$lmat)[[1]],
r=dimnames(catalystm.mca$linfct)[[2]])
catalystm.mmc <-
if.R(r=glht.mmc(catalystm1.aov, linfct = mcp(catalyst = "Tukey"),
lmat=catalystm.lmat)
,s=multicomp.mmc(catalystm1.aov, lmat=catalystm.lmat,
plot=FALSE)
)
catalystm.mmc
plot(catalystm.mmc)
plot(catalystm.mmc$mca)
plot(catalystm.mmc$none)
plot(catalystm.mmc$lmat)
## Dunnett's test
weightloss <- read.table(hh("datasets/weightloss.dat"), header=TRUE)
weightloss <- data.frame(loss=unlist(weightloss),
group=rep(names(weightloss), rep(10,5)))
if.R(r=
bwplot(loss ~ group, data=weightloss,
scales=list(cex=1.5),
ylab=list("Weight Loss", cex=1.5),
mmc 55
xlab=list("group",cex=1.5))
,s=
t(bwplot(group ~ loss, data=weightloss,
scales=list(cex=1.5),
xlab=list("Weight Loss", cex=1.5),
ylab=list("group",cex=1.5)))
)
if.R(r={
group.count <- table(weightloss$group)
},s={})
tmp.dunnett <-
if.R(r=
glht(weightloss.aov,
linfct=mcp(group=contrMat(group.count, base=4)),
alternative="greater")
,s=
multicomp(weightloss.aov,
method="dunnett", comparisons="mcc",
bounds="lower", control=4,
valid.check=FALSE)
)
plot(tmp.dunnett)
tmp.dunnett.mmc <-
if.R(r=
glht.mmc(weightloss.aov,
linfct=mcp(group=contrMat(group.count, base=4)),
alternative="greater")
,s=
multicomp.mmc(weightloss.aov,
method="dunnett", comparisons="mcc",
bounds="lower", control=4,
valid.check=FALSE, plot=FALSE)
)
tmp.dunnett.mmc
plot(tmp.dunnett.mmc)
## two-way ANOVA
display <- read.table(hh("datasets/display.dat"), header=TRUE)
display$panel <- factor(display$panel) ## display$panel <- positioned(display$panel, value=
display$emergenc <- factor(display$emergenc)
## multiple comparisons
56 mmc
## MMC plot
displayf.mmc <-
if.R(r=glht.mmc(displayf.aov, linfct=mcp(panel="Tukey"), focus="panel", lmat.rows=5:6),
s=multicomp.mmc(displayf.aov, "panel", lmat.rows=6:8, plot=FALSE))
plot(displayf.mmc)
## orthogonal contrasts
zapsmall(mca.lmat <- displayf.mmc$mca$lmat)
panel.lmat <- cbind("3-12"=mca.lmat[,1] + mca.lmat[,2],
"1-2"=mca.lmat[,3])
displayf.mmc <-
if.R(r=glht.mmc(displayf.aov, linfct=mcp(panel="Tukey"), focus="panel",
lmat.rows=5:6, lmat=panel.lmat),
s=multicomp.mmc(displayf.aov, "panel", lmat.rows=6:8,
lmat=panel.lmat, plot=FALSE))
plot(displayf.mmc)
summary(maiz.aov)
summary(maiz.aov,
split=list(hibrido=list(P3732=1, Mol17=2, A632=3, LH74=4)))
sapply(maiz[-1], contrasts)
if.R(r={
## R glht.mmc requires treatment contrasts
contrasts(maiz$nitrogeno) <- "contr.treatment"
sapply(maiz[-1], contrasts)
},
s={})
if.R(s={
maiz2.mca <- multicomp(maiz2.aov, focus="hibrido")
## plot(maiz2.mca)
dimnames(maiz2.mca$lmat)[[1]]
maiz2.mmc <- multicomp.mmc(maiz2.aov, focus="hibrido",
lmat.rows=16:20, plot=FALSE)
old.mar <- par(mar=c(15,4,4,7)+.1)
plot(maiz2.mmc)
par(mar=c(2,4,28,7)+.1, new=TRUE)
old.cex <- par(cex=.8)
plot(maiz2.mmc$mca, col.signif=8, lty.signif=1, xlabel.print=FALSE,
xaxs="d", plt=par()$plt+c(0,0,-.25,.05), xrange.include=c(-30,40))
par(old.cex)
par(old.mar)
},r={
maiz2.mca <- glht(maiz2.aov, linfct=mcp(hibrido="Tukey"))
dimnames(maiz2.mca$linfct)[[2]]
maiz2.mmc <- glht.mmc(maiz2.aov, linfct=mcp(hibrido="Tukey"), lmat.rows=9:12)
old.oma <- par(oma=c(12,3,0,4))
plot(maiz2.mmc)
par(oma=c(0,3,22,4), new=TRUE)
plot(maiz2.mmc$mca,
xlim=par()$usr[1:2], xaxs="i",
main="", xlab="", cex.axis=.7)
par(old.oma)
})
Description
Constructs a "mmc.multicomp" object from the sufficient statistics for a one-way design. The
object must be explicitly plotted.
58 mmc.mean
Usage
Arguments
group character vector of levels
n numeric vector of sample sizes
ybar vector of group means
s vector of group standard deviations
alpha Significance levels of test
ylabel name of response variable
focus.name name of factor
plot logical. Should the "mmc.multicomp" object be automatically plotted? ig-
nored in R.
lmat lmat from multicomp in S-Plus or t(linfct) from glht in R.
labels labels argument for multicomp in S-Plus. Not used in R.
method method for critical point calculation. This corresponds to method in S-Plus
multicomp and to type in R glht
df scalar, residual degrees of freedom
sigmahat sqrt(MSE) from the ANOVA table
... other arguments
comparisons argument to S-Plus multicomp only.
mmc.mean 59
Value
multicomp.mmc.mean returns a "mmc.multicomp" object.
multicomp.mean returns a "multicomp" object.
Note
The multiple comparisons calculations in R and S-Plus use completely different functions. MMC
plots in R are constructed by glht.mmc based on glht. MMC plots in S-Plus are constructed by
multicomp.mmc based on the S-Plus multicomp. The MMC plot is the same in both systems.
The details of getting the plot differ.
Author(s)
Richard M. Heiberger <rmh@temple.edu>
References
Heiberger, Richard M. and Holland, Burt (2004b). Statistical Analysis and Data Display: An Inter-
mediate Course with Examples in S-Plus, R, and SAS. Springer Texts in Statistics. Springer. ISBN
0-387-40270-5.
Heiberger, R. M. and Holland, B. (2006). "Mean–mean multiple comparison displays for families
of linear contrasts." Journal of Computational and Graphical Statistics, 15:937–955.
Hsu, J. and Peruggia, M. (1994). "Graphical representations of Tukey’s multiple comparison
method." Journal of Computational and Graphical Statistics, 3:143–161.
See Also
mmc
Examples
## This example is from Hsu and Peruggia
if.R(r={},
s={
row.names=NULL)
names(pulmonary)[3] <- "FVC"
names(pulmonary)[1] <- "smoker"
pulmonary$smoker <- factor(pulmonary$smoker, levels=pulmonary$smoker)
row.names(pulmonary) <- pulmonary$smoker
pulmonary
pulmonary.aov <- aov.sufficient(FVC ~ smoker,
data=pulmonary)
summary(pulmonary.aov)
## multicomp object
pulmonary.mca <-
multicomp.mean(pulmonary$smoker,
pulmonary$n,
pulmonary$FVC,
pulmonary$s,
ylabel="pulmonary",
focus="smoker")
pulmonary.mca
## lexicographic ordering of contrasts, some positive and some negative
plot(pulmonary.mca)
## mmc.multicomp object
pulmonary.mmc <-
multicomp.mmc.mean(pulmonary$smoker,
pulmonary$n,
pulmonary$FVC,
pulmonary$s,
ylabel="pulmonary",
focus="smoker",
lmat=pulm.lmat,
plot=FALSE)
## pairwise comparisons
plot(pulmonary.mmc, print.mca=TRUE, print.lmat=FALSE)
## orthogonal contrasts
plot(pulmonary.mmc, print.lmat=TRUE, col.lmat.signif='blue', col.iso='gray')
par(old.par)
})
Description
Update a multicomp object by ordering its contrasts. The default sort.by = "height" matches
the order in the MMC plot. An alternate sort.by = "estimate" matches the order of the
half-normal plot. Or the argument sort.order can be used to specify any other order.
Usage
multicomp.order(mca, sort.by = "height", sort.order = NULL)
Arguments
mca "multicomp" object. This is the result of multicomp in S-Plus or the result
from applying as.multicomp to a "glht" object in R.
sort.by Either "height" or "estimate".
sort.order Vector of indices by which the contrasts are to be sorted. When sort.order
in non-NULL, it is used.
x "multicomp" object.
old character string to be removed from contrast names.
new replacement character string to be inserted in contrast names.
how.many number of times to make the replacement.
62 multicomp.order
Value
The result is a "multicomp" object containing the same contrasts as the argument. multicomp.order
sorts the contrasts (and renames them consistently) according to the specifications. multicomp.label.change
changes the contrast names according to the specifications.
When sort.by=="height", sort the contrasts by the reverse order of the heights. This provides
a "multicomp" object that will be plotted by plot.multicomp in the same order used by
plot.mmc.multicomp. If there is not "height" component, the original "multicomp"
object is returned.
When sort.by=="estimate", sort the contrasts by the reverse order of the contrast estimates.
This provides the same order as the half-normal plot.
When sort.order in non-NULL, sort the contrasts in that order.
Note
S-Plus use the multicomp functions and R uses the multcomp package.
Author(s)
Richard M. Heiberger <rmh@temple.edu>
References
Heiberger, Richard M. and Holland, Burt (2004b). Statistical Analysis and Data Display: An Inter-
mediate Course with Examples in S-Plus, R, and SAS. Springer Texts in Statistics. Springer. ISBN
0-387-40270-5.
Heiberger, R. M. and Holland, B. (2006). "Mean–mean multiple comparison displays for families
of linear contrasts." Journal of Computational and Graphical Statistics, 15:937–955.
See Also
MMC, as.glht in R, multicomp.reverse
Examples
## continue with the example in glht.mmc in R, or multicomp.mmc in S-Plus
catalystm <- read.table(hh("datasets/catalystm.dat"), header=FALSE,
col.names=c("catalyst","concent"))
catalystm$catalyst <- factor(catalystm$catalyst, labels=c("A","B","C","D"))
catalystm1.aov <- aov(concent ~ catalyst, data=catalystm)
if.R(r={
catalystm.mca <-
glht(catalystm1.aov, linfct = mcp(catalyst = "Tukey"))
print(confint(catalystm.mca))
catalystm.mmc <-
glht.mmc(catalystm1.aov, linfct = mcp(catalyst = "Tukey"))
## the contrasts have been ordered by height (see ?MMC),
## which in this example corresponds to sort.order=c(1,2,4,3,5,6),
multicomp.reverse 63
catalystm.mmc <-
multicomp.mmc(catalystm1.aov, method="Tukey", plot=FALSE)
## the contrasts have been ordered by height (see ?MMC),
## which in this example corresponds to sort.order=c(1,2,4,3,5,6),
## and reversed, to make the contrast Estimates positive.
print(catalystm.mmc$mca)
})
multicomp.reverse Force all comparisons in a "multicomp" object to have the same sign.
Description
Force all comparisons in a "multicomp" object to have the same sign. If the contrast "A-B" has
a negative estimate, reverse it show the contrast "B-A" with a positive estimate.
Usage
multicomp.reverse(y, estimate.sign = 1, ...)
Arguments
y "multicomp" object
estimate.sign
If estimate.sign==1, reverse the negatives. If estimate.sign==-1,
reverse the positives. Both the names of the comparisons and the numerical
values are reversed. If estimate.sign==0, return the argument.
... other arguments not used.
Value
The result is a "multicomp" object containing the same contrasts as the argument but with the
sign of the contrasts changed as needed.
64 norm.curve
Note
S-Plus use the multicomp functions and R uses the multcomp package.
Author(s)
Richard M. Heiberger <rmh@temple.edu>
References
Heiberger, Richard M. and Holland, Burt (2004b). Statistical Analysis and Data Display: An Inter-
mediate Course with Examples in S-Plus, R, and SAS. Springer Texts in Statistics. Springer. ISBN
0-387-40270-5.
Heiberger, R. M. and Holland, B. (2006). "Mean–mean multiple comparison displays for families
of linear contrasts." Journal of Computational and Graphical Statistics, 15:937–955.
See Also
MMC, multicomp.order
Examples
## see example in multicomp.order
Description
Plot a normal curve or a t-curve with both x (with mean and se as specified) and z or t (mean=0,
se=1) axes. Shade a region for rejection region, acceptance region, confidence interval. The density
axis is marked in units appropriate for the z or t axis. The existence of any of the arguments
se, sd, n forces dual x and (z or t) scales. When none of these arguments are used, the main
title defaults to "Standard Normal Density N(0,1)" and only the z scale is printed. A
second density curve, appropriate for an alternative hypothesis is displayed when the argument
axis.name="z1" is specified. The shaded area is printed on the plot.
When the optional argument df.t is specified, then a t-distribution with df.t degrees of freedom
is plotted.
norm.observed plots a vertical line with arrowhead markers at the location of the observed xbar.
Usage
norm.setup(xlim.in=c(-2.5,2.5),
ylim.in = c(0, 0.4)/se,
mean=0,
main.in=main.calc,
se=sd/sqrt(n), sd=1, n=1,
norm.curve 65
df.t=NULL,
...)
norm.curve(mean=0, se=sd/sqrt(n),
critical.values=mean + se*c(-1, 1)*z.975,
z=do.call("seq",
as.list(c((par()$usr[1:2]-mean)/se, length=109))),
shade, col=par("col"),
axis.name=ifelse(is.null(df.t) || df.t == Inf, "z", "t"),
second.axis.label.line=3,
sd=1, n=1,
df.t=NULL,
...)
Arguments
xlim.in, ylim.in
xlim, ylim. Defaults to correct values for standard Normal(0,1). User must
set values for other mean and standard error.
mean Mean of the normal distribution in xbar-scale, used in calls to dnorm.
se standard error of the normal distribution in xbar-scale, used in calls to dnorm.
sd, n standard deviation and sample size of the normal distribution in x-scale. These
may be used as an alternate way of specifying the standard error se.
df.t Degrees of freedom for the t distribution. When df.t is NULL, the normal
distribution is used.
critical.values
Critical values in xbar-scale. A scalar value implies a one-sided test. A vector
of two values implies a two-sided test.
main.in Main title. Default value is: if (is.null(df.t)) ## normal ifelse(!(missing(se)
&& missing(sd) && missing(n)), paste("normal density:
se =", round(se,3)), "Standard Normal Density N(0,1)")
else { ## t distribution if (length(df.t) != 1) stop("df.t
must have length 1") ifelse(!(missing(se) && missing(sd)
&& missing(n)), paste("t density: se = ", round(se,3),
", df = ", df.t, sep=""), paste("t density, df =", df.t))
}
z z-values (standardized to N(0,1)) used as base of plot.
shade Valid values for shade are "right", "left", "inside", "outside", "none". Default is
"right" for one-sided critical.values and "outside" for two-sided critical values.
col color of the shaded region and the area of the shaded region.
axis.name defaults to "z" for the standard normal scale centered on the null hypothesis
value of the mean or to "t" for the t distribution with df.t degrees of freedom.
For alternative hypotheses, the user must specify either "z1" or "t1" for the
standard normal scale, or t distibution with df.t degrees of freedom, centered
on the alternate hypothesis value of the mean.
66 norm.curve
second.axis.label.line
Defaults to 3. Normally not needed. When two curves are drawn, one normal
and one t, then the second curve needs a different label for the y-axis. Set this
value to 4 to avoid overprinting.
xbar xbar-value of the observed data.
t.xbar t-value of the observed data under the null hypothesis.
... Other arguments which are ignored.
Author(s)
Richard M. Heiberger <rmh@temple.edu>
Examples
old.par <- par(oma=c(4,0,2,5), mar=c(7,7,4,2)+.1)
norm.setup()
norm.curve()
norm.setup(xlim=c(-3, 6))
norm.curve(crit=1.645, mean=1.645+1.281552, col='green',
shade="left", axis.name="z1")
norm.curve(crit=1.645, col='red')
par(mfrow=c(2,1))
norm.setup()
norm.curve()
mtext("norm.setup(); norm.curve()", side=1, line=5)
norm.setup(n=1)
norm.curve(n=1)
mtext("norm.setup(n=1); norm.curve(n=1)", side=1, line=5)
par(mfrow=c(1,1))
norm.curve 67
par(mfrow=c(2,2))
## naively scaled,
## areas under the curve are numerically the same but visually different
norm.setup(n=1)
norm.curve(n=1)
norm.observed(1.2, 1.2/(1/sqrt(1)))
norm.setup(n=2)
norm.curve(n=2)
norm.observed(1.2, 1.2/(1/sqrt(2)))
norm.setup(n=4)
norm.curve(n=4)
norm.observed(1.2, 1.2/(1/sqrt(4)))
norm.setup(n=10)
norm.curve(n=10)
norm.observed(1.2, 1.2/(1/sqrt(10)))
mtext("areas under the curve are numerically the same but visually different",
side=3, outer=TRUE)
## scaled so all areas under the curve are numerically and visually the same
norm.setup(n=1, ylim=c(0,1.3))
norm.curve(n=1)
norm.observed(1.2, 1.2/(1/sqrt(1)))
norm.setup(n=2, ylim=c(0,1.3))
norm.curve(n=2)
norm.observed(1.2, 1.2/(1/sqrt(2)))
norm.setup(n=4, ylim=c(0,1.3))
norm.curve(n=4)
norm.observed(1.2, 1.2/(1/sqrt(4)))
norm.setup(n=10, ylim=c(0,1.3))
norm.curve(n=10)
norm.observed(1.2, 1.2/(1/sqrt(10)))
mtext("all areas under the curve are numerically and visually the same",
side=3, outer=TRUE)
par(mfrow=c(1,1))
## t distribution
mu.H0 <- 16
se.val <- .4
df.val <- 10
crit.val <- mu.H0 - qt(.95, df.val) * se.val
mu.alt <- 15
obs.mean <- 14.8
## normal
norm.setup(xlim=c(12, 19), se=se.val)
norm.curve(crit=crit.val, se=se.val, mean=mu.alt,
col='green', shade="left", axis.name="z1")
norm.curve(crit=crit.val, se=se.val, mean=mu.H0,
col='gray', shade="right")
norm.observed(obs.mean, (obs.mean-mu.H0)/se.val)
## normal and t
norm.setup(xlim=c(12, 19), se=se.val, main="t(6) and normal")
norm.curve(crit=15.5, se=se.val, mean=16.3,
col='gray', shade="right")
norm.curve(crit=15.5, se.val, df.t=6, mean=14.7,
col='green', shade="left", axis.name="t1", second.axis.label.line=4)
norm.curve(crit=15.5, se=se.val, mean=16.3,
col='gray', shade="none")
par(old.par)
Description
Count the number of parameters in an ARIMA model specification. When arima==FALSE, just
the AR and MA parameters are counted. When arima==TRUE, then the number of difference
parameters are also included.
Usage
npar.arma(x, arima=FALSE)
npar.sarma(model, arima=FALSE)
npar.rarma(arma, arima=FALSE)
Arguments
x An "arima" object in S-Plus or a "Arima" object in R.
model A model specification in the S-Plus style.
objip 69
Value
A scalar number giving the count.
Author(s)
Richard M. Heiberger (rmh@temple.edu)
Examples
co2.arima <-
if.R(s=
arima.mle(co2, list(list(order=c(0,1,1)),
list(order=c(0,1,1), period=12)))
,r=
arima(co2,
order=c(0,1,1),
seasonal=list(order=c(0,1,1), period=12))
)
npar.arma(co2.arima)
npar.arma(co2.arima, arima=TRUE)
npar.sarma(list(list(order=c(0,1,1)),
list(order=c(0,1,1), period=12)))
npar.sarma(list(list(order=c(0,1,1)),
list(order=c(0,1,1), period=12)),
arima=TRUE)
if.R(s={},
r=npar.rarma(co2.arima$arma)
)
if.R(s={},
r=npar.rarma(co2.arima$arma,
arima=TRUE)
)
Description
Loop objects() through all attached directories (items in the search() list) looking for a
regular expression pattern.
70 odds.ratio
Usage
objip(pattern, where = search(), frame=NULL)
Arguments
pattern Character string containing a regular expression that is used to list only a subset
of the objects. Only names matching ’pattern’ are returned.
where an object defining a database in the search list.
frame In S-Plus, an integer giving the frame number. In R, frame is ignored.
Value
A list of 0 or more character vectors. Each character vector has the name of one of the items
in the search() list. Each character vector contains the names of the objects in the specified
environment which match the pattern. If there are no matching names in an environment, then
the corresponding character vector is removed from the result.
Author(s)
Richard M. Heiberger <rmh@temple.edu>
See Also
objects in R, objects in S-Plus.
Examples
objip("qq")
objip("^qq")
objip("qq$")
odds.ratio Calculate or plot the odds ratio for a 2x2 table of counts.
Description
Calculate or plot the odds ratio for a 2x2 table of counts. The plot shows the confidence intervals
on the probability of row2 for fixed odds ratio and specified probability for row1.
Usage
odds.ratio(x, alpha = 0.05)
plot.odds.ratio(x,
ylab = "prob(col1 | row1)", xlab = "prob(col1 | row2)",
alpha = c(0.05, 0.5),
legend.x=1.05,
oma=c(0,0,0,5), ...)
odds.ratio 71
Arguments
x 2 x 2 table of counts
alpha Significance levels of test. odds.ratio requires a single number in the range
[0,1]. plot.odds.ratio accepts more than one number on the range [0,1]
and draws confidence lines at each value.
xlab, ylab x- and y-labels for the plot. Sensible defaults are generated.
... other arguments, currently ignored.
legend.x x position of left-hand side of legend.
oma outer margin par()$oma, needed to make room for legend.
Value
plot.odds.ratio draws a plot and invisibly returns the same list as odds.ratio for the first
value of alpha. odds.ratio returns the list:
Author(s)
References
Heiberger, Richard M. and Holland, Burt (2004b). Statistical Analysis and Data Display: An Inter-
mediate Course with Examples in S-Plus, R, and SAS. Springer Texts in Statistics. Springer. ISBN
0-387-40270-5.
72 orthog.complete
Examples
glasses <- read.table(hh("datasets/glasses.dat"), header=FALSE)
## draw the iso-odds ratio plot with 50% CI and 95% CI,
## invisibly return the 95% CI
plot.odds.ratio(glasses)
Description
Usage
orthog.complete(x, normalize=TRUE, abs2.rows=1:nrow(x),
Int=TRUE, drop.Int=Int)
Arguments
x For orthog.complete, an n-row matrix of one or more columns. For orthog.construct,
a set of contrasts for a factor.
y matrix of coefficients specifying the linear combinations estimated. This will
usually be the lmat from an S-Plus "multicomp" object or the linfct
component from an R "glht" object.
normalize, abs2.rows, x.rows
The default normalizes the sum of squares of the rows in abs2.rows or x.rows
to 1. The optional value normalize="abs2" scales the rows in abs2.rows
or x.rows to make the sum of all positive value equal 1 and the sum of all neg-
ative values equal -1. Together, the sum of the absolute values ofthe specified
rows in each column is 2.
Int logical. Default TRUE means make all columns orthogonal to the constant col-
umn (Intercept in regression terminology). The alternative is to use only the
columns in the input matrix x.
drop.Int logical. The default is to drop the constant column and to keep all columns when
the constant is not automatically generated.
orthog.complete 73
Details
This function is based on qr.Q. The input matrix x has n rows and an arbitrary non-zero number
of columns. The result is an n by n orthogonal matrix. By default the first column of the result
is constant and is not returned. The second column of the result is orthogonal to the first result
column. Together the first two result columns span the space of the constant column and the first
input column. The third result column is orthogonal to the first two result columns and the the
three result columns together span the space of the constant column and the first two inout columns.
Similarly for the remaining result columns. Result columns beyond the number of input columns
are constructed as an arbitrary orthogonal completion.
If the input columns are orthogonal to each other and to the constant column, then the result columns
are rescaled versions of the input columns.
Optionally (drop.Int=FALSE), the constant column can be returned.
By default the columns are scaled to have sum of squares equal 1. If normalize="abs2", they
are scaled to make the sum of all positive value equal 1 and the sum of all negative values equal -1.
Together, the sum of the absolute values of each column is 2.
If the input is a set of columns from a contrast matrix for a design that has multiple terms, the
abs2.rows argument is used to specify which rows are to be included in the normalization. These
will normally be rows associated with one of the main effects.
Value
Matrix of orthogonal columns.
Author(s)
Richard M. Heiberger <rmh@temple.edu>
References
Heiberger, Richard M. and Holland, Burt (2004b). Statistical Analysis and Data Display: An Inter-
mediate Course with Examples in S-Plus, R, and SAS. Springer Texts in Statistics. Springer. ISBN
0-387-40270-5.
See Also
MMC
Examples
zapsmall(
orthog.complete(cbind("4-12"=c(-1,-1, 0, 2),
"1-2" =c( 1,-1, 0, 0)))
)
zapsmall(
orthog.complete(cbind("4-12"=c(-1,-1, 0, 2),
"1-2" =c( 1,-1, 0, 0)),
drop.Int=FALSE)
)
74 panel.acf
zapsmall(
orthog.complete(cbind("4-12"=c(-1,-1, 0, 2),
"1-2" =c( 1,-1, 0, 0)),
normalize="abs2")
)
Description
Panel functions for tsdiagplot.
Usage
panel.acf(..., n.used)
panel.std.resid(...)
panel.gof(...)
Arguments
... standard arguments to panel functions.
n.used number of lags. THis number is needed to calculate the confidence interval
which is 2//sqrt(n.used).
Author(s)
Richard M. Heiberger (rmh@temple.edu)
panel.bwplot.intermediate.hh 75
See Also
tsdiagplot
panel.bwplot.intermediate.hh
Panel functions for bwplot.
Description
Panel function for bwplot that give the user control over the placement of the boxes.
Usage
panel.bwplot.intermediate.hh(x, y, horizontal = TRUE,
transpose=!horizontal,
pch, col,
at=if (horizontal) levels(as.factor(y)) else levels(as.factor(x)), ## S-
...)
Arguments
x, y, pch, col, horizontal
transpose S-Plus only. The HH library transposes "trellis" bwplot objects to put
the response variable on the vertical axis. R does the equivalent by placing
the response variable on the left side of the "~" in the formula and with the
horizontal argument.
at S-Plus only. bwplot in S-Plus gets x and y as numeric. level and position
information is not sent through, therefore we need to specify it here when non-
default positions are used.
... Extra arguments, if any, for ’panel.bwplot’.
Author(s)
Richard M. Heiberger <rmh@temple.edu>
References
Heiberger, Richard M. and Holland, Burt (2004b). Statistical Analysis and Data Display: An Inter-
mediate Course with Examples in S-Plus, R, and SAS. Springer Texts in Statistics. Springer. ISBN
0-387-40270-5.
See Also
panel.xyplot, bwplot, interaction2wt
76 panel.bwplott
Description
Extension to S-Plus trellis to allow transposed plots. All x - and y-components of the trellis ob-
ject are interchanged. This function is not needed in R as lattice has a horizontal argument in its
definitions.
Usage
panel.bwplott(x, y, box.ratio = 1,
font = box.dot$font, pch = box.dot$pch, cex = box.dot$cex,
col = box.dot$col, ..., transpose=FALSE)
Arguments
x, y, box.ratio, font, pch, cex, col, ...
See panel.bwplot in S-Plus or panel.bwplot in R.
transpose logical. If FALSE, the plot is printed in the default orientation. If TRUE, the
x- and y-components of the trellis object are interchanged. This has the effect,
for example, of displaying vertical boxplots instead of the default horizontal
boxplots.
Value
The function is used for its side effect of drawing boxplots in a trellis panel.
Note
This function is not needed in R. If it is used and
Author(s)
Richard M. Heiberger <rmh@temple.edu>
See Also
bwplot in S-Plus or bwplot in R.
Examples
panel.cartesian 77
panel.cartesian trellis panel function, with labeled rows and columns and without strip
labels.
Description
trellis panel function, with labeled rows and columns and without strip labels. Designed for use
with the ladder of powers plot.
Usage
panel.cartesian(x, y,
x.label=unique(panel.labels[,"x"]),
y.label=unique(panel.labels[,"y"]),
group.label.side="",
axis3.line=1,
xg.label, yg.label, g.cex=.7,
rescale=list(x=TRUE,y=TRUE), ...,
browser.on=FALSE)
Arguments
References
Heiberger, Richard M. and Holland, Burt (2004b). Statistical Analysis and Data Display: An Inter-
mediate Course with Examples in S-Plus, R, and SAS. Springer Texts in Statistics. Springer. ISBN
0-387-40270-5.
See Also
ladder, xysplom
Examples
layout=c(2,2),
xlab="", ylab="",
x.label="", y.label="",
group.label.side="",
par.strip.text=list(cex=1.2),
panel=panel.cartesian,
axis3.line=3.6,
scales=list(
relation="free",
alternating=FALSE, labels=FALSE, ticks=FALSE),
between=list(x=1, y=3))
Description
This is the default panel function for ci.plot.
Usage
panel.ci.plot(x, y, newdata, newfit = newfit, ...)
Arguments
x Observed values of predictor variable.
y Observed values of response variable.
newdata x values for which predictions are calculated.
newfit data.frame containing six components: "fit", "se.fit", "residual.scale",
"df", "ci.fit", "pi.fit". In S-Plus these are the output from the predict.lm
function. In R they are a rearrangement of the output of the predict.lm func-
tion.
... other arguments passed to panel.xyplot.
Author(s)
Richard M. Heiberger <rmh@temple.edu>
80 panel.dotplot.tb
See Also
ci.plot, xyplot, lm
Description
Dotplot with evenly spaced tiebreakers. Multiple hits on a specific x value are stacked.
Usage
panel.dotplot.tb(x, y, factor=.1,
jitter.data=TRUE, horizontal=TRUE,
max.freq=max(sapply(subsets, length)),
...)
Arguments
x, y See dotplot.
factor jitter factor, see stripplot. Increment is factor/max.freq where max.freq
is the maximum number of duplicates of any x value in any y group.
jitter.data, horizontal
Always TRUE.
max.freq maximum number of observation at any combination of response values, fac-
tor levels, and group levels. If the formula includes one or more conditioning
factors, then the user is responsible for providing a value for max.freq.
... Other arguments for dotplot.
Details
Creates (possibly grouped) Dotplot of x against y. y is the ‘factor’.
Warning
If the formula includes one or more conditioning factors, then the user is responsible for providing a
value for max.freq. The default behavior is a different max.freq for each panel in a multi-panel
display.
Author(s)
Richard M. Heiberger
Maintainer: Richard M. Heiberger <rmh@temple.edu>
panel.interaction2wt 81
Examples
x <- c(1,1,2,2,2,5,4,2,1,5)
y <- factor(letters[rep(1:2, 5)])
dotplot(x, panel=panel.dotplot.tb)
dotplot(x, panel=panel.dotplot.tb, factor=.2)
dotplot(y ~ x, panel=panel.dotplot.tb)
dotplot(y ~ x, panel=panel.dotplot.tb, cex=1.5, factor=.15)
print(split=c(1,1,2,1), more=TRUE,
dotplot( a ~ z | g, panel=panel.dotplot.tb,
factor=.6, cex=1.5, layout=c(2,1),
main="different scaling in each panel")
)
print(split=c(2,1,2,1), more=FALSE,
dotplot( a ~ z | g, panel=panel.dotplot.tb, max.freq=3,
factor=.6, cex=1.5, layout=c(2,1),
main="same scaling in each panel")
)
panel.interaction2wt
Plot all main effects and twoway interactions in a multifactor design
82 panel.interaction2wt
Description
This is the panel function for interaction2wt. The main diagonal displays boxplots for the
main effects of each factor. The off-diagonals show the interaction plots for each pair of factors. The
i,j panel shows the same factors as the j,i but with the trace- and x-factor roles interchanged.
Usage
panel.interaction2wt(x, y, subscripts,
responselab, trace.values,
factor.levels, factor.position,
fun = mean,
se,
...,
box.ratio,
simple=FALSE,
simple.offset,
simple.scale,
data.x,
col.by.row=TRUE,
key.in=NULL)
Arguments
panel.interaction2wt arguments:
x levels of x-factor
y Summary value of response variable at each level of x- and trace-factors.
subscripts used to get the right set of response values for the summary statistics on the
off-diagonals
responselab Character name of response variable, defaults to the name of the response vari-
able.
trace.values levels of trace-factor
fun Summary function, defaults to mean
se standard errors to be passed to panel.intxplot. se Missing, logical, or a
numeric vector. If missing or FALSE, standard errors are not plotted. If TRUE,
the standard errors are calculated from the sufficient statistics for each group as
the groups standard deviation divided by the square root of the group observation
count. If a numeric vector, it is evaluated in the environment of the sufficient
statistics.
box.ratio passed to panel.bwplot.intermediate.hh
... extra arguments, primarily color, to be passed to panel.bwplot.intermediate.hh
panel.pairs.hh 83
key.in arguments to be passed through to the key for the trace-factor in each row of
the display.
factor.position
"position" attribute of factor.
simple logical. TRUE if simple effects are to be displayed.
simple.offset, simple.scale
named list of offset and scale for the response and trace factors. See interaction.positioned
for their use.
data.x data.frame containing factors from the input data.frame
col.by.row logical. If TRUE (the default), simple effects plots color the simple effects on
the main diagonals in the same color as the trace levels in their row. If FALSE,
then simple effects are colored to match the x levels in their column.
which.given, which.panel, var.name, factor.levels, shingle.intervals
see documentation for strip.default
strip.names Force strip.names=TRUE
style force style=1
Author(s)
Richard M. Heiberger <rmh@temple.edu>
References
Heiberger, Richard M. and Holland, Burt (2004b). Statistical Analysis and Data Display: An Inter-
mediate Course with Examples in S-Plus, R, and SAS. Springer Texts in Statistics. Springer. ISBN
0-387-40270-5.
See Also
interaction2wt, panel.bwplot.intermediate.hh
Description
Function based on S-Plus panel.pairs to add the subpanel.scales and panel.cex ar-
guments. In R, this is an alias for panel.pairs.
Usage
panel.pairs.hh(x, y, z, subscripts, pscales, subpanel = panel.splom,
varnames = dimnames(x)[[2]], ...,
subpanel.scales, panel.cex=par()$cex)
84 panel.xysplom
Arguments
x, y, z, subscripts, pscales, subpanel, varnames, ...
See splom in S-Plus.
subpanel.scales
Controls the size of the tick labels in the diagonal panel.
panel.cex Controls the size of the variable names in the diagonal panel.
Value
"trellis" object.
Author(s)
Richard M. Heiberger <rmh@temple.edu>
See Also
splom in S-Plus.
Examples
if.R(s={
longley <- data.frame(longley.x, Employed = longley.y)
},r={
data(longley)
})
if.R(s=
splom( ~ longley, pch=16, cex=.55,
superpanel=panel.pairs.hh, subpanel.scales=list(cex=.8),
pscales=2,
panel.cex=.8)
,r=
splom( ~ longley, pch=16,
pscales=2,
varname.cex=.8,
axis.text.cex=.5)
)
Description
panel method for xysplom. It has a corr argument that is removed before sending the information
on to panel.xyplot.
partial.corr 85
Usage
panel.xysplom(corr, ...)
Arguments
corr logical. If TRUE, display the correlation and/or the regression coefficient for
lm(y ~ x) for each panel in an additional strip label.
... Remaining arguments to panel.xyplot.
Author(s)
See Also
xysplom
Description
The partial correlation of x and y conditioning on z is the ordinary correlation of the residuals from
the regression of x on z and the regression of y on z.
Usage
partial.corr(vars, cond)
Arguments
Value
matrix of partial correlations of the numeric variables in the argument vars conditioning on the
numeric variables in cond.
Author(s)
Examples
if.R(r=
partial.corr(longley[,1:3], longley[,4:6])
,s=
partial.corr(longley.x[,1:3], longley.x[,4:6])
)
Description
Oneway analysis of variance makes the assumption that the variances of the groups are equal.
Brown and Forsyth, 1974 present the recommended test of this assumption. The Brown and Forsyth
test statistic is the F statistic resulting from an ordinary one-way analysis of variance on the absolute
deviations from the median. The plot.hov function graphs the components of the Brown and
Forsyth test statistic.
Usage
plot.hov(x, data = sys.parent(), method = "bf", ## x is a formula
transpose.in = TRUE, ...)
## users will normally use the formula above and will not call the
## method directly.
plot.hov.bf(x, group, ## x is the response variable
y.name = deparse(substitute(x)),
group.name = deparse(substitute(group)),
transpose.in = TRUE, ...)
## users will normally use the formula above and will not call the
## panel function directly.
panel.hov(..., transpose = TRUE)
Arguments
x Formula appropriate for oneway anova in plot.hov. Response variable in
plot.hov.bf.
data data.frame
method Character string defining method. At this time the only recognized method is
"bf" for the Brown-Forsyth method.
transpose.in, transpose
Always TRUE in R. Normally TRUE in S-Plus to force vertical boxplots.
group factor.
y.name name of response variable, defaults to variable name in formula.
group.name name of factor, defaults to variable name in formula.
... additional arguments.
plot.mmc.multicomp 87
Value
"trellis" object with three panels containing boxplots for each group: The observed data "y",
the data with the median subtracted "y-med(y)", and the absolute deviations from the median
"abs(y-med(y))" The Brown and Forsyth test statistic is the F statistic resulting from an ordi-
nary one-way analysis of variance on the data points in the third panel.
Author(s)
Richard M. Heiberger <rmh@temple.edu>
References
Heiberger, Richard M. and Holland, Burt (2004b). Statistical Analysis and Data Display: An Inter-
mediate Course with Examples in S-Plus, R, and SAS. Springer Texts in Statistics. Springer. ISBN
0-387-40270-5.
Brown, M. B. and Forsyth, A. B. (1974). Robust tests for equality of variances. Journal of the
American Statistical Association, 69:364–367.
See Also
aov, hov
Examples
turkey <- read.table(hh("datasets/turkey.dat"), header=FALSE)
names(turkey) <- c("diet","wt.gain")
turkey$diet <- factor(turkey$diet,
labels=c("control","A1","A2","B1","B2"))
Description
MMC (Mean–mean Multiple Comparisons) plot.
Usage
## S3 method for class 'mmc.multicomp':
plot(x,
xlab="contrast value",
ylab=none$ylabel,
focus=none$focus,
main= main.method.phrase,
88 plot.mmc.multicomp
main2=main2.method.phrase,
main.method.phrase=
paste("multiple comparisons of means of", ylab),
main2.method.phrase=paste("simultaneous ",
100*(1-none$alpha),"% confidence limits, ",
method, " method", sep="" ),
ry.mmc=TRUE,
key.x=par()$usr[1]+ diff(par()$usr[1:2])/20,
key.y=par()$usr[3]+ diff(par()$usr[3:4])/3,
method=if (is.null(mca)) lmat$method else mca$method,
print.lmat=(!is.null(lmat)),
print.mca=(!is.null(mca) && (!print.lmat)),
iso.name=TRUE,
x.offset=0,
col.mca.signif="red", col.mca.not.signif="black",
lty.mca.signif=1, lty.mca.not.signif=6,
lwd.mca.signif=1, lwd.mca.not.signif=1,
col.lmat.signif="blue", col.lmat.not.signif="black",
lty.lmat.signif=1, lty.lmat.not.signif=6,
lwd.lmat.signif=1, lwd.lmat.not.signif=1,
lty.iso=7, col.iso="darkgray", lwd.iso=1,
lty.contr0=2, col.contr0="darkgray", lwd.contr0=1,
decdigits.ybar=2,
...
)
Arguments
x mmc.multicomp object
xlab "contrast value". An alternate "" can help unclutter a figure when sev-
eral MMC plots are displayed together.
ylab name of response variable
focus define the factor to compute contrasts of.
main, main2 main and second line of title of plot
main.method.phrase, main2.method.phrase
ry.mmc range of values on the y-axis. It is similar to par("ylim"), but not the same
as additional calculations are needed to maintain the isomeans grid as a square.
key.x, key.y location of the key displayed when iso.name=FALSE.
method method used to construct contrasts and confidence intervals. See the type ar-
gument to glht for the list.
print.lmat logical. If TRUE, then display the user-specified contrasts.
print.mca logical. If TRUE, then display the pair-wise contrasts.
iso.name logical. If TRUE, label the isomeans grid with the factor levels. If FALSE,
label the isomeans grid with sequential numbers and display a key relating the
numbers to the factor levels.
plot.mmc.multicomp 89
x.offset amount to move the vertical 0 line to the left or right to reduce overprinting of
labels and plotted lines.
col.mca.signif, lty.mca.signif, lwd.mca.signif
Note
plot.mmc.multicomp chooses sensible defaults for its many arguments. They will often need
manual adjustment. The examples show several types of adjustments. We have changed the center-
ing and scaling to avoid overprinting of label information. By default the significant contrasts are
shown in a more intense color than the nonsignificant contrasts. We have an option to reduce the
color intensity of the isomeans grid.
When there is overprinting of labels (a consequence of level means being close together), a tiebreaker
plot may be needed. See ?MMC for an example.
Author(s)
Richard M. Heiberger <rmh@temple.edu>
References
Heiberger, Richard M. and Holland, Burt (2004b). Statistical Analysis and Data Display: An Inter-
mediate Course with Examples in S-Plus, R, and SAS. Springer Texts in Statistics. Springer. ISBN
0-387-40270-5.
Heiberger, R. M. and Holland, B. (2006). "Mean–mean multiple comparison displays for families
of linear contrasts." Journal of Computational and Graphical Statistics, 15:937–955.
Hsu, J. and Peruggia, M. (1994). "Graphical representations of Tukey’s multiple comparison
method." Journal of Computational and Graphical Statistics, 3:143–161.
See Also
mmc
90 plot.mmc.multicomp
Examples
if.R(r=
options(oldcon)
,s={})
catalystm.mca <-
if.R(r=glht(catalystm1.aov, linfct = mcp(catalyst = "Tukey")),
s=multicomp(catalystm1.aov, plot=F))
catalystm.mmc <-
if.R(r=glht.mmc(catalystm1.aov, linfct = mcp(catalyst = "Tukey"),
lmat=catalystm.lmat)
,s=multicomp.mmc(catalystm1.aov, lmat=catalystm.lmat,
plot=FALSE)
)
## user-specified contrasts
plot(catalystm.mmc, x.offset=1.6, ry.mmc=c(50,58),
col.lmat.signif='blue')
col.lmat.signif='blue')
par(old.mar)
plot.multicomp Multiple comparisons plot that gives independent user control over the
appearance of the significant and not significant comparisons.
Description
Multiple comparisons plot that gives independent user control over the appearance of the significant
and not significant comparisons. In R, both plot.multicomp plot.multicomp.hh coerce
their argument to an "glht" object and plots that with the appropriate plot method. In S-
Plus, plot.multicomp.hh augments the standard plot.multicomp to give additional user
arguments to control the appearance of the plot.
Usage
## S3 method for class 'multicomp':
plot(x, ...) ## R only
Arguments
x A "multicomp" object.
ylabel Y label on graph.
... other arguments to plot.multicomp.
href reference line for the intervals. The default is 0. S-Plus only.
xrange.include
xlim will be extended to include these values. S-Plus only.
92 plot.multicomp
uniform S-Plus only. Logical value, if TRUE and the plots fill more than one page, the
scale will be uniform across pages.
plt.in S-Plus only. Value for par("plt") to make better use of the space on the
plotting page.
x.label.adj S-Plus only. This is the par("adj") applied to the x-location of the y.labels
on the multicomp plot.
xlim x-range of the plot.
comparisons.per.page
The default S-Plus plot.multicomp hardwires this to 21, which allows for
all pairwise comparisons of 7 levels taken 2 at a time. The HH plot.multicomp
makes it a variable. Use it together with plt.in to make better use of the space
on the plot. S-Plus only.
col.signif, lty.signif, lwd.signif
Color, line type, and line width for significant comparisons. S-Plus only.
col.not.signif, lty.not.signif, lwd.not.signif
Color, line type, and line width for non-significant comparisons. S-Plus only.
xlabel.print logical. When TRUE, the caption under the plot is printed. When FALSE, the
caption under the plot is not printed. It is helpful to set this to FALSE when the
multicomp plot is used as a tiebreaker plot for the MMC plot. S-Plus only.
Value
plot.multicomp plots a "multicomp" object. In S-Plus, this masks the standard plot.multicomp
in order to provide additional arguments for controlling the appearance. It defaults to the standard
appearance. In R, it coerces its argument to an "glht" object and plots that with the appropriate
plot method.
Note
The multiple comparisons calculations in R and S-Plus use completely different libraries. Multiple
comparisons in R are based on glht. Multiple comparisons in S-Plus are based on multicomp.
The MMC plot in the HH library is the same in both systems. The details of getting the plot differ.
Author(s)
Richard M. Heiberger <rmh@temple.edu>
References
Heiberger, Richard M. and Holland, Burt (2004b). Statistical Analysis and Data Display: An Inter-
mediate Course with Examples in S-Plus, R, and SAS. Springer Texts in Statistics. Springer. ISBN
0-387-40270-5.
Heiberger, R. M. and Holland, B. (2006). "Mean–mean multiple comparison displays for families
of linear contrasts." Journal of Computational and Graphical Statistics, 15:937–955.
See Also
mmc in both languages, glht in R, multicomp in S-Plus.
position 93
Examples
## data and ANOVA
catalystm <- read.table(hh("datasets/catalystm.dat"), header=FALSE,
col.names=c("catalyst","concent"))
catalystm$catalyst <- factor(catalystm$catalyst, labels=c("A","B","C","D"))
catalystm.mca <-
if.R(r=glht(catalystm1.aov, linfct = mcp(catalyst = "Tukey")),
s=multicomp(catalystm1.aov, plot=FALSE))
if.R(s=plot(catalystm.mca),
r=plot(confint(catalystm.mca, calpha=qtukey(.95, 4, 12)/sqrt(2))))
## calpha is strongly recommended in R with a large number of levels
## See ?MMC for details.
position Find or assign the implied position for graphing the levels of a factor.
A new class "positioned", which inherits from "ordered" and "factor",
is defined.
Description
The default values for plotting a factor x are the integers 1:length(levels(x)). These func-
tions provide a way of specifying alternate plotting locations for the levels.
Usage
position(x)
Arguments
x numeric vector or factor
value numerical values to be associated with levels(x). The length(value)
must equal length(levels(as.factor(x))).
... other arguments.
drop See "["in R or "[" in S-Plus.
incomparables
See uniquein R or unique in S-Plus.
Value
position(x) <- value first forces its argument to be an ordered factor and then assigns
the value to the "position" attribute of the ordered factor. The result is assigned class
"positioned" and returned.
position(x) returns the position values associated with levels(x). If x is a positioned
factor, then the "postion" attribute is returned. If x is a factor, or an ordered factor whose levels
cannot be coerced to numeric, then the integers 1:length(levels(x)) are returned. If x is an
an ordered factor whose levels can be coerced to numeric, then the numeric values corresponding
to the levels are returned. If x is numeric, then x itself is returned.
as.numeric.positioned(x) returns a numeric vector the length of the original vector. If
x inherits from "factor", then the values in the vector are the values in position(x) sub-
scripted by the levels of the factor. If x is numeric, then x itself is returned.
unpositioned(x) removes the "position" attribute and removes the "positioned"
value from the the oldClass of the object.
Author(s)
Richard M. Heiberger <rmh@temple.edu>
See Also
panel.interaction2wt, factor in R, factor in S-Plus.
Examples
## ordered with character levels defaults to
## integer position of specified levels
tmp <- ordered(c("mm","cm","m","m","mm","cm"),
levels=c("mm","cm","m")) ## size order
tmp
as.numeric(tmp)
levels(tmp)
position(tmp)
as.numeric(tmp)
levels(tmp)
position(tmp) <- c(-3, -2, 0) ## log10 assigned in size order
tmp
as.numeric(tmp)
levels(tmp)
position(tmp)
as.numeric(tmp)
unpositioned(tmp)
unique(tmp)
if.R(r=
bwplot(Y ~ week, horizontal=FALSE,
96 positioned-class
scales=list(x=list(limits=c(0,9),
at=position(tmp$week),
labels=position(tmp$week))),
data=tmp, panel=panel.bwplot.intermediate.hh)
,s=
t(bwplot(week ~ Y, at=position(tmp$week),
scales=list(y=list(limits=c(0,9),
at=position(tmp$week), labels=position(tmp$week))),
data=tmp, panel=panel.bwplot.intermediate.hh))
)
#### You probably don't want to use the next two examples.
#### You need to be aware of their behavior.
##
## factor with character levels defaults to
## integer position of sorted levels.
## you probably DON'T want to do this!
tmp <- factor(c("cm","mm","m","m","mm","cm")) ## default alphabetic order
tmp
as.numeric(tmp)
levels(tmp) ## you probably DON'T want to do this!
position(tmp) ## you probably DON'T want to do this!
as.numeric(tmp)
##
## position is assigned to factor in default alphabetic order.
## you probably DON'T want to do this!
tmp <- factor(c("cm","mm","m","m","mm","cm"))
levels(tmp)
position(tmp) <- c(-3, -2, 0) ## assigned in default alphabetic order
tmp
as.numeric(tmp)
levels(tmp) ## you probably DON'T want to do this!
position(tmp) ## you probably DON'T want to do this!
as.numeric(tmp)
Description
The default values for plotting a factor x are the integers 1:length(levels(x)). This class
and its functions provide a way of specifying alternate plotting locations for the levels.
Extends
Class "ordered", directly. Class "factor", by class "ordered", distance 2. Class "oldClass",
by class "ordered", distance 3.
Methods
No methods defined with class "positioned" in the signature. S3-type methods are "[.positioned",
as.double.positioned, as.numeric.positioned, as.positioned, is.numeric.positioned,
is.positioned, positioned, print.positioned, unique.positioned. Although
interaction.positioned should be a method, it isn’t because interaction is not a
generic and can’t easily be made one since the name interaction.plot conflicts.
Author(s)
Richard M. Heiberger <rmh@temple.edu>
References
Heiberger, Richard M. and Holland, Burt (2004b). Statistical Analysis and Data Display: An Inter-
mediate Course with Examples in S-Plus, R, and SAS. Springer Texts in Statistics. Springer. ISBN
0-387-40270-5.
See Also
position.
Description
Print a "tsdiagplot" object.
Usage
## S3 method for class 'tsdiagplot':
print(x, ...)
print1.tsdiagplot(x)
print2.tsdiagplot(x)
Arguments
x a "tsdiagplot" object
... Optional arguments to print. The only argument that is used is pages.
If pages is not used or pages==1, then use print1.tsdiagplot. If
pages!=1, then use print2.tsdiagplot.
98 push.vp.hh
Details
A "tsdiagplot" object is a collection of several "trellis" objects. We provide two options
for printing them.
Author(s)
Richard M. Heiberger (rmh@temple.edu)
See Also
tsdiagplot
push.vp.hh push and pop a grid viewport, turn clipping off, change scale.
Description
push and pop a grid viewport, turn clipping off, change scale.
Usage
push.vp.hh(scale = 100)
pop.vp.hh()
Arguments
scale argument to the unit function.
Details
Used in panel.cartesian to ease labeling the rows and columns of a scatterplot matrix.
Value
An object of class "unit".
Author(s)
Richard M. Heiberger <rmh@temple.edu>
See Also
viewport, unit, panel.cartesian
regr1.plot 99
regr1.plot plot x and y, with optional straight line fit and display of squared resid-
uals
Description
Plot x and y, with optional fitted line and display of squared residuals. By default the least squares
line is calculated and used. Any other straight line can be specified by placing its coefficients in
coef.model. Any other fitted model can be calculated by specifying the model argument. Any
other function of one variable can be specified in the alt.function argument. At most one of
the arguments model, coef.model, alt.function can be specified.
Usage
regr1.plot(x, y,
model=lm(y~x),
coef.model,
alt.function,
main="put a useful title here",
xlab=deparse(substitute(x)),
ylab=deparse(substitute(y)),
jitter.x=FALSE,
resid.plot=FALSE,
points.yhat=TRUE,
pch=16,
..., length.x.set=51,
x.name,
pch.yhat=16,
cex.yhat=par()$cex*.7,
err=-1)
Arguments
x x variable
y y variable
model Defaults to the simple linear model lm(y ~ x). Any model object with one x
variable, such as the quadratic lm(y ~ x + I(x^2)) can be used.
coef.model Defaults to the coefficients of the model argument. Other intercept and slope
coefficients for a straight line (for example, c(3,5)) can be entered to illustrate
the sense in which they are not "least squares".
alt.function Any function of a single argument can be placed here. For example, alt.function=function(x)
{3 + 2*x + 3*x^2}. All coefficients must be specified.
main, xlab, ylab
arguments to plot.
jitter.x logical. If TRUE, the x is jittered before plotting. Jittering is often helpful when
there are multiple y-values at the same level of x.
100 regr1.plot
resid.plot If FALSE, then do not plot the residuals. If "square", then call resid.squares
to plot the squared residuals. If TRUE (or anything else), then call resid.squares
to plot straight lines for the residuals.
points.yhat logical. If TRUE, the predicted values are plotted.
... other arguments.
length.x.set number of points used to plot the predicted values.
x.name If the model argument used a different name for the independent variable, you
might need to specify it.
pch Plotting character for the observed points.
pch.yhat Plotting character for the fitted points.
cex.yhat cex for the fitted points.
err Thedefault -1 suppresses warnings about out of bound points.
Note
This plot is designed as a pedagogical example for introductory courses. When resid.plot=="square",
then we actually see the set of squares for which the sum of their areas is minimized by the method
of "least squares".
Author(s)
Richard M. Heiberger <rmh@temple.edu>
References
Heiberger, Richard M. and Holland, Burt (2004b). Statistical Analysis and Data Display: An Inter-
mediate Course with Examples in S-Plus, R, and SAS. Springer Texts in Statistics. Springer. ISBN
0-387-40270-5.
Smith, W. and Gonick, L. (1993). The Cartoon Guide to Statistics. HarperCollins.
See Also
resid.squares
Examples
hardness <- read.table(hh("datasets/hardness.dat"), header=TRUE)
par(mfrow=c(1,2))
regr1.plot(hardness$density, hardness$hardness,
resid.plot="square",
resid.squares 101
regr1.plot(hardness$density, hardness$hardness,
model=hardness.quad.lm,
resid.plot="square",
main="squared residuals for quadratic fit",
xlab="density", ylab="hardness",
points.yhat=FALSE,
xlim=c(20,95), ylim=c(0,3400))
par(mfrow=c(1,1))
Description
Usage
Arguments
x x values
y observed y values
y.hat predicted y values
resid.plot If "square", then plot the squared residuals. If TRUE (or anything else), then
plot straight lines for the residuals.
Details
The goal is to get real squares on the screen or paper. The trick is to play games with the aspect
ratio. We find the number of inches that each vertical residual occupies. We then find the number
of x-units that corresponds to, and plot a rectangle with height=height in the y-data units and with
width=the number of x-units that we just calculated.
Author(s)
References
Heiberger, Richard M. and Holland, Burt (2004b). Statistical Analysis and Data Display: An Inter-
mediate Course with Examples in S-Plus, R, and SAS. Springer Texts in Statistics. Springer. ISBN
0-387-40270-5.
See Also
regr1.plot
Examples
hardness <- read.table(hh("datasets/hardness.dat"), header=TRUE)
hardness.lin.lm <- lm(hardness ~ density, data=hardness)
Description
Residual plots for a linear model. Four sets of plots are produced: (1) response against each of
the predictor variables, (2) residuals against each of the predictor variables, (3) partial residuals for
each predictor against that predictor ("partial residuals plots", and (4) partial residuals against the
residuals of each predictor regressed on the other predictors ("added variable plots").
Usage
residual.plots(lm.object, X=dft$x,
layout=c(dim(X)[2],1),
par.strip.text=list(cex=.8),
scales.cex=.6,
na.action=na.pass,
y.relation="free",
...)
residual.plots 103
Arguments
lm.object An object inheriting from "lm". It may be necessary for the lm.object to
be constructed with arguments x=TRUE, y=TRUE.
X The x matrix of predictor variables used in the linear model lm.object.
layout, par.strip.text
trellis or lattice arguments.
scales.cex cex argument forwarded to the scales argument of xyplot.
na.action A function to filter missing data. See lm.
y.relation See relation in the discussion of the scales argument in trellis.args in
S-Plus and in xyplot in R.
... Other arguments for xysplom or xyplot.
Value
A list of four trellis objects, one for each of the four sets of plots. The objects are named "y.X",
"res.X" "pres.X", "pres.Xj". The default "printing" of the result will produce four pages
of plots, one set per page. They are often easier to read when all four sets appear as separate rows
on one page (this usually requires an oversize device), or two rows are printed on each of two pages.
Author(s)
Richard M. Heiberger <rmh@temple.edu>
References
Heiberger, Richard M. and Holland, Burt (2004b). Statistical Analysis and Data Display: An Inter-
mediate Course with Examples in S-Plus, R, and SAS. Springer Texts in Statistics. Springer. ISBN
0-387-40270-5.
Examples
if.R(s={
longley <- data.frame(longley.x, Employed = longley.y)
},r={
data(longley)
})
Description
Time series plot.
Usage
seqplot(xts, ...)
## Default S3 method:
seqplot(xts,
pch.seq=letters,
groups=as.numeric(cycle(xts)),
a=NULL, b=NULL, h=NULL, v=NULL,
ylab=deparse(substitute(xts)),
xlab=ifelse(is.null(units(xts)),"Time",units(xts)),
lwd=0, lty=c(1,3),
type="b",
...)
Arguments
xts Time series
pch.seq sequence of pch characters for use with the time series. The characters repeat
over the cycle of the series.
groups Numeric vector used to choose the plotting characters over cycles.
seqplot.forecast 105
a, b, h, v Arguments to panel.abline.
ylab, xlab, lwd, lty, type
stndard trellis arguments.
x.at, x.labels
shortcut for scales=list(x=list(at=x.at, labels=x.labels))
... Additional arguments to xyplot.
Author(s)
Richard M. Heiberger (rmh@temple.edu)
See Also
tsacfplots
Examples
seqplot(co2)
Description
seqplot with confidence bands for the forecast region.
Usage
seqplot.forecast(xts, forecast, multiplier = 1.96,
series = deparse(substitute(observed)), ylim,
CI.percent=round((1-2*(1-pnorm(multiplier)))*100,2),
main = paste(
series, " with forecast + ",
CI.percent, "% CI", sep=""),
xlab=NULL, ylab=NULL,
...) ## x.at, xlim
Arguments
xts This is the observed series
forecast forecast values based on the model
multiplier Half-width of confidence interval in standard normal units. Defaults to 1.96.
CI.percent Width of confidence band. Defaults to the standard normal, two-sided value
associated with the multiplier (95 percent for the default multiplier=1.96).
series Name of time series will be used to construct the main title for the plot.
ylim, xlab, ylab, main
standard trellis parameters
... additional arguments to xyplot.
106 strip.xysplom
Author(s)
Richard M. Heiberger (rmh@temple.edu)
See Also
seqplot
Examples
strip.background0 Turn off the coloring in the trellis strip labels. Color 0 is the back-
ground color.
Description
Turn off the coloring in the trellis strip labels. Color 0 is the background color.
Usage
strip.background0()
Author(s)
Richard M. Heiberger <rmh@temple.edu>
strip.xysplom strip function that is able to place the correlation or regression coeffi-
cient into the strip label.
Description
strip function that is able to place the correlation and/or regression coefficient into the strip label.
Usage
strip.xysplom(which.given, which.panel, var.name, factor.levels,
shingle.intervals, par.strip.text = trellis.par.get("add.text"),
strip.names = c(TRUE, TRUE), style = 1, ...)
Arguments
which.given, which.panel, var.name, factor.levels, shingle.intervals
arguments to strip.default.
par.strip.text, strip.names, style, ...
more arguments to strip.default.
sufficient 107
Details
The function looks for the specific factor names c("corr","beta","corr.beta"). If it
finds them, it goes up the calling sequence to locate the data for the panel. Then it calculates the
correlation and/of regression coefficient and inserts the calculated value(s) as the value for the strip
label.
Author(s)
Richard M. Heiberger <rmh@temple.edu>
See Also
xysplom
Description
Calculates the mean, standard deviation, and number of observations in each group of a data.frame
that has one continuous variable and two factors.
Usage
sufficient(x,
yname = dimnames(x)[[2]][[1]],
factor.names.keep = dimnames(x)[[2]][-c(1, 2)])
Arguments
x data.frame containing a continuous variable and two factors.
yname Character name of response variable.
factor.names.keep
Character vecotr containing the names of two factors in the x data.frame.
Value
Data.frame containing five columns and as many rows as are implied by the crossing of the two
factors. Each row contains the mean in a column with the name yname and its factor values in
columns named with the name in factor.names.keep. The standard deviation of the obser-
vations in the group are in the column "sd" and the number of observations in the group is in the
column "nobs".
Author(s)
Richard M. Heiberger <rmh@temple.edu>
108 summary.arma.loop
See Also
intxplot
summary.arma.loop summary and print and subscript methods for tsdiagplot and related
objects.
Description
summary and print and subscript methods for tsdiagplot and related objects.
Usage
Arguments
Author(s)
See Also
t.trellis Interchange the x- and y-axes for an S-Plus trellis object. Interchange
the conditioning variables for an R trellis object.
Description
In S-Plus, change the "trellis" object to effectively, and after-the-fact convert formulas from
(y ~ x | g) to (x ~ y | g). This is needed in S-Plus because most S-Plus trellis functions
do not permit factors on the right-hand side of the formula.
In R lattice functions, factors are permitted on the right-hand side of the formula. Therefore, to
change the x and y axes within each panel, change the formula from (y ~ x | g) to (x ~
y | g). The HH t.trellis function in R calls lattice::t.trellis to interchange the
conditioning variables for an R trellis object. See t.trellis.
Usage
## S3 method for class 'trellis':
t(x)
Arguments
x any "trellis" object.
Details
In S-Plus, a warning is generated if the panel component of the "trellis" object is a func-
tion. No warning is generated when the panel component of the "trellis" object is a char-
acter string naming the function. We interchange the x and y values of the c("x", "y",
"xlab", "ylab", "xlim", "ylim", "adj.xlim", "adj.ylim") components of
the "trellis" object, and are aware of special features of the panel functions listed in the S-
Plus version of t.trellis. The transpose will usually work correctly for other panel functions.
Value
In S-Plus, a "trellis" object with all x and y components interchanged. In R, the argument
"trellis" object is sent to lattice::t.trellis to interchange the conditioning variables.
Author(s)
Richard M. Heiberger <rmh@temple.edu>
References
Heiberger, Richard M. and Holland, Burt (2004b). Statistical Analysis and Data Display: An Inter-
mediate Course with Examples in S-Plus, R, and SAS. Springer Texts in Statistics. Springer. ISBN
0-387-40270-5.
110 tsacfplots
See Also
In R: t.trellis. In S-Plus: xyplot.
Examples
tmp <- data.frame(y=rnorm(30), x=factor(rep(1:3,10)))
if.R(r=
bwplot(y ~ x, data=tmp)
,s=
t(bwplot(x ~ y, data=tmp))
)
Description
Coordinated time series and ACF and PCF plots.
Usage
tsacfplots(x,
ylab=deparse(substitute(x)),
x.name=ylab[[1]],
main=paste("Series:", x.name),
lag.at=NULL,
lag.max=NULL,
lag.units=NULL,
lag.0=TRUE,
...)
acf.pacf.plot(x,
ylab=NULL,
series=deparse(substitute(x)),
main=paste("ACF and PACF:", series),
lag.max,
lag.units=frequency(x),
lag.at=pretty(apacf$lag),
lag.labels=lag.at*lag.units,
lag.0=TRUE,
...)
Arguments
x time series
ylab, main standard trellis arguments.
tsdiagplot 111
x.name, series
Character string, name for the time series.
lag.at Location of ticks for the acf and pacf plots.
lag.labels Labels for ticks for the acf and pacf plots.
lag.max Maximum lag used in the acf and pacf plots.
lag.units Units for time series, defaults to frequency(x)
lag.0 Logical. If TRUE, then plot the correlation (identically 1) at lag=0. If FALSE,
do not plot the correlation at lag=0.
... Additional arguments to seqplot for tsacfplots. Additional arguments
to strip.default for acf.pacf.plot.
Details
Value
Author(s)
See Also
seqplot
Examples
tsacfplots(co2)
acf.pacf.plot(co2)
tsdiagplot Times series diagnostic plots for a structured set of ARIMA models.
Description
Usage
tsdiagplot(x,
p.max=2, q.max=p.max,
model=c(p.max, 0, q.max), ## S-Plus
order=c(p.max, 0, q.max), ## R
lag.max=36, gof.lag=lag.max,
armas=if.R(
s=arma.loop(x, model=model,
series=deparse(substitute(x)), ...),
r=arma.loop(x, order=order,
series=deparse(substitute(x)), ...)),
diags=diag.arma.loop(armas, x,
lag.max=lag.max,
gof.lag=gof.lag),
ts.diag=rearrange.diag.arma.loop(diags),
lag.units=ts.diag$tspar["frequency"],
lag.lim=range(pretty(ts.diag$acf$lag))*lag.units,
lag.x.at=pretty(ts.diag$acf$lag)*lag.units,
lag.x.labels={tmp <- lag.x.at
tmp[as.integer(tmp)!=tmp] <- ""
tmp},
lag.0=TRUE,
main, lwd=0,
...)
acfplot(rdal, type="acf",
main=paste("ACF of std.resid:", rdal$series,
" model:", rdal$model),
lag.units=rdal$tspar["frequency"],
lag.lim=range(pretty(rdal[[type]]$lag)*lag.units),
lag.x.at=pretty(rdal[[type]]$lag)*lag.units,
lag.x.labels={tmp <- lag.x.at
tmp[as.integer(tmp)!=tmp] <- ""
tmp},
lag.0=TRUE,
xlim=xlim.function(lag.lim/lag.units),
...)
residplot(rdal,
main=paste("std.resid:", rdal$series,
" model:", rdal$model),
...)
tsdiagplot 113
gofplot(rdal,
main=paste("P-value for gof:", rdal$series,
" model:", rdal$model),
lag.units=rdal$tspar["frequency"],
lag.lim=range(pretty(rdal$gof$lag)*lag.units),
lag.x.at=pretty(rdal$gof$lag)*lag.units,
lag.x.labels={tmp <- lag.x.at
tmp[as.integer(tmp)!=tmp] <- ""
tmp},
xlim=xlim.function(lag.lim/lag.units),
pch=16, ...)
Arguments
x Time series vector.
p.max, q.max Maximum number of AR and MA arguments to use in the series of ARIMA
models.
model A valid S-Plus model for arima.mle.
order A valid R order for arima. The additional argument seasonal may also
be used.
lag.max Maximum lag for the acf and pacf plots.
gof.lag Maximum lag for the gof plots.
armas An arma.loop object.
diags An diag.arma.loop object.
ts.diag, rdal
A list constructed as a rearranged diag.arma.loop object.
lag.units Units for time series, defaults to frequency(x)
lag.lim scaling for xlim in acf and pacf plots.
lag.x.at, lag.x.labels
Location of ticks and labels for the acf and pacf plots.
lag.0 Logical. If TRUE, then plot the correlation (identically 1) at lag=0. If FALSE,
do not plot the correlation at lag=0.
type "acf" or "pacf"
z A matrix constructed as the aic or sigma2 component of the sumamry of a
arma.loop object.
z.name "aic" or "sigma2"
series.name Character string describing the time series.
xlab, ylab, layout, between, pch, xlim, main, lwd
Standard trellis arguments.
... Additional arguments. tsdiagplot sends them to arima or arima.mle.
acfplot, aicsigplot residplot, and gofplot send them to xyplot.
114 tsdiagplot
Value
Author(s)
References
"Displays for Direct Comparison of ARIMA Models" The American Statistician, May 2002, Vol.
56, No. 2, pp. 131-138. Richard M. Heiberger, Temple University, and Paulo Teles, Faculdade de
Economia do Porto.
Richard M. Heiberger and Burt Holland (2004), Statistical Analysis and Data Display, Springer,
ISBN 0-387-40270-5
See Also
tsacfplots, arma.loop
Examples
X <- as.rts(scan(hh("datasets/tser.mystery.X.dat")))
X.loop
X.loop[["1","1"]]
vif 115
Description
The VIF for predictor i is 1/(1 − Ri2 ), where Ri2 is the R2 from a regression of predictor i against
the remaining predictors.
Usage
vif(x, ...)
## Default S3 method:
vif(x, y.name, na.action = na.exclude, ...) ## x is a data.frame
Arguments
x data.frame, or formula, or lm object computed with x=TRUE.
na.action See na.action.
... additional arguments.
y.name Name of Y-variable to be excluded from the computations.
data 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.
Details
A simple diagnostic of collinearity is the variance inflation factor, VIF one for each regression
coefficient (other than the intercept). Since the condition of collinearity involves the predictors but
not the response, this measure is a function of the X’s but not of Y . The VIF for predictor i is
1/(1 − Ri2 ), where Ri2 is the R2 from a regression of predictor i against the remaining predictors. If
Ri2 is close to 1, this means that predictor i is well explained by a linear function of the remaining
predictors, and, therefore, the presence of predictor i in the model is redundant. Values of VIF
exceeding 5 are considered evidence of collinearity: The information carried by a predictor having
such a VIF is contained in a subset of the remaining predictors. If, however, all of a model’s
regression coefficients differ significantly from 0 (p-value < .05), a somewhat larger VIF may be
tolerable.
Value
Vector of VIF values, one for each X-variable.
116 xysplom
Author(s)
Richard M. Heiberger <rmh@temple.edu>
References
Heiberger, Richard M. and Holland, Burt (2004b). Statistical Analysis and Data Display: An Inter-
mediate Course with Examples in S-Plus, R, and SAS. Springer Texts in Statistics. Springer. ISBN
0-387-40270-5.
See Also
lm in R or lm in S-Plus.
Examples
usair <- read.table(hh("datasets/usair.dat"),
col.names=c("SO2","temp","mfgfirms","popn",
"wind","precip","raindays"))
usair$lnSO2 <- log(usair$SO2)
usair$lnmfg <- log(usair$mfgfirms)
usair$lnpopn <- log(usair$popn)
vif(usair)
vif(usair, y.name="lnSO2")
Description
scatterplot matrix with potentially different sets of variables on the rows and columns. The slope or
regression coefficient for simple least squares regression can be displayed in the strip label for each
panel.
Usage
xysplom(x, ...)
## Default S3 method:
xysplom(x, y=x, group, relation="free",
x.relation=relation, y.relation=relation,
xlim.in=NULL, ylim.in=NULL,
corr=FALSE, beta=FALSE, abline=corr||beta, digits=3,
x.between=NULL, y.between=NULL,
between.in=list(x=x.between, y=y.between),
scales.in=list(
x=list(relation=x.relation, alternating=FALSE),
y=list(relation=y.relation, alternating=FALSE)),
strip.in=strip.xysplom,
pch=16, cex=.75,
panel.input=panel.xysplom, ...,
cartesian=TRUE,
plot=TRUE)
Arguments
x In the "formula" method, a formula. In the "default" method, a data.frame
... other arguments to xyplot.
data data.frame
na.action See na.action in R, na.exclude in S-Plus. Defaults to na.pass because
xyplot does sensible things with missing data.
y In the "default" method, a data.frame with the same number of rows as the
data.frame in x.
group In the "default" method, a data.frame with the same number of rows as the
data.frame in x.
relation, x.relation, y.relation,scales.in
Alternate ways to get to the scales(relation=) arguments to xyplot.
xlim.in, ylim.in
Alternate ways to get to the scales(limits=) arguments to xyplot.
corr, beta Display the correlation and/or the regression coefficient for lm(y ~ x) for
each panel in an additional strip label.
abline logical. If TRUE, draw the least squares regression line within each panel. By
default the abline is FALSE unless at least one of corr or beta is TRUE.
digits number of significant digits for the correlation coefficient.
x.between, y.between, between.in
Alternate ways to get to the between= argument to xyplot.
strip.in strip function that knows how to handle the corr and beta displays.
pch, cex arguments to xyplot
panel.input panel function used by xyplot within each panel. When abline==FALSE,
the default panel function calls panel.xyplot. When abline==TRUE, the
default panel function calls panel.xyplot and panel.abline(lm(y~x,
na.action=na.exclude)). Note that we use na.action=na.exclude
inside lm.
118 xysplom
cartesian When cartesian==TRUE, the cartesian product of the left-hand side number
of variables and the right-hand side number of variables defines the number
of panels in the display. When cartesian==FALSE, each variable in the
left-hand side is paired with the variable in the corresponding position in the
right-hand side and only those pairs are plotted. Both sides must have the same
number of variables.
plot Defaults to TRUE. See details.
Details
The argument plot=TRUE is the normal setting and then the function returns a "trellis" ob-
ject. When the argument plot=FALSE, the function returns the argument list that would otherwise
be sent to xyplot. This list is interesting when the function xysplom was designed because the
function works by restructuring the input data and running xyplot on the restructured data.
Value
When plot=TRUE (the normal setting), the "trellis" object containing the graph. When
plot=FALSE, the restructured data that must be sent to the xyplot function.
Author(s)
Richard M. Heiberger <rmh@temple.edu>
References
Heiberger, Richard M. and Holland, Burt (2004b). Statistical Analysis and Data Display: An Inter-
mediate Course with Examples in S-Plus, R, and SAS. Springer Texts in Statistics. Springer. ISBN
0-387-40270-5.
See Also
xyplot in R.
Examples
xysplom(y ~ x , data=tmp)
xysplom(y ~ x + w , data=tmp)
xysplom(y + w ~ x , data=tmp)
xysplom(y ~ x | g, data=tmp)
xysplom(y ~ x | g, data=tmp, layout=c(2,1))
xysplom(y + x ~ z | g, data=tmp)
xysplom(y + x ~ z | g, data=tmp, layout=c(2,2))
xysplom(y ~ x + z | g, data=tmp)
xysplom(y ~ x + z | g, data=tmp, layout=c(2,2))
xysplom(w + y ~ x + z, data=tmp)
xysplom(w + y ~ x + z | g, data=tmp)
xysplom(w + y ~ x + z | g, data=tmp, layout=c(2,4))
xysplom(~ y + x + z , data=tmp)
xysplom(~ y + x + z | g, data=tmp)
xysplom(~ y + x + z , data=tmp, corr=TRUE)
xysplom(~ y + x + z | g, data=tmp, corr=TRUE)
xysplom(~ y + x + z | g, data=tmp, corr=TRUE, digits=2)
xysplom(~ y + x + z | g, data=tmp, corr=TRUE, layout=c(3,6))
## Not run:
## These three examples run from R and the command line in S-Plus.
## They don't run from inside the Splus CMD check.
xysplom(~ tmp)
xysplom(~ tmp | tmp$g)
xysplom(tmp$y ~ tmp2 | tmp$g)
## End(Not run)
xysplom(g ~ x , data=tmp)
xysplom(x ~ g , data=tmp)
∗Topic NA panel.bwplott, 75
diag.maybe.null, 24 panel.ci.plot, 78
∗Topic algebra panel.dotplot.tb, 79
orthog.complete, 71 panel.pairs.hh, 82
∗Topic aplot panel.xysplom, 83
norm.curve, 63 plot.multicomp, 90
panel.interaction2wt, 80 position, 92
∗Topic classes push.vp.hh, 97
ancova-class, 7 strip.background0, 105
positioned-class, 95 strip.xysplom, 105
∗Topic color sufficient, 106
col.hh, 23 t.trellis, 108
∗Topic data ∗Topic environment
HH-package, 2 hh, 29
∗Topic design ∗Topic hplot
HH-package, 2 ae.dotplot, 5
interaction2wt, 34 ancova, 8
mmc, 49 arma.loop, 16
panel.interaction2wt, 80 ci.plot, 22
∗Topic device extra, 26
export.eps, 26 HH-package, 2
GSremove, 1 interaction2wt, 34
∗Topic distribution ladder, 40
norm.curve, 63 lm.case, 45
∗Topic dplot mmc, 49
ancova, 8 mmc.mean, 56
as.multicomp, 17 norm.curve, 63
axis.i2wt, 20 odds.ratio, 69
bwplot.formula, 20 panel.cartesian, 76
grid.yaxis.hh, 28 partial.corr, 84
interaction.positioned, 33 plot.hov, 85
intxplot, 37 plot.mmc.multicomp, 86
ladder, 40 print.tsdiagplot, 96
legendGrob2wt, 44 residual.plots, 101
multicomp.order, 60 seqplot, 103
multicomp.reverse, 62 seqplot.forecast, 104
panel.acf, 73 tsacfplots, 109
panel.bwplot.intermediate.hh, tsdiagplot, 110
74 xysplom, 115
121
122 INDEX
dev.copy2eps, 26 make.xaxis.hh.labels
diag, 24 (grid.yaxis.hh), 28
diag.arma.loop (arma.loop), 16 make.yaxis.hh.labels
diag.maybe.null, 24 (grid.yaxis.hh), 28
do.formula.trellis.xysplom, 25 mcalinfct, 48
dotplot, 79 mcp, 50
MMC, 13, 19, 48, 61, 63, 72
export.eps, 26 MMC (mmc), 49
export.graph, 26 mmc, 18, 20, 49, 58, 88, 91
extra, 26 mmc.mean, 56
Extract, 107 model.frame.ancova (ancova), 8
multicomp, 19, 20, 51, 58, 91
factor, 33, 93 multicomp (mmc), 49
formula, 25 multicomp.label.change
(multicomp.order), 60
glht, 19, 20, 48, 50, 51, 58, 87, 91 multicomp.label.change.mmc.multicomp
glht.mmc (mmc), 49 (multicomp.order), 60
gof.calculation, 27 multicomp.label.change.multicomp
gofplot (tsdiagplot), 110 (multicomp.order), 60
graphsheet, 2 multicomp.mean (mmc.mean), 56
grid.text, 27 multicomp.mmc.mean (mmc.mean), 56
grid.xaxis.hh (grid.yaxis.hh), 28 multicomp.order, 60, 63
grid.yaxis.hh, 28 multicomp.reverse, 61, 62
GSremove, 1
na.action, 4, 25, 114, 116
HH (HH-package), 2 na.exclude, 116
hh, 29 norm.curve, 63
HH-package, 2 norm.observed (norm.curve), 63
HH.ROOT.DIR (hh), 29 norm.setup (norm.curve), 63
hov, 30, 86 npar.arma, 67
npar.rarma (npar.arma), 67
if.R, 32 npar.sarma (npar.arma), 67
interaction.positioned, 33, 82
interaction2wt, 20, 34, 44, 74, 82 objects, 69
intxplot, 37, 107 objip, 68
is.numeric.positioned (position), odds.ratio, 69
92 orthog.complete, 71
is.positioned (position), 92 orthog.construct
is.R, 32 (orthog.complete), 71
key, 6 panel.acf, 73
124 INDEX