Description Usage Arguments Details Value Author(s) References See Also Examples
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.
1 2 |
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. |
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
.
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. |
Jari Miettinen
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.
fICA, nonlinearities, FOBI, k_JADE
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | 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)
|
W :
[,1] [,2] [,3]
[1,] 1.965751821 0.8593998 1.8771397
[2,] -0.006599323 0.1799098 1.6277043
[3,] 0.167839648 -0.3673192 0.5268767
gs :
[1] "pow3" "tanh" "gaus" "lt0.6" "rt0.6" "bt" "bt0.2" "bt0.4" "bt0.6"
[10] "bt0.8" "bt1.0" "bt1.2" "bt1.4" "bt1.6"
used_gs :
[1] "bt1.4" "lt0.6"
alphas :
comp 1 comp 2 comp 3
pow3 0.6252194 3.6174308 7.519113
tanh 1.0412404 2.7588144 4.624521
gaus 1.0825141 3.1015144 5.053815
lt0.6 2.8875637 0.4493405 18.254252
rt0.6 2.0068585 1.9723875 14.633941
bt 0.8863231 2.9314945 5.382017
bt0.2 0.8590170 2.8595016 5.416907
bt0.4 0.7767836 2.6941177 5.636684
bt0.6 0.6561328 2.5585345 5.933521
bt0.8 0.5337060 2.5112930 6.306461
bt1.0 0.4357417 2.6814981 6.686034
bt1.2 0.3600973 3.0441593 7.226032
bt1.4 0.2952558 3.5244530 7.879067
bt1.6 0.3526961 4.0822708 8.642559
init_est :
[1] "FOBI"
[,1] [,2] [,3]
[1,] 1.965751821 0.8593998 1.8771397
[2,] -0.006599323 0.1799098 1.6277043
[3,] 0.167839648 -0.3673192 0.5268767
Loading required package: JADE
[1] 0.07710839
nonlinearities package:fICA R Documentation
_S_e_t _o_f _N_o_n_l_i_n_e_a_r_i_t_i_e_s _f_o_r _A_d_a_p_t_i_v_e _D_e_f_l_a_t_i_o_n-_b_a_s_e_d _F_a_s_t_I_C_A _M_e_t_h_o_d
_D_e_s_c_r_i_p_t_i_o_n:
The default set of nonlinearities with their first derivatives and
names used in 'adapt_fICA'.
_U_s_a_g_e:
gf
dgf
Gf
gnames
_D_e_t_a_i_l_s:
The set of nonlinearities includes both well-known functions
(_pow3_, _tanh_ and _gaus_) and the ones suggested in Miettinen et
al. (2014).
The object 'gf' contains the nonlinearities which are:
gf[[1]] pow3 x^3
gf[[2]] tanh tanh(x)
gf[[3]] gaus exp(-(x)^2/2)
gf[[4]] lt0.6 (x+0.6)_-^2
gf[[5]] rt0.6 (x-0.6)_+^2
gf[[6]] bt (x)_+^2-(x)_-^2
gf[[7]] bt0.2 (x-0.2)_+^2-(x+0.2)_-^2
gf[[8]] bt0.4 (x-0.4)_+^2-(x+0.4)_-^2
gf[[9]] bt0.6 (x-0.6)_+^2-(x+0.6)_-^2
gf[[10]] bt0.8 (x-0.8)_+^2-(x+0.8)_-^2
gf[[11]] bt1.0 (x-1.0)_+^2-(x+1.0)_-^2
gf[[12]] bt1.2 (x-1.2)_+^2-(x+1.2)_-^2
gf[[13]] bt1.4 (x-1.4)_+^2-(x+1.4)_-^2
gf[[14]] bt1.6 (x-1.6)_+^2-(x+1.6)_-^2
The objects 'dgf', 'Gf' and 'gnames' contain the corresponding
first derivatives, integrals and names in the same order.
For skew sources _lt0.6_ and _rt0.6_ combined are more efficient
than the commonly used _skew_. The rest of the functions are
useful for example for sources with multimodal density functions.
The user can easily submit a own set or modify the set suggested
here. See the example below and the examples in 'adapt_fICA'.
_A_u_t_h_o_r(_s):
Jari Miettinen
_R_e_f_e_r_e_n_c_e_s:
Hyvarinen, A. and Oja, E. (1997), A fast fixed-point algorithm for
independent component analysis, _Neural Computation_, vol. 9,
1483-1492.
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.
_S_e_e _A_l_s_o:
adapt_fICA
_E_x_a_m_p_l_e_s:
# leaving out functions from the default set and adding a new function
g <- function(x){x^2}
dg <- function(x){2*x}
G <- function(x){x^3/3}
gf_new <- c(gf[-c(6,8,10)],g)
dgf_new <- c(dgf[-c(6,8,10)],dg)
Gf_new <- c(Gf[-c(6,8,10)],G)
gnames_new <- c(gnames[-c(6,8,10)],"skew")
W :
[,1] [,2] [,3]
[1,] 1.965751824 0.8593998 1.8771398
[2,] -0.006599413 0.1799098 1.6277043
[3,] 0.167839606 -0.3673192 0.5268767
gs :
[1] "pow3" "tanh" "gaus" "lt0.6" "bt" "bt0.2" "bt0.6" "bt1.0" "bt1.2"
[10] "bt1.4" "bt1.6" "skew"
used_gs :
[1] "bt1.4" "lt0.6"
alphas :
comp 1 comp 2 comp 3
pow3 0.6252194 3.6174308 7.519113
tanh 1.0412404 2.7588144 4.624521
gaus 1.0825141 3.1015144 5.053815
lt0.6 2.8875637 0.4493405 18.254252
bt 0.8863231 2.9314945 5.382017
bt0.2 0.8590170 2.8595016 5.416907
bt0.6 0.6561328 2.5585345 5.933521
bt1.0 0.4357417 2.6814981 6.686034
bt1.2 0.3600973 3.0441593 7.226032
bt1.4 0.2952558 3.5244530 7.879067
bt1.6 0.3526961 4.0822708 8.642559
skew 0.8315143 4.3416583 5.748428
init_est :
[1] "FOBI"
[1] 0.07710849
W :
[,1] [,2] [,3]
[1,] 1.9695969557 0.8483238 1.8837848
[2,] -0.0002756543 0.1906800 1.6267659
[3,] 0.1143751536 -0.3871005 0.5056299
gs :
[1] "tanh"
used_gs :
[1] "tanh" "tanh"
alphas :
comp 1 comp 2 comp 3
tanh 1.04124 2.758814 4.624521
init_est :
[1] "FOBI"
[1] 0.0949084
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.