clusterFastICARuns: Run of fastICA and JADE algorithms

View source: R/runAn.R

clusterFastICARunsR Documentation

Run of fastICA and JADE algorithms

Description

This function runs the fastICA algorithm several times with random initializations. The obtained components are clustered and the medoids of these clusters are used as the final estimates. The returned estimates are ordered by decreasing Iq values which measure the compactness of the clusters (see details).

Usage

  clusterFastICARuns(X, nbComp, nbIt = 100,
    alg.type = c("deflation", "parallel"),
    fun = c("logcosh", "exp"), maxit = 500, tol = 10^-6,
    funClus = c("hclust", "agnes", "pam", "kmeans"),
    row.norm = FALSE, bootstrap = FALSE, ...)

Arguments

X

A data matrix with n rows representing observations (e.g genes) and p columns representing variables (e.g samples).

nbComp

The number of components to be extracted.

nbIt

The number of iterations of FastICA

alg.type

If alg.type="parallel" the components are extracted simultaneously (the default), if alg.type="deflation" the components are extracted one at a time, see fastICA.

fun

The functional form of the G function used in the approximation to neg-entropy (see 'details' of the help of function fastICA).

row.norm

a logical value indicating whether rows of the data matrix X should be standardized beforehand (see help of function fastICA)

maxit

The maximum number of iterations to perform.

tol

A positive scalar giving the tolerance at which the un-mixing matrix is considered to have converged.

funClus

The clustering function to be used to cluster the estimates

bootstrap

if TRUE the data is bootstraped before each fastICA iteration, else (default) only random initializations are done

...

Additional parameters for codefunClus

Details

This function implements in R fastICA iterations followed by a clustering step, as defined in the matlab package 'icasso'. Among the indices computed by icasso, only the Iq index is currently computed. As defined in 'icasso', the Iq index measures the difference between the intra-cluster similarity and the extra-cluster similiarity. No visualization of the clusters is yet available.

If bootstrap=TRUE a bootstrap (applied to the observations) is used to perturb the data before each iteration, then function fastICA is applied with random initializations.

By default, in 'icasso', agglomerative hierarchical clustering with average linkage is performed. To use the same clustering, please use funClus="hclust" and method="average". But this function also allows you to apply the clustering of your choice among kmeans, pam, hclust, agnes by specifying funClus and adding the adequat additional parameters.

See details of the functions fastICA.

Value

A list consisting of:

A

the estimated mixing matrix

S

the estimated source matrix

, itemWthe estimated unmixing matrix,

Iq

Iq indices.

Author(s)

Anne Biton

Examples

## generate a data
set.seed(2004);
M <- matrix(rnorm(5000*6,sd=0.3),ncol=10)
M[1:100,1:3] <- M[1:100,1:3] + 2
M[1:200,1:3] <- M[1:200,4:6] +1

## Random initializations are used for each iteration of FastICA
## Estimates are clustered using hierarchical clustering with average linkage
res <- clusterFastICARuns(X=M, nbComp=2, alg.type="deflation",
                          nbIt=3, funClus="hclust", method="average")

## Data are boostraped before each iteration and random initializations
## are used for each iteration of FastICA
## Estimates are clustered using hierarchical clustering with ward
res <- clusterFastICARuns(X=M, nbComp=2, alg.type="deflation",
                          nbIt=3, funClus="hclust", method="ward")

bitona/MineICA documentation built on April 23, 2023, 1:41 p.m.