dudi.pca {ade4}R Documentation

Principal Component Analysis

Description

dudi.pca performs a principal component analysis of a data frame and returns the results as objects of class pca and dudi.

Usage

dudi.pca(df, row.w = rep(1, nrow(df))/nrow(df), 
    col.w = rep(1, ncol(df)), center = TRUE, scale = TRUE, 
    scannf = TRUE, nf = 2)

Arguments

df a data frame with n rows (individuals) and p columns (numeric variables)
row.w an optional row weights (by default, uniform row weights)
col.w an optional column weights (by default, unit column weights)
center a logical or numeric value, centring option
if TRUE, centring by the mean
if FALSE no centring
if a numeric vector, its length must be equal to the number of columns of the data frame df and gives the decentring
scale a logical value indicating whether the column vectors should be normed for the row.w weighting
scannf a logical value indicating whether the screeplot should be displayed
nf if scannf FALSE, an integer indicating the number of kept axes

Value

Returns a list of classes pca and dudi (see dudi) containing the used information for computing the principal component analysis :
tab the data frame to be analyzed depending of the transformation arguments (center and scale)
cw the column weights
lw the row weights
eig the eigenvalues
rank the rank of the analyzed matrice
nf the number of kept factors
c1 the column normed scores i.e. the principal axes
l1 the row normed scores
co the column coordinates
li the row coordinates i.e. the principal components
call the call function
cent the p vector containing the means for variables (Note that if center = F, the vector contains p 0)
norm the p vector containing the standard deviations for variables i.e. the root of the sum of squares deviations of the values from their means divided by n (Note that if norm = F, the vector contains p 1)

Author(s)

Daniel Chessel
Anne B Dufour dufour@biomserv.univ-lyon1.fr

See Also

prcomp, princomp in the mva library

Examples

data(deug)
deug.dudi <- dudi.pca(deug$tab, center = deug$cent, 
    scale = FALSE, scan = FALSE)
par(mfrow = c(2,2))
s.class(deug.dudi$li, deug$result, cpoint = 1)
s.arrow(deug.dudi$c1, lab = names(deug$tab))
deug.dudi1 <- dudi.pca(deug$tab, center = TRUE, 
    scale = TRUE, scan = FALSE)
s.class(deug.dudi1$li, deug$result, cpoint = 1)
s.corcircle(deug.dudi1$co, lab = names(deug$tab), 
    full = FALSE, box = TRUE)
par(mfrow = c(1,1))

# for interpretations
par(mfrow = c(3,3))
par(mar = c(2.1,2.1,2.1,1.1))
for(i in 1:9) { 
hist(deug.dudi$tab[,i], xlim = c(-40,40), breaks = seq(-45, 35, by = 5), 
    prob = TRUE, right = FALSE, main = names(deug$tab)[i], xlab = "", 
    ylim = c(0,0.10))
abline(v = 0, lwd = 3)
}
par(mfrow = c(1,1))

Worked out examples


> library(ade4)
> ### Name: dudi.pca
> ### Title: Principal Component Analysis
> ### Aliases: dudi.pca
> ### Keywords: multivariate
> 
> ### ** Examples
> 
> data(deug)
> deug.dudi <- dudi.pca(deug$tab, center = deug$cent, 
+     scale = FALSE, scan = FALSE)
> par(mfrow = c(2,2))
> s.class(deug.dudi$li, deug$result, cpoint = 1)
> s.arrow(deug.dudi$c1, lab = names(deug$tab))
> deug.dudi1 <- dudi.pca(deug$tab, center = TRUE, 
+     scale = TRUE, scan = FALSE)
> s.class(deug.dudi1$li, deug$result, cpoint = 1)
> s.corcircle(deug.dudi1$co, lab = names(deug$tab), 
+     full = FALSE, box = TRUE)
> par(mfrow = c(1,1))
> 
> # for interpretations
> par(mfrow = c(3,3))
> par(mar = c(2.1,2.1,2.1,1.1))
> for(i in 1:9) { 
+ hist(deug.dudi$tab[,i], xlim = c(-40,40), breaks = seq(-45, 35, by = 5), 
+     prob = TRUE, right = FALSE, main = names(deug$tab)[i], xlab = "", 
+     ylim = c(0,0.10))
+ abline(v = 0, lwd = 3)
+ }
> par(mfrow = c(1,1))
> 
> 
> 
> 

[Package ade4 Index]