Compute points on the ellipsoid boundary, mostly for drawing.


predict.ellipsoid(object, n.out=201, ...)
# S3 method for ellipsoid
predict(object, n.out=201, ...)
ellipsoidPoints(A, d2, loc, n.half = 201)

Arguments

object

an object of class ellipsoid, typically from ellipsoidhull(); alternatively any list-like object with proper components, see details below.

n.out, n.half

half the number of points to create.

A, d2, loc

arguments of the auxilary ellipsoidPoints, see below.

...

passed to and from methods.

Details

Note ellipsoidPoints is the workhorse function of predict.ellipsoid a standalone function and method for ellipsoid objects, see ellipsoidhull. The class of object is not checked; it must solely have valid components loc (length \(p\)), the \(p \times p\) matrix cov (corresponding to A) and d2 for the center, the shape (“covariance”) matrix and the squared average radius (or distance) or qchisq(*, p) quantile.

Unfortunately, this is only implemented for \(p = 2\), currently; contributions for \(p \ge 3\) are very welcome.

Value

a numeric matrix of dimension 2*n.out times \(p\).

See also

Examples

## see also example(ellipsoidhull) ## Robust vs. L.S. covariance matrix set.seed(143) x <- rt(200, df=3) y <- 3*x + rt(200, df=2) plot(x,y, main="non-normal data (N=200)")
mtext("with classical and robust cov.matrix ellipsoids")
X <- cbind(x,y) C.ls <- cov(X) ; m.ls <- colMeans(X) d2.99 <- qchisq(0.99, df = 2) lines(ellipsoidPoints(C.ls, d2.99, loc=m.ls), col="green")
if(require(MASS)) { Cxy <- cov.rob(cbind(x,y)) lines(ellipsoidPoints(Cxy$cov, d2 = d2.99, loc=Cxy$center), col="red") }# MASS
#> Loading required package: MASS