Learn R Programming

stats (version 3.3)

cancor: Canonical Correlations

Description

Compute the canonical correlations between two data matrices.

Usage

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

Arguments

x
numeric matrix ($n \times p_1$), containing the x coordinates.
y
numeric matrix ($n \times p_2$), containing the y coordinates.
xcenter
logical or numeric vector of length $p_1$, 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.

Value

  • A list containing the following components:
  • corcorrelations.
  • xcoefestimated coefficients for the x variables.
  • ycoefestimated coefficients for the y variables.
  • xcenterthe values used to adjust the x variables.
  • ycenterthe values used to adjust the x variables.

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.

References

Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) The New S Language. Wadsworth & Brooks/Cole.

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

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

See Also

qr, svd.

Examples

Run this code
## signs of results are random
pop <- LifeCycleSavings[, 2:3]
oec <- LifeCycleSavings[, -(2:3)]
cancor(pop, oec)

x <- matrix(rnorm(150), 50, 3)
y <- matrix(rnorm(250), 50, 5)
(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)

Run the code above in your browser using DataLab