Last data update: 2014.03.03

R: Principal Components Analysis using Robust Estimators
prcomp.robustR Documentation

Principal Components Analysis using Robust Estimators

Description

A function that performs PCA using the robust estimators "S-estimator","MCD" and "MVE".

Usage

prcomp.robust(x, robust = c("S-estimator","MCD", "MVE"),
                        nsamp = 10*nrow(x), ...)
## S3 method for class 'robust'
prcomp(x, robust = c("S-estimator","MCD", "MVE"),
                        nsamp = 10*nrow(x), ...)

Arguments

x

a matrix. Contains the data to perform PCA on.

robust

The robust estimator to use. One of "S-estimator", "MCD", or "MVE". The default robust estimator is the S-estimator with 25% breakdown point.

nsamp

The number of subsamples that the robust estimator should use. This defaults to 10 times the number of rows in the matrix.

...

Further arguments that can be passed to the robust estimator

Details

The calculation is done by a singular value decomposition of the robust 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. The scree plot can be used to determine the number k of principal components preserved in the analysis, looking for the “elbow” or the first important bend in the line. A biplot can also be generated to represent the values of the first two principal components (PCs) and the contribution of each variable to these components in the same plot (see Supplementary Material of Cohen Freue et al. (2007)).

Value

prcomp.robust returns a 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 matrix calculated using the robust argument, 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

the value of the rotated data (the centered and scaled) data multiplied by the rotation matrix) is returned.

Author(s)

Justin Harrington harringt@stat.ubc.ca and Gabriela V. Cohen Freue gcohen@stat.ubc.ca.

References

Cohen Freue, G. V. and Hollander, Z. and Shen, E. and Zamar, R. H. and Balshaw, R. and Scherer, A. and McManus, B. and Keown, P. and McMaster, W. R. and Ng, R. T. (2007) ‘MDQC: A New Quality Assessment Method for Microarrays Based on Quality Control Reports’. Bioinformatics 23, 3162 – 3169.

See Also

mdqc, prcomp

Examples

data(allQC) ## Loads the dataset allQC

prout <- prcomp.robust(allQC)
screeplot(prout, type="line")
biplot(prout)

prout <- prcomp.robust(allQC, robust="MCD")
screeplot(prout, type="line")
biplot(prout)

prout <- prcomp.robust(allQC, robust="MVE")
screeplot(prout, type="line")
biplot(prout)

Results


R version 3.3.1 (2016-06-21) -- "Bug in Your Hair"
Copyright (C) 2016 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)

R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under certain conditions.
Type 'license()' or 'licence()' for distribution details.

R is a collaborative project with many contributors.
Type 'contributors()' for more information and
'citation()' on how to cite R or R packages in publications.

Type 'demo()' for some demos, 'help()' for on-line help, or
'help.start()' for an HTML browser interface to help.
Type 'q()' to quit R.

> library(mdqc)
Loading required package: cluster
Loading required package: MASS
> png(filename="/home/ddbj/snapshot/RGM3/R_BC/result/mdqc/prcomp.robust.Rd_%03d_medium.png", width=480, height=480)
> ### Name: prcomp.robust
> ### Title: Principal Components Analysis using Robust Estimators
> ### Aliases: prcomp.robust
> ### Keywords: multivariate robust
> 
> ### ** Examples
> 
> data(allQC) ## Loads the dataset allQC
> 
> prout <- prcomp.robust(allQC)
> screeplot(prout, type="line")
> biplot(prout)
> 
> prout <- prcomp.robust(allQC, robust="MCD")
> screeplot(prout, type="line")
> biplot(prout)
> 
> prout <- prcomp.robust(allQC, robust="MVE")
> screeplot(prout, type="line")
> biplot(prout)
> 
> 
> 
> 
> 
> dev.off()
null device 
          1 
>