adapt_fICA {fICA} | R Documentation |
Adaptive Deflation-based FastICA Method for Independent Component Analysis
Description
The adaptive deflation-based FastICA method for the independent component problem. The function estimates the unmixing matrix by finding, for each component separately, the best nonlinearity from a set of nonlinearities.
Usage
adapt_fICA(X, gs=gf, dgs=dgf, name=gnames, kj=0, inR=TRUE,
eps=1e-06, maxiter=100)
Arguments
X |
a numeric data matrix. Missing values are not allowed. |
gs |
a list of functions containing the nonlinearities. |
dgs |
a list of functions containing the first derivatives of the nonlinearities. |
name |
a list of strings containing the names of the nonlinearities. |
kj |
defines the initial estimate of the unmixing matrix, see details. |
inR |
a logical which indicates whether R or C is used for computations. If FALSE, the default set of nonlinearities gf is used. |
eps |
convergence tolerance. |
maxiter |
maximum number of iterations. |
Details
The algorithm first finds initial estimates of the sources. The method to find the estimates is decided by the choice of the argument kj
. If the value of kj
is an integer between 1 and number of the sources, then the method is kj
-JADE, otherwise it is FOBI.
For the meaning of the value kj
used as kj
-JADE, see the help for k_JADE
.
Value
A list with class 'bss' containing the following components:
W |
estimated unmixing matrix. |
gs |
nonlinearities that were available. |
used_gs |
nonlinearities, in order of appearance, that were used. The last row of the unmixing matrix follows directly from the other rows, and hence no nonlinearity is connected to it. |
alphas |
the statistics for the choice of the nonlinearities. |
init_est |
method that was used for the initial estimate (FOBI or k-JADE). |
S |
estimated source components standardized to have mean 0 and unit variances. |
Author(s)
Jari Miettinen
References
Hyvarinen, A. and Oja, E. (1997), A fast fixed-point algorithm for independent component analysis, Neural Computation, vol. 9, 1483–1492.
Nordhausen, K., Ilmonen, P., Mandal, A., Oja, H. and Ollila, E. (2011), Deflation-based FastICA reloaded, in Proc. "19th European Signal Processing Conference 2011 (EUSIPCO 2011)", Barcelona, 1854–1858.
Miettinen, J., Nordhausen, K., Oja, H. and Taskinen, S. (2014), Deflation-based FastICA with adaptive choices of nonlinearities, IEEE Transactions on Signal Processing, 62(21), 5716–5724.
See Also
fICA, nonlinearities, FOBI, k_JADE
Examples
A <- matrix(rnorm(9),3,3)
s1 <- rt(1000,6)
s2 <- rexp(1000,1)
s3 <- runif(1000)
S <- cbind(s1,s2,s3)
X <- S %*% t(A)
res1<-adapt_fICA(X, inR=FALSE)
res1
coef(res1)
plot(res1)
require(JADE)
MD(coef(res1),A)
# changing the set of candidate nonlinearities
?nonlinearities
g <- function(x){x^2}
dg <- function(x){2*x}
gf_new <- c(gf[-c(5,8,10)],g)
dgf_new <- c(dgf[-c(5,8,10)],g)
gnames_new <- c(gnames[-c(5,8,10)],"skew")
res2<-adapt_fICA(X, gs=gf_new, dgs=dgf_new, name=gnames_new)
res2
MD(coef(res2),A)
# reloaded FastICA using tanh
res3<-adapt_fICA(X, gs=gf[2], dgs=dgf[2], name=gnames[2])
res3
MD(coef(res3),A)