Principal Components Analysis

Usage

princomp(x, cor = FALSE, scores = TRUE,
         subset = rep(TRUE, nrow(as.matrix(x))))

print(obj,...)  summary(obj)  plot(obj,...)  predict(obj,...)

Arguments

x a matrix (or data frame) which provides the data for the principal components analysis.
cor a logical value indicating whether the calculation should use the correlation matrix or the covariance matrix.
score a logical value indicating whether the score on each principal component should be calculated.
subset a vector used to select rows (observations) of the data matrix x.
obj an object of class "princomp", as from princomp().

Description

Performs a principal components analysis on the given data matrix and returns the results as a princomp object.

Details

The calculation is done using eigen on the correlation or covariance matrix, as determined by cor. This is done for compatibility with the Splus result (even though alternate forms for x—e.g., a covariance matrix—are not supported as they are in Splus). A preferred method of calculation is to use svd on x, as is done in prcomp.

Note that the scaling of results is affected by the setting of cor. If cor is TRUE then the divisor in the calculation of the sdev is N-1, otherwise it is N. This has the effect that the result is slightly different depending on whether scaling is done first on the data and cor set to FALSE, or done automatically in princomp with cor = TRUE.

The print method for the these objects prints the results in a nice format and the plot method produces a scree plot.

Value

princomp returns a list with class "princomp" containing the following components:
var the variances of the principal components (i.e., the eigenvalues)
load the matrix of variable loadings (i.e., a matrix whose columns contain the eigenvectors).
scale the value of the scale argument.

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). Modern Applied Statistics with S-Plus, Springer-Verlag.

See Also

prcomp, cor, cov, eigen.

Examples

## the variances of the variables in the
## crimes data vary by orders of magnitude
data(crimes)
(pc.cr <- princomp(crimes))
princomp(crimes, cor = TRUE)
princomp(scale(crimes, scale = TRUE, center = TRUE), cor = FALSE)

summary(pc.cr <- princomp(crimes))
loadings(pc.cr)
plot(pc.cr)
biplot(pc.cr)


[Package Contents]