cancor {mva} | R Documentation

## Canonical Correlations

### Description

Compute the canonical correlations between two data matrices.

### Usage

    cancor(x, y, xcenter = TRUE, ycenter = TRUE)

### Arguments

`x` | numeric matrix (n * p1), containing the x coordinates.
`y` | numeric matrix (n * p2), containing the y coordinates.
`xcenter` | logical or numeric vector of length p1, describing any centering to be done on the x values before the analysis. If `TRUE` (default), subtract the column means. If `FALSE`, do not adjust the columns. Otherwise, a vector of values to be subtracted from the columns.
`ycenter` | analogous to `xcenter`, but for the y values.

### Details

The canonical correlation analysis seeks linear combinations of the `y` variables which are well explained by linear combinations of the `x` variables. The relationship is symmetric as `well explained' is measured by correlations.

### Value

A list containing the following components:

`cor` | correlations.
`xcoef` | estimated coefficients for the `x` variables.
`ycoef` | estimated coefficients for the `y` variables.
`xcenter` | the values used to adjust the `x` variables.
`ycenter` | the values used to adjust the `x` variables.

### References

Hotelling H. (1936). Relations between two sets of variables. Biometrika, 28, 321–327.

Seber, G. A. F. (1984). Multivariate Analysis. New York: Wiley, p. 506f.

### See Also

`qr`, `svd`.

### Examples

    data(LifeCycleSavings)
    pop <- LifeCycleSavings[, 2:3]
    oec <- LifeCycleSavings[, -(2:3)]
    str(cancor(pop, oec))

    x <- matrix(rnorm(150), 50, 3)
    y <- matrix(rnorm(250), 50, 5)
    str(cxy <- cancor(x, y))
    all(abs(cor(x %*% cxy$xcoef,
                y %*% cxy$ycoef)[,1:3] - diag(cxy $ cor)) < 1e-15)
    all(abs(cor(x %*% cxy$xcoef) - diag(3)) < 1e-15)
    all(abs(cor(y %*% cxy$ycoef) - diag(5)) < 1e-15)