pca {labdsv}R Documentation

Principal Components Analysis

Description

Principal components analysis is a eigenanalysis of a correlation or covariance matrix used to project a high-dimensional system to fewer dimensions.

Usage

pca(mat, cor = FALSE, dim = min(nrow(mat),ncol(mat)))
## S3 method for class 'pca'
summary(object, dim = length(object$sdev), ...)
## S3 method for class 'pca'
scores(x, labels = NULL, dim = length(x$sdev), ...)
## S3 method for class 'pca'
loadings(x, dim = length(x$sdev), digits = 3, cutoff = 0.1, ...)
## S3 method for class 'pca'
varplot(x, dim=length(x$sdev),...)

Arguments

mat

a matrix or data.frame of interest, samples as rows, attributes as columns

cor

logical: whether to use a correlation matrix (if TRUE), or covariance matrix (if FALSE)

dim

the number of dimensions to return

object

an object of class ‘pca’

x

an object of class ‘dsvord’ and type='pca'

labels

an (optional) vector of labels to identify points

digits

number of digits to report

cutoff

threshold to suppress printing small values

...

arguments to pass to function summary or graphics arguments

Details

PCA is a common multivariate technique. The version here is simply a wrapper for the prcomp function to make its use and plotting consistent with the other LabDSV functions.

Value

an object of class "pca", a list with components:

scores

a matrix of the coordinates of the samples in the reduced space

loadings

a matrix of the contributions of the variables to the axes of the reduced space.

sdev

a vector of standard deviations for each dimension

Note

The current version of pca is based on the prcomp function, as opposed to the princomp function. Nonetheless, it maintains the more conventional labels "scores" and "loadings", rather than x and rotation. prcomp is based on a singular value decomposition algorithm, as has worked better in my experience. In the rare cases where it fails, you may want to try princomp.

Author(s)

David W. Roberts droberts@montana.edu

See Also

princomp, prcomp, pco, nmds, fso, cca

Examples

data(bryceveg) # returns a vegetation data.frame
data(brycesite)
x <- pca(bryceveg,dim=10)  # returns the first 10 eigenvectors 
                           # and loadings
plot(x)
surf(x,brycesite$elev)
points(x,brycesite$depth=='deep')

[Package labdsv version 2.1-0 Index]