Learn R Programming

BSSasymp (version 1.2-3)

ASCOV_FastICAdefl_est: Asymptotic covariance matrices of deflation-based FastICA estimates

Description

The regular deflation-based FastICA finds the independent components one by one using a nonlinearity function. The adaptive deflation-based FastICA chooses, for each component separately, the best nonlinearity from a set of nonlinearities. This function computes estimates of the covariance matrices of the different deflation-based FastICA mixing and unmixing matrix estimates.

Usage

ASCOV_FastICAdefl_est(X, gs, dgs, Gs=NULL, method="adapt", 
                      name=NULL, mixed=TRUE)

Arguments

X

a numeric data matrix.

gs

a list of nonlinearity functions.

dgs

the first derivative functions of the nonlinearity functions.

Gs

the integral function of the nonlinearity function. Is needed only when method="G".

method

"adapt" or "G", see details.

name

a list of strings, which labels the nonlinearities.

mixed

logical, see details.

Value

A list with the following components:

W

estimated mean of the unmixing matrix estimate.

COV_W

estimated covariance matrix of the unmixing matrix estimate.

A

estimated mean of the mixing matrix estimate.

COV_A

estimated covariance matrix of the mixing matrix estimate.

used_gs

indicates which nonlinearity is used in estimation of each rows of the unmixing matrix.

Details

Depending on the argument method, the function computes the asymptotic covariance matrices for two different extraction orders of the independent components. The choice method="adapt" picks the adaptive deflation-based FastICA estimate, which extracts the components in asymptotically optimal order and uses the best nonlinearity from the set of nonlinearities gs. When method="G", the order is based on the deviance from normality measured by Gs. This method uses only one nonlinearity, and if gs and dgs contain more than one function, the first one is taken.

If mixed is TRUE, then X will be transformed by the adaptive FastICA estimate. The option FALSE can be used, for example, to estimate the covariance when X are source estimates given by some other method than FastICA.

References

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.

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.

See Also

ASCOV_FastICAdefl, adapt_fICA

Examples

Run this code
# NOT RUN {
# source components have uniform- and exponential(1)- distribution  
s1 <- runif(1000,-sqrt(3),sqrt(3))
s2 <- rexp(1000)
S <- cbind(s1,s2)

# couple of nonlinearities
g_pow3 <- function(x){x^3}
dg_pow3 <- function(x){3*x^2}
G_pow3 <- function(x){x^4/4}

g_gaus <- function(x){x*exp(-x^2/2)}
dg_gaus <- function(x){exp(-x^2/2)-x^2*exp(-x^2/2)}

gs <- c(g_pow3,g_gaus)
dgs <- c(dg_pow3,dg_gaus)

A<-matrix(rnorm(4),2,2)

X <- S %*% t(A)

round(1000*ASCOV_FastICAdefl_est(X, gs=gs, dgs=dgs)$COV_W,2)

round(1000*ASCOV_FastICAdefl_est(X, gs=c(g_pow3), dgs=c(dg_pow3),
Gs=c(G_pow3), method="G")$COV_W,2)

# }

Run the code above in your browser using DataLab