Principal Components Analysis
Principal components analysis is a eigenanalysis of a correlation or covariance matrix used to project a high-dimensional system to fewer dimensions.
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) varplot.pca(x, dim=length(x$sdev))
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 |
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.
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 |
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
.
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')
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.