| 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)