Performs sparse independent principal component analysis on the given data matrix to enable variable selection.
sipca(X, ncomp, mode = c("deflation","parallel"),
fun = c("logcosh", "exp"),
scale = FALSE, max.iter = 200,
tol = 1e-04, keepX = rep(50,ncomp),
w.init=NULL)
a numeric matrix (or data frame) which provides the data for the principal component analysis.
integer, number of independent component to choose. Set by default to 3.
character string. What type of algorithm to use when estimating the unmixing matrix, (partially) matching
one of "deflation"
, "parallel"
. Default set to deflation
.
the function used in approximation to neg-entropy in the FastICA algorithm. Default set to logcosh
, see details of FastICA.
a logical value indicating whether rows of the data matrix X should be standardized beforehand.
integer, maximum number of iterations to perform.
a positive scalar giving the tolerance at which the un-mixing matrix is considered to have converged, see fastICA package.
the number of variable to keep on each dimensions.
initial un-mixing matrix (unlike FastICA, this matrix is fixed here).
pca
returns a list with class "ipca"
containing the following components:
the number of principal components used.
the unmixing matrix of size (ncomp x ncomp)
the mixing matrix of size (ncomp x ncomp
the centered data matrix
the principal components (with sparse independent loadings)
the sparse independent loading vectors
the kurtosis measure of the independent loading vectors
See Details of ipca.
Soft thresholding is implemented on the independent loading vectors to obtain sparse loading vectors and enable variable selection.
Yao, F., Coquery, J. and L<U+00EA> Cao, K.-A. (2011) Principal component analysis with independent loadings: a combination of PCA and ICA. (in preparation)
A. Hyvarinen and E. Oja (2000) Independent Component Analysis: Algorithms and Applications, Neural Networks, 13(4-5):411-430
J L Marchini, C Heaton and B D Ripley (2010). fastICA: FastICA Algorithms to perform ICA and Projection Pursuit. R package version 1.1-13.
ipca
, pca
,
plotIndiv
, plotVar
and http://www.mixOmics.org for more details.
# NOT RUN {
data(liver.toxicity)
# implement IPCA on a microarray dataset
sipca.res <- sipca(liver.toxicity$gene, ncomp = 3, mode="deflation", keepX=c(50,50,50))
sipca.res
# samples representation
plotIndiv(sipca.res, ind.names = liver.toxicity$treatment[, 4],
group = as.numeric(as.factor(liver.toxicity$treatment[, 4])))
# }
# NOT RUN {
plotIndiv(sipca.res, cex = 0.01,
col = as.numeric(as.factor(liver.toxicity$treatment[, 4])),style="3d")
# }
# NOT RUN {
# variables representation
plotVar(sipca.res, cex = 2.5)
# }
# NOT RUN {
plotVar(sipca.res, rad.in = 0.5, cex = 2.5,style="3d")
# }
Run the code above in your browser using DataLab