pca.nipals | R Documentation |
Implements the Nonlinear Iterative Partial Least Squares (NIPALS) algorithm for computing PCA scores and loadings and intermediate steps to convergence.
pca.nipals(data, ncomps = 1, Iters = 500, start.vec = NULL, tol = 1e-08)
data |
A dataframe |
ncomps |
the number of components to include in the analysis. |
Iters |
Number of iterations |
start.vec |
option for choosing your own starting vector |
tol |
tolernace for convergence |
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.
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 |
Nelson Lee Afanador (nelson.afanador@mvdalab.com)
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.
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
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.