Learn R Programming

FactoMineR (version 1.34)

PCA: Principal Component Analysis (PCA)

Description

Performs Principal Component Analysis (PCA) with supplementary individuals, supplementary quantitative variables and supplementary categorical variables. Missing values are replaced by the column mean.

Usage

PCA(X, scale.unit = TRUE, ncp = 5, ind.sup = NULL, quanti.sup = NULL, quali.sup = NULL, row.w = NULL, col.w = NULL, graph = TRUE, axes = c(1,2))

Arguments

X
a data frame with n rows (individuals) and p columns (numeric variables)
ncp
number of dimensions kept in the results (by default 5)
scale.unit
a boolean, if TRUE (value set by default) then data are scaled to unit variance
ind.sup
a vector indicating the indexes of the supplementary individuals
quanti.sup
a vector indicating the indexes of the quantitative supplementary variables
quali.sup
a vector indicating the indexes of the categorical supplementary variables
row.w
an optional row weights (by default, a vector of 1 for uniform row weights)
col.w
an optional column weights (by default, uniform column weights)
graph
boolean, if TRUE a graph is displayed
axes
a length 2 vector specifying the components to plot

Value

Returns a list including:Returns the individuals factor map and the variables factor map. The plots may be improved using the argument autolab, modifying the size of the labels or selecting some elements thanks to the plot.PCA function.

References

Husson, F., Le, S. and Pages, J. (2010). Exploratory Multivariate Analysis by Example Using R, Chapman and Hall.

See Also

print.PCA, summary.PCA, plot.PCA, dimdesc, Video showing how to perform PCA with FactoMineR

Examples

Run this code
data(decathlon)
res.pca <- PCA(decathlon, quanti.sup = 11:12, quali.sup=13)
## plot of the eigenvalues
## barplot(res.pca$eig[,1],main="Eigenvalues",names.arg=1:nrow(res.pca$eig))
summary(res.pca)
plot(res.pca,choix="ind",habillage=13)
dimdesc(res.pca, axes = 1:2)
## To draw ellipses around the categories of the 13th variable (which is categorical)
plotellipses(res.pca,13)

## Example with missing data
## use package missMDA
## Not run: 
# require(missMDA)
# data(orange)
# nb <- estim_ncpPCA(orange,ncp.min=0,ncp.max=5,method.cv="Kfold",nbsim=50)
# imputed <- imputePCA(orange,ncp=nb$ncp)
# res.pca <- PCA(imputed$completeObs)
# ## End(Not run)

Run the code above in your browser using DataLab