heplot.candisc {candisc}  R Documentation 
Canonical Discriminant HE plots
Description
These functions plot ellipses (or ellipsoids in 3D) in canonical discriminant space representing the hypothesis and error sumsofsquaresandproducts matrices for terms in a multivariate linear model. They provide a lowrank 2D (or 3D) view of the effects for that term in the space of maximum discrimination.
Usage
## S3 method for class 'candisc'
heplot(
mod,
which = 1:2,
scale,
asp = 1,
var.col = "blue",
var.lwd = par("lwd"),
var.cex = par("cex"),
var.pos,
rev.axes = c(FALSE, FALSE),
prefix = "Can",
suffix = TRUE,
terms = mod$term,
...
)
Arguments
mod 
A 
which 
A numeric vector containing the indices of the canonical dimensions to plot. 
scale 
Scale factor for the variable vectors in canonical space. If not specified, the function calculates one to make the variable vectors approximately fill the plot window. 
asp 
Aspect ratio for the horizontal and vertical dimensions. The
defaults, 
var.col 
Color for variable vectors and labels 
var.lwd 
Line width for variable vectors 
var.cex 
Text size for variable vector labels 
var.pos 
Position(s) of variable vector labels wrt. the end point. If not specified, the labels are outjustified left and right with respect to the end points. 
rev.axes 
Logical, a vector of 
prefix 
Prefix for labels of canonical dimensions. 
suffix 
Suffix for labels of canonical dimensions. If

terms 
Terms from the original 
... 
Details
The generalized canonical discriminant analysis for one term in a mlm
is based on the eigenvalues, \lambda_i
, and eigenvectors, V,
of the H and E matrices for that term. This produces uncorrelated canonical
scores which give the maximum univariate F statistics. The canonical HE plot
is then just the HE plot of the canonical scores for the given term.
For heplot3d.candisc
, the default asp="iso"
now gives a
geometrically correct plot, but the third dimension, CAN3, is often small.
Passing an expanded range in zlim
to heplot3d
usually helps.
Value
heplot.candisc
returns invisibly an object of class
"heplot"
, with coordinates for the various hypothesis ellipses and
the error ellipse, and the limits of the horizontal and vertical axes.
Similarly, heploted.candisc
returns an object of class
"heplot3d"
.
Author(s)
Michael Friendly and John Fox
References
Friendly, M. (2006). Data Ellipses, HE Plots and ReducedRank Displays for Multivariate Linear Models: SAS Software and Examples Journal of Statistical Software, 17(6), 142. https://www.jstatsoft.org/v17/i06/ doi:10.18637/jss.v017.i06
Friendly, M. (2007). HE plots for Multivariate General Linear Models. Journal of Computational and Graphical Statistics, 16(2) 421–444. http://datavis.ca/papers/jcgsheplots.pdf, doi:10.1198/106186007X208407.
See Also
candisc
, candiscList
,
heplot
, heplot3d
,
aspect3d
Examples
## Pottery data, from car package
data(Pottery, package = "carData")
pottery.mod < lm(cbind(Al, Fe, Mg, Ca, Na) ~ Site, data=Pottery)
pottery.can <candisc(pottery.mod)
heplot(pottery.can, var.lwd=3)
if(requireNamespace("rgl")){
heplot3d(pottery.can, var.lwd=3, scale=10, zlim=c(3,3), wire=FALSE)
}
# reduce example for CRAN checks time
grass.mod < lm(cbind(N1,N9,N27,N81,N243) ~ Block + Species, data=Grass)
grass.can1 <candisc(grass.mod,term="Species")
grass.canL <candiscList(grass.mod)
heplot(grass.can1, scale=6)
heplot(grass.can1, scale=6, terms=TRUE)
heplot(grass.canL, terms=TRUE, ask=FALSE)
heplot3d(grass.can1, wire=FALSE)
# compare with noniso scaling
rgl::aspect3d(x=1,y=1,z=1)
# or,
# heplot3d(grass.can1, asp=NULL)
## Can't run this in example
# rgl::play3d(rgl::spin3d(axis = c(1, 0, 0), rpm = 5), duration=12)
# reduce example for CRAN checks time
## FootHead data, from heplots package
library(heplots)
data(FootHead)
# use Helmert contrasts for group
contrasts(FootHead$group) < contr.helmert
foot.mod < lm(cbind(width, circum,front.back,eye.top,ear.top,jaw)~group, data=FootHead)
foot.can < candisc(foot.mod)
heplot(foot.can, main="Candisc HE plot",
hypotheses=list("group.1"="group1","group.2"="group2"),
col=c("red", "blue", "green3", "green3" ), var.col="red")