# [R] lda on curves

Murray Jorgensen maj at stats.waikato.ac.nz
Mon Feb 17 04:29:02 CET 2003

```I'm working on a rather interesting consulting problem with a client. A
number of physical variables are measured on a number of cricket bowlers
in the performance of a delivery. An example variable might be a
directional component of angular momentum for a particular joint
measured at a large number (101) of equally spaced timepoints.

Each bowler generates a (fairly smooth) curve for each variable
measured. I decided to represent each curve by a few orthogonal
polynomial constrasts.

There are 4 groups of bowlers corresponding to various speeds of
delivery. I want to use canonical variant analysis to find linear
combinations of my transformed variables discriminating well between the
groups of bowlers.

I used lda() from the MASS library to do this, but examining the output
I notice that the higher-order orthogonal polynomials are getting larger
coefficients than the more important lower-order ones. This is clearly
because some scaling of the variables is being done by lda(), and
because the higher-order polynomial vaiable values are smaller, they are
scaled up.

I would like to turn off this scaling as it is not what is needed in
this problem and will cause the tail to "wag the dog". There is no
obvious parameter to do this in

lda(x,   grouping, prior = proportions, tol = 1.0e-4,
subset, na.action = na.fail,
method, CV = FALSE, nu)

so I thought that I might try a hack. However:

> lda
function (x, ...)
{
if (is.null(class(x)))
class(x) <- data.class(x)
UseMethod("lda", x, ...)
}

Any ideas about how to perform an unscaled canonical variates analysis?

Cheers,

Murray
--
Dr Murray Jorgensen      http://www.stats.waikato.ac.nz/Staff/maj.html
Department of Statistics, University of Waikato, Hamilton, New Zealand
Email: maj at waikato.ac.nz                                Fax 7 838 4155
Phone  +64 7 838 4773 wk    +64 7 849 6486 home    Mobile 021 1395 862

```