pca.nipals: PCA with the NIPALS algorithm

Description Usage Arguments Details Value Author(s) References Examples

View source: R/pca.nipals.R

Description

Implements the Nonlinear Iterative Partial Least Squares (NIPALS) algorithm for computing PCA scores and loadings and intermediate steps to convergence.

Usage

1
pca.nipals(data, ncomps = 1, Iters = 500, tol = 1e-08)

Arguments

data

A dataframe

ncomps

the number of components to include in the analysis.

Iters

Number of iterations

tol

tolernace for convergence

Details

The NIPALS algorithm is a popular algorithm in multivariate data analysi for computing PCA scores and loadings. This function is specifically designed to help explore the subspace prior to convergence. Currently only mean-centering is employed.

Value

Loadings

Loadings obtained via NIPALS

Scores

Scores obtained via NIPALS

Loading.Space

A list containing the intermediate step to convergence for the loadings

Score.Space

A list containing the intermediate step to convergence for the scores

Author(s)

Nelson Lee Afanador (nelson.afanador@mvdalab.com)

References

There are many good references for the NIPALS algorithm:

Risvik, Henning. "Principal component analysis (PCA) & NIPALS algorithm." (2007).

Wold, Svante, Kim Esbensen, and Paul Geladi. "Principal component analysis." Chemometrics and intelligent laboratory systems 2.1-3 (1987): 37:52.

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
my.nipals <- pca.nipals(iris[, 1:4], ncomps = 4, tol = 1e-08)
names(my.nipals)

#Check results
my.nipals$Loadings
svd(scale(iris[, 1:4], scale = FALSE))$v

nipals.scores <- data.frame(my.nipals$Scores)
names(nipals.scores) <- paste("np", 1:4)
svd.scores <- data.frame(svd(scale(iris[, 1:4], scale = FALSE))$u)
names(svd.scores) <- paste("svd", 1:4)
Scores. <- cbind(nipals.scores, svd.scores)
plot(Scores.)

my.nipals$Loading.Space
my.nipals$Score.Space

mvdalab documentation built on May 30, 2017, 2:40 a.m.