Visualizing Hypothesis Tests in Multivariate Linear Models

Provides HE plot and other functions for visualizing hypothesis tests in multivariate linear models. HE plots represent sums-of-squares-and-products matrices for linear hypotheses and for error using ellipses (in two dimensions) and ellipsoids (in three dimensions). The related 'candisc' package provides visualizations in a reduced-rank canonical discriminant space when there are more than a few response variables.


Version 1.3-5 (2018-04-02)

  • fix references to car datatsets -> carData
  • fix error resulting from car 3.0 changes
  • bump pkg version

Version 1.3-4 (2016-11-7)

o Added Diabetes data, a nice example of heterogeneity of covariances

Version 1.3-3 (2016-10-21)

o Added Parenting data, a simple one-way MANOVA design (used in TQMP paper) o Prepare for CRAN release

Version 1.3-1 (2016-06-10)

o added plot.robmlm(), a plot method for "robmlm" objects. Currently, it plots the weights given to observations in the last iteration as an index plot. o Re-built vignettes

Version 1.3-0 (2016-06-03)

o In cqplot, pch, col, and cex can now be vectors o Bump version, prepare for release

Version 1.2-1 (2016-05-19)

o in coefplot.mlm(), now pass label.pos to label.ellipse() o added Mahalanobis() for classical and robust squared distances; handles missing data gracefully and provides a confidence envelope o added SocialCog data [Thx: Leah Hartman] o added cqplot() of Mahalanobis distances as a plot method for an mlm and for multivariate data

Version 1.2-0 (2016-04-27)

o covEllipses() extended to more than two variables, giving a scatterplot matrix plot o plot.boxM() now can plot other measures of the eigenvalues of the covariance matrices, useful for understanding the properties of the test. o added bartlettTests() for a collection of univariate Bartlett tests o added leveneTests() for a collection of univariate Levene tests o added NeuroCog data, a simple one-way MANOVA [Thx: Leah Hartman] o label.ellipse() now uses a much more flexible label.pos argument for positioning the text labels used in heplot() and friends.

Version 1.1-0 (2016-03-03)

o Added boXM from biotools o Fleshed out boxM() with formula, lm, plot and summary methods o added plot.boxM() method o Added covEllipses() methods for plotting (possibly robust) covariance ellipses o Added colDevs() as a utility and for use in other multivariate tests. o Added data(AddHealth), a simple example of a one-way MANOVA with nice views [thx: Russell Warne] o summary.boxM() now returns the calculated statistics and can be used to construct other kinds of plots. o plot.boxM() gets a gplabel argument to provide a label for the group factor o pairs.mlm() gets a var.cex argument to control size of variable labels o Added logdetCI() for confidence intervals on log determinants of covariance matrices (experimental) o Now use logdetCI() in plot.boxM()

Version 1.0-16 (2015-07-11) o use importsFrom for base packages

Version 1.0-15 (2015-04-15) o Fix require -> requireNamespace

Version 1.0-14 (2015-02-15) o Updated broken urls in documentation o Removed vcov.mlm from exports to conform to CRAN policies o Now use rgl:: for rgl functions in *3d.R o Removed robmlm.default, robmlm.formula from exports o Imports: rgl

Version 1.0-12 (2014-05-15) o Removed Authors: to satisfy CRAN nits o Fixed doc for Hernior.Rd o Now importsFrom(MASS) rather than Depends:

Version 1.0-11 (2013-08-20) o Cosmetic changes to pass CRAN checks o For R 3.1.0, revised vcov.mlm() to avoid calling summary.mlm() directly o fixed long lines in .Rd files for R 3.0.1 checks o removed require() calls for MASS & car (Depends:) o removed ::: calls to car and stats

Version 1.0-10 (2013-06-03) o Added demo/HE-other.R, exploring other representations of HE plots

Version 1.0-9 (2013-04-19) o Added Pottery2 data, extending car::Pottery o Fixed heplot3d to minimize striated rendering of ellipsoids, and also modified default colors and fill.alpha

Version 1.0-8 (2013-02-22) o In heplot.mlm(), added ... to label.ellipse to be able to pass cex= o Added NLSY data with examples of testing linearHypotheses o In heplot3d(), rgl.* functions replaced with *3d() equivalents o Extended gsorth description and examples

Version 1.0-7 (2013-02-07) o Made some heplot3d() examples \dontrun{} to reduce example execution time to satisfy CRAN nits

Version 1.0-6 (2013-01-14) o Added label.ellipse() as a more general exported function. o heplot() gets a label.pos= argument allowing more flexible labeling, with the label position to be specified (bottom, left, top, right or center) o Added coefplot S3 generic and a coefplot.mlm method to plot ellipses for mlm coefficients. This generalizes car::confidenceEllipse to the mlm setting.

Version 1.0-4 (2012-12-29) o Added interpPlot for plotting interpolations between two data sets, with data ellipses, etc. Main use for this is in animated demos of multivariate statistical concepts. o interpPlot gains add=, points= and col= arguments for greater control of graphical parameters.

Version 1.0-2 (2012-12-05) o Added schooldata and further example of comparison of mlm with robmlm()

Version 1.0-1 (2012-10-18) o Added simple robmlm methods for robust mlms with print and summary methods and a vcov.mlm method. This allows heplot() and related methods to show robust HE plots.

Version 1.0-0 (2012-6-3) o Added Olso data o Corrected error in demo/OBK.R

Version 0.9-13 (2012-5-18) o Extended HE-examples vignette with example based on SocGrades data

Version 0.9-12 (2012-04-03) o Added Skulls data o Extended HE-examples vignette with example based on Skulls data o Changed the default colors for heplot() and heplot1d() to allow global setting of options("heplot.colors"); similarly, heplot3d() now allows a global option for colors, options("heplot3d.colors"), differing only in using pink for error ellipsoid. o Extended Hernior.Rd examples to show 1D plots in canonical space; added a discussion of this example to HE-examples vignette. o Extended SocGrades.Rd examples to show plots in canonical space.

Version 0.9-11 (2012-01-12) o Added Probe1, Probe2 data sets-- repeated measures design o Added Sake data

Version 0.9-10 (2011-09-12) o Fixed [email protected] in DESCRIPTION for R 2.14.x o Added var.labels argument to pairs.mlm o gsorth.R: Made sd() a local function to avoid deprecated warnings

Version 0.9-9 (2011-06-10) o Added data(Hernior), another MMRA, cancorr example data set o Added data(SocGrades), another MANOVA, MMRA, cancorr example data set o Corrected buglet with fill.alpha in heplot

Version 0.9-8 (2011-04-8) o Added an MMRA example to HE-examples vignette o Added err.label argument to heplot and heplot3d to allow changing the label for the error ellipsoid

Version 0.9-7 (2010-11-4) o Added trans.colors() to make colors transparent o Modifications to heplot() for filled ellipses: added fill= and fill.alpha= arguments; replaced lines() with polygon() for H and E ellipses; calculate H.rank to distinguish degenerate ellipses o added last() to utility.R o Modified some examples to show fill=TRUE and use wire=FALSE in heplot3d() o Modified pairs.mlm() to pass fill= and fill.alpha= to heplot() o Updated reference URLs to point to o Fixed buglet in gsorth when matrix has no row/col names [Thx: [email protected]] o Fixed buglet in etasq.lm with partial=FALSE [Thx: [email protected]]

Version 0.9-6 (2010-11-2) o added CITATION to JSS article and references to .Rd files o modified repeated vignette to [nojss]

Version 0.9-5 (2010-10-01) o Added repeated vignette

Version 0.9-4 (2010-07-29) o Minor documentation changes o Added etasq.lm() method o Added data/MockJury - 1-way and 2-way MANOVA, step-down tests, ANCOVA o Generalized termMeans() and exported it o Added HE-examples vignette

Version 0.9-3 (2010-07-27) o Added gsorth() for Gram-Schmidt orthogonalization of a matrix or data frame, preserving column means and standard deviations o Avoid Deprecated warnings (linear.hypothesis) with car2 o Fixed documentation warnings with car2 (linear.hypothesis, data.ellipse)

Version 0.9-2 (2010-02-12) o Added demo/Big5.R - Analysis of scores on the 'Big 5' personality traits for three groups o fixed buglet with text3d causing rgl to crash (thx: Duncan Murdoch) o switched inst/CHANGES to NEWS o Added data/RatWeight and examples - repeated measures on Weight Gain in Rats o Added data/Headache and examples - repeated measures on treatment for headaches o Fixed buglets in heplot, heplot1d, heplot3d regarding number of variables o Added etasq.mlm methods for multivariate measures of association (\eta^2) o Return ellipse radius from heplot, heplot3d

Version 0.9-1 (2010-01-1) o heplot.mlm, pairs.mlm, heplot3d.mlm now work for repeated measure designs with only covariates on the rhs. o Implemented heplot1d() for repeated measures designs (untested) o Revised documentation for repeated measures o Added center.cex to heplot.mlm() o Revised mark.H0() to handle 3D plots also o Added Adoption data -- MMreg with repeated measures o Added ReactTime data -- 2 within-S, no between-S factors o Fixed bug with icontrasts o Added markH0 argument to heplot o Added label argument to mark.H0() o Added arrow3d() o Fixed buglet in pairs.mlm (type)

Version 0.9-0 (2009-12-25) o Implemented 2D HE plots in heplot.mlm for repeated measures designs by adding idata=, idesign=, icontrasts= arguments.
o imatrix= argument for doubly-multivariate designs implemented, but depends on car 2.0+ o Updated example(OBK) o Updated example(WeightLoss) o Implemented 3D HE plots in heplot3d.mlm for repeated measures designs (OK) o Implemented pairs() for repeated measures designs (OK)

Version 0.8-11 (2009-12-08) o Minor fixes to heplot1d o Added contrasts example to RootStock.Rd o Added WeightLoss data -- doubly multivariate o Added mark.H0

Version 0.8-10 (2009-10-10) o Fixes to cross-references in .Rd files.

Version 0.8-9 (2009-06-19) o Added data(RootStock) o heplot.mlm, heplot3d.mlm now include center in the returned object

Version 0.8-8 (2009-06-04) o Added data(FootHead) o Extended example(FootHead)

Version 0.8-7 (2009-04-17) o Initial version of heplot1d o Added data(Bees), demo(bees.contrasts) o Now suggest: effects package

Version 0.8-6 (2009-04-11) o Added VocabGrowth data, with an example of heplot() for a repeated measures design o Fixed label.ellipse in heplot.mlm.R to center the label horizontally o Added demo(OBK) o Added axes= to heplot.mlm to fix warnings arising from axes=FALSE in pairs.mlm

Version 0.8-5 (2009-01-26) o Minor documentation changes for Rdoc 2 o Michael Friendly as maintainer

Version 0.8-4 (2008-11-17) o Documentation additions o added CITATION file

Version 0.8-3 (2008-11-6)

  • Changes to heplot3d.mlm: o added xlim, ylim, zlim arguments

Version 0.8-2 (2008-10-22)

  • Package changes o added suggests: candisc o added utility.R, cross3d.R

  • Changes to heplot.mlm: o moved lambda.crit to utility.R o added he.rep to handle common task of repeating HE argument values

  • Changes to heplot3d.mlm: o added shade=, shade.alpha=, wire= parameters o fixed: grand.mean=FALSE not respected o replaced sphere at grand.mean with cross3d() o color means according to the color of the term o return bounding boxes of the ellipsoids o replaced rgl.texts with texts3d

  • Changes to utility.R: o Generalized lambda.crit to provide Roy.crit and HLT.crit; only Roy.crit is used

Version 0.8-1 (2007-05-23)

o heplot now passes ... not only to plot() but to calls to text() and points().

Version 0.8-0 (2007-01-31)

o Initial version released to CRAN.

Reference manual

It appears you don't have a PDF plugin for this browser. You can click here to download the reference manual.


1.3-9 by Michael Friendly, 4 months ago

Report a bug at

Browse source code at

Authors: John Fox [aut] , Michael Friendly [aut, cre] , Georges Monette [ctb] , Phil Chalmers [ctb]

Documentation:   PDF Manual  

GPL (>= 2) license

Imports MASS, graphics, grDevices, stats, utils

Depends on car

Suggests rgl, candisc, effects, reshape, gplots, nlme, lattice, reshape2, corrgram, animation, mvinfluence

Imported by MapeBay, MorphoTools2.

Depended on by candisc, mvinfluence.

Suggested by Guerry, HistData, effects, latentnet.

See at CRAN