prcomp {stats} | 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 numeric or complex 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. Alternatively, 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 possibly 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 centred (and scaled if requested) data multiplied by the `rotation` matrix) is returned.

### Note

The signs of the columns of the rotation matrix are arbitrary, and so may differ between different programs for PCA, and even between different builds of R.

### References

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

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

`biplot.prcomp`, `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))
    biplot(prcomp(USArrests, scale = TRUE))

[Package Contents]