prcomp                  package:mva                  R Documentation

Principal Components Analysis

Description:

     Performs a principal components analysis on the given data matrix
     and returns the results as an object of class `prcomp'.

Usage:

     prcomp(x, retx = TRUE, center = TRUE, scale. = FALSE, tol = NULL)

Arguments:

       x: a matrix (or data frame) which provides the data for the
          principal components analysis.

    retx: a logical value indicating whether the rotated variables
          should be returned.

  center: a logical value indicating whether the variables should be
          shifted to be zero centered. Alternately, a vector of length
          equal the number of columns of `x' can be supplied. The value
          is passed to `scale'.

  scale.: a logical value indicating whether the variables should be
          scaled to have unit variance before the analysis takes place.
          The default is `FALSE' for consistency with S, but in general
          scaling is advisable. Alternately, a vector of length equal
          the number of columns of `x' can be supplied.  The value is
          passed to `scale'.

     tol: a value indicating the magnitude below which components
          should be omitted. (Components are omitted if their standard
          deviations are less than or equal to `tol' times the standard
          deviation of the first component.) With the default null
          setting, no components are omitted.  Other settings for tol
          could be `tol = 0' or `tol = sqrt(.Machine$double.eps)',
          which would omit essentially constant components.

Details:

     The calculation is done by a singular value decomposition of the
     (centered and scaled) data matrix, not by using `eigen' on the
     covariance matrix.  This is generally the preferred method for
     numerical accuracy.  The `print' method for the these objects
     prints the results in a nice format and the `plot' method produces
     a scree plot.

Value:

     `prcomp' returns an list with class `"prcomp"' containing the
     following components: 

    sdev: the standard deviations of the principal components (i.e.,
          the square roots of the eigenvalues of the
          covariance/correlation matrix, though the calculation is
          actually done with the singular values of the data matrix).

rotation: the matrix of variable loadings (i.e., a matrix whose columns
          contain the eigenvectors).  The function `princomp' returns
          this in the element `loadings'.

       x: if `retx' is true the value of the rotated data (the data
          multiplied by the `rotation' matrix) is returned.

References:

     Mardia, K. V., J. T. Kent, and J. M. Bibby (1979) Multivariate
     Analysis, London: Academic Press.

     Venables, W. N. and B. D. Ripley (1997, 9) Modern Applied
     Statistics with S-PLUS, Springer-Verlag.

See Also:

     `princomp', `cor', `cov', `svd', `eigen'.

Examples:

     ## the variances of the variables in the
     ## USArrests data vary by orders of magnitude, so scaling is appropriate
     data(USArrests)
     prcomp(USArrests)  # inappropriate
     prcomp(USArrests, scale = TRUE)
     plot(prcomp(USArrests))
     summary(prcomp(USArrests, scale = TRUE))

