Changes in version 1.8.3 Changes in version 1.8.2 - add eigstatsCI() to calculate bootstrapped confidence intervals for eigenvalue statistics, as used in plot.boxM() - added plot_boxM_boot() to plot these with bootstrapped CIs - added traceCI() for use in plot.boxM() Changes in version 1.8.1 (2025-12-07) This is a large cumulative release of several versions since the last CRAN release. - label.ellipse() now returns invisibly the coordinates where the label was placed. - heplot() adds a label.cex argument to control the size of labels on H/E ellipses. The label.pos argument is vectorized, so that the changes to label.ellipse() now apply. - boxM() & plot.boxM() now correctly handle the situation where one or more groups have singular covariance matrices because !n>p - Fixed bug in covEllipses.boxM() method. boxM() now returns ngroups and means among it's components. - add @family tags to improve cross-referencing in documentation Changes in version 1.8.0 - describe more fully constructing the datasets table using concept tags - added text_usr() to add text in normalized device coordinates - begin to convert documentation to use markdown via {roxygen2md} - label.ellipse() re-written to allow a fully general way to specify label positions [Thx: Claude] Changes in version 1.7.9 - plot.robmlm() gains a groups arg to vary point color and pch - plot.robmlm() gains a group.axis arg to draw an axis identifying the groups at the top of the plot. Changes in version 1.7.8 (2025-08-18) Several small maintenance fixes, plus a new diagnostic plot and a new vignette o Added distancePlot() for plots of Mahalanobis distances of X vs Y. For an MLM, diagnoses high leverage and large residuals o Added a vignette on robust MLMs using robmlm() and diagnostic plots o Added rel_diff() to calculate relative difference between two arrays or data frames o Fixed buglet in plot.robmlm() o Fixed some non-canonical URLs o Fixed cex buglet in distancePlot() Changes in version 1.7.6 - fixing data, group names in boxM to avoid necessity for gplabel in plots. - added reference for CI in plot.boxm() Changes in version 1.7.5 (2025-05-24) Fix bugs and add some args for better control - Edit description of NLSY data and extend the examples to show coefplot(), cqplot() - Revise documentation for robmlm() - Add dev/pulpfiber.R for a classic robust MLM example - fix default Y axis label in plot.robmlm() - fixed bug in coefplot.mlm() in selecting terms with parm. - coefplot.mlm() gains a cex.lab argument - Fleshed out details of Rohwer dataset PA measures - Fixed nits from R CMD check Changes in version 1.7.4 (2025-04-16) This is largely a maintenance release, but adds a function to identify "noteworthy" points in 2D scatterplots. - added plotting all X vs all Y to Rohwer examples - added schoolsites dataset, providing additional variables related to the schooldata dataset. - cqplot() now prints a warning if there are missing cases and also returns the upper tail p-values corresponding to Mahalanobis $D^2$. - Default method.id in cqplot() changed to "r", to identify points with the largest $D^2$. - added noteworthy(x, y) as a utility to select "noteworthy" observations in a 2D plot, extending the ideas in car::showLabels() - corrected some minor documentation problems - fixed some 301 "moved" URLs - Now Depends: on R >= 4.1.0 because package uses native pipes |> - Added Suggests: KernSmooth, aplpack, foreign, used in some demos Changes in version 1.7.3 (2024-12-22) This is a moderate update, adding new functionality - leveneTests() gains formula and lm methods - bartlettTests() gains formula and lm methods - colDevs() gains a group.var argument; examples extended - Added uniStats() for an anova version of glance.mlm() - Corrected documentation of covEllipses() to more accurately describe recycling of arguments. - size="significance" now allowed as a synonym for size="evidence" in heplot functions. Changes in version 1.7.2 - Fixed bug in ellipse.axes() re center/centre - ellipse.axes() gains a type argument to draw lines or arrows - ellipse.axes() gains a extend argument to extend/shrink the axes Changes in version 1.7.1 (2024-11-24) This is a modest update, adding two new datasets for simple examples and a PDF vignette - Extended the "datasets" vignette with further description of how this was done. - Added dogfood and oral datasets, both simple MANOVA examples. - Added HE Plots for Repeated Measures Designs vignette - Fixed nits from URLs vanished or moved Changes in version 1.7.0 (2024-05-02) This is a semi-major release, primarily documenting all datasets in the package with @concept tags. It also adds new datasets and fixes bugs and documentation errors since the last CRAN release (v 1.6.2) - Added a new example (AddHealth data) to the HE_manova vignette - Added Overdose data, a simple MMRA example. - All datasets now classified by @concept tags in documentation, giving the primary methods ("MANOVA", "MMRA", "repeated", ...) that they illustrate. These supplement @keyword tags and appear in the index of the package documentation. - A new vignette (datasets) lists the datasets in the package, classified by these @concept tags. Changes in version 1.6.3 - Correct documentation error in cqplot() - cqplot() now returns DSQ values for identified points - Fixed small buglet re: labeling of hypothesis ellipses in heplot() Changes in version 1.6.2 (2024-02-15) - Add peng dataset, a version of palmerpenguins::penguins - Correct documentation problems from Roxygen 7.3.1 (@docType) Changes in version 1.6.1 - add warning to label.ellipse() if length(label.pos) > 1 - fixed label.pos in coefplot.mlm() - add ellipse.axes() to draw axes of a covariance ellipse - add ellipse.box() to draw conjugate axes of a covariance ellipse Changes in version 1.6.0 (2023-09-05) - converted pkg to roxygen documentation - now Suggests: car rather than Depends: - fix CITATION authors Changes in version 1.5.0 - covEllipses() gains a formula method - Internal function ellipsoid() used in heplot3d() becomes an (experimental) exported function, Ellipsoid() Changes in version 1.4-3 - replace rgl.pop() with pop3D (PR #7); thx: D. Murdoch Changes in version 1.4-2 (2022-10-19) - Fix CITATION Changes in version 1.4-1 (2022-10-01) - (Ugh) broom becomes a Depend: so as not to override broom::glance() Changes in version 1.4-0 - Added Iwasaki_Big_Five data [Thx: James Grice] - Added cex.label arg to heplot3d() - Convert old Rnw vignettes to Rmd - Fix documentation infelicities - Added TIPI data - Added glance.mlm() as an extension of broom::glance.lm() Changes in version 1.3-9 (2021-10-06) - Fix potential problem with URL links to JSS articles, now converted to DOIs Changes in version 1.3-8 (2021-01-21) - fix CRAN nit re rgl in examples Changes in version 1.3-7 (2020-10-28) - Fix rendering of 3D heplots [Thx: Duncan Murdoch] - Fix URLs Changes in version 1.3-6 - add mathscore data - fix bug in etasq.lm() per #1 [thx: Phil Chalmers] - bump pkg version - remove Suggests: FRB Changes in version 1.3-5 (2018-04-03) - fix references to car datasets -> carData - fix error resulting from car 3.0 changes - bump pkg version Changes in version 1.3-4 (2017-09-15) - Added Diabetes data, a nice example of heterogeneity of covariances Changes in version 1.3-3 (2016-10-21) - Added Parenting data, a simple one-way MANOVA design (used in TQMP paper) - Prepare for CRAN release Changes in version 1.3-1 (2016-06-14) - 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. - Re-built vignettes Changes in version 1.3-0 (2016-06-04) - In cqplot, pch, col, and cex can now be vectors - Bump version, prepare for release Changes in version 1.2-1 - in coefplot.mlm(), now pass label.pos to label.ellipse() - added Mahalanobis() for classical and robust squared distances; handles missing data gracefully and provides a confidence envelope - added SocialCog data [Thx: Leah Hartman] - added cqplot() of Mahalanobis distances as a plot method for an mlm and for multivariate data Changes in version 1.2-0 (2016-05-19) - covEllipses() extended to more than two variables, giving a scatterplot matrix plot - plot.boxM() now can plot other measures of the eigenvalues of the covariance matrices, useful for understanding the properties of the test. - added bartlettTests() for a collection of univariate Bartlett tests - added leveneTests() for a collection of univariate Levene tests - added NeuroCog data, a simple one-way MANOVA [Thx: Leah Hartman] - label.ellipse() now uses a much more flexible label.pos argument for positioning the text labels used in heplot() and friends. Changes in version 1.1-0 (2016-03-26) - Added boXM from biotools - Fleshed out boxM() with formula, lm, plot and summary methods - added plot.boxM() method - Added covEllipses() methods for plotting (possibly robust) covariance ellipses - Added colDevs() as a utility and for use in other multivariate tests. - Added data(AddHealth), a simple example of a one-way MANOVA with nice views [thx: Russell Warne] - summary.boxM() now returns the calculated statistics and can be used to construct other kinds of plots. - plot.boxM() gets a gplabel argument to provide a label for the group factor - pairs.mlm() gets a var.cex argument to control size of variable labels - Added logdetCI() for confidence intervals on log determinants of covariance matrices (experimental) - Now use logdetCI() in plot.boxM() Changes in version 1.0-16 (2015-07-13) - use importsFrom for base packages Changes in version 1.0-15 (2015-04-18) - Fix require -> requireNamespace Changes in version 1.0-14 - Updated broken urls in documentation - Removed vcov.mlm from exports to conform to CRAN policies - Now use rgl:: for rgl functions in *3d.R - Removed robmlm.default, robmlm.formula from exports - Imports: rgl Changes in version 1.0-12 (2014-07-02) - Removed Authors: to satisfy CRAN nits - Fixed doc for Hernior.Rd - Now importsFrom(MASS) rather than Depends: Changes in version 1.0-11 (2013-08-21) - Cosmetic changes to pass CRAN checks - For R 3.1.0, revised vcov.mlm() to avoid calling summary.mlm() directly - fixed long lines in .Rd files for R 3.0.1 checks - removed require() calls for MASS & car (Depends:) - removed ::: calls to car and stats Changes in version 1.0-10 - Added demo/HE-other.R, exploring other representations of HE plots Changes in version 1.0-9 - Added Pottery2 data, extending car::Pottery - Fixed heplot3d to minimize striated rendering of ellipsoids, and also modified default colors and fill.alpha Changes in version 1.0-8 (2013-04-11) - In heplot.mlm(), added ... to label.ellipse to be able to pass cex= - Added NLSY data with examples of testing linearHypotheses - In heplot3d(), rgl.* functions replaced with *3d() equivalents - Extended gsorth description and examples Changes in version 1.0-7 (2013-02-08) - Made some heplot3d() examples \dontrun{} to reduce example execution time to satisfy CRAN nits Changes in version 1.0-6 - Added label.ellipse() as a more general exported function. - heplot() gets a label.pos= argument allowing more flexible labeling, with the label position to be specified (bottom, left, top, right or center) - Added coefplot S3 generic and a coefplot.mlm method to plot ellipses for mlm coefficients. This generalizes car::confidenceEllipse to the mlm setting. Changes in version 1.0-4 - 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. - interpPlot gains add=, points= and col= arguments for greater control of graphical parameters. Changes in version 1.0-2 (2012-12-17) - Added Schooldata and further example of comparison of mlm with robmlm() Changes in version 1.0-1 - Added simple robmlm methods for robust MLMss with print and summary methods and a vcov.mlm method. This allows heplot() and related methods to show robust HE plots. Changes in version 1.0-0 (2012-08-08) - Added Olso data - Corrected error in demo/OBK.R Changes in version 0.9-13 - Extended HE-examples vignette with example based on SocGrades data Changes in version 0.9-12 (2012-05-17) - Added Skulls data - Extended HE-examples vignette with example based on Skulls data - 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. - Extended Hernior.Rd examples to show 1D plots in canonical space; added a discussion of this example to HE-examples vignette. - Extended SocGrades.Rd examples to show plots in canonical space. Changes in version 0.9-11 (2012-02-12) - Added Probe1, Probe2 data sets-- repeated measures design - Added Sake data Changes in version 0.9-10 (2011-10-17) - Fixed Authors@R in DESCRIPTION for R 2.14.x - Added var.labels argument to pairs.mlm - gsorth.R: Made sd() a local function to avoid deprecated warnings Changes in version 0.9-9 - Added data(Hernior), another MMRA, cancorr example data set - Added data(SocGrades), another MANOVA, MMRA, cancorr example data set - Corrected buglet with fill.alpha in heplot Changes in version 0.9-8 (2011-05-21) - Added an MMRA example to HE-examples vignette - Added err.label argument to heplot and heplot3d to allow changing the label for the error ellipsoid Changes in version 0.9-7 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 datavis.ca o Fixed buglet in gsorth when matrix has no row/col names [Thx: mekki@mektek.ca] o Fixed buglet in etasq.lm with partial=FALSE [Thx: i.e.holliday@aston.ac.uk] 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 Changes in version 0.9-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) Changes in version 0.9-0 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) Changes in version 0.8-11 (2009-12-23) o Minor fixes to heplot1d o Added contrasts example to RootStock.Rd o Added WeightLoss data -- doubly multivariate o Added mark.H0 Changes in version 0.8-10 (2009-10-13) o Fixes to cross-references in .Rd files. Changes in version 0.8-9 (2009-07-23) o Added data(RootStock) o heplot.mlm, heplot3d.mlm now include center in the returned object Changes in version 0.8-8 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 Changes in version 0.8-6 (2009-04-19) 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 Changes in version 0.8-5 (2009-04-03) o Minor documentation changes for Rdoc 2 o Michael Friendly as maintainer Changes in version 0.8-4 (2008-11-18) o Documentation additions o added CITATION file Changes in version 0.8-3 - Changes to heplot3d.mlm: o added xlim, ylim, zlim arguments Changes in version 0.8-2 - 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 Changes in version 0.8-1 (2008-11-03) o heplot now passes ... not only to plot() but to calls to text() and points(). Changes in version 0.8-0 (2007-01-31) - Initial version released to CRAN.