ASCOV_FastICAdefl {BSSasymp} | R Documentation |
Asymptotic covariance matrices of different 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 asymptotic covariance matrices of the different deflation-based FastICA mixing and unmixing matrix estimates.
Usage
ASCOV_FastICAdefl(sdf, gs, dgs, Gs=NULL, method="adapt",
name=NULL, supp=NULL, A=NULL, ...)
Arguments
sdf |
a list of density functions of the sources scaled so that the mean is 0 and variance is 1. |
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 |
"adapt", "G" or "regular", see details. |
name |
a list of strings, which labels the nonlinearities. |
supp |
a two column matrix, where each row gives the lower and the upper limit used in numerical integration for the corresponding source component which is done using |
A |
the mixing matrix, identity matrix as default. |
... |
arguments to be passed to |
Details
Depending on the argument method
, the function computes the asymptotic covariance matrices for three 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
.
The other two methods use only one nonlinearity, and if gs
and dgs
contain more than one function, the first one is taken. When method="G"
, the order is based on the deviance from normality measured by Gs
. When method="regular"
, the order is that of sdf
.
The signs of the components are fixed so that the sum of the elements of each row of the unmixing matrix is positive.
Since the unmixing matrix has asymptotic normal distribution, we have a connection between the asymptotic variances and the minimum distance index, which is defined as
MD(\hat{W},A)=\frac{1}{\sqrt{p-1}} \inf_{P D}{||PD \hat{W} A-I||,}
where \hat{W}
is the unmixing matrix estimate, A
is the mixing matrix, P
is a permutation matrix and D
a diagonal matrix with nonzero diagonal entries. If \hat{W}A
converges to the identity matrix, the limiting expected value of n(p-1)MD^2
is the sum of the asymptotic variances of the off-diagonal elements of \hat{W}A
. Here n
is the sample size and p
is the number of components.
Value
A list with the following components:
W |
mean of the unmixing matrix estimate. |
COV_W |
asymptotic covariance matrix of the unmixing matrix estimate. |
A |
mean of the mixing matrix estimate. |
COV_A |
asymptotic covariance matrix of the mixing matrix estimate. |
EMD |
the limiting expected value of |
used_gs |
indicates which nonlinearity is used in estimation of each rows of the unmixing matrix. |
Author(s)
Jari Miettinen
References
Ilmonen, P., Nordhausen, K., Oja, H. and Ollila, E. (2010): A New Performance Index for ICA: Properties, Computation and Asymptotic Analysis. In Vigneron, V., Zarzoso, V., Moreau, E., Gribonval, R. and Vincent, E. (editors) Latent Variable Analysis and Signal Separation, 229–236, Springer.
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_est, adapt_fICA, integrate
Examples
# source components have uniform- and exponential(1)- distribution
fu <- function(x){1/(sqrt(3)*2)}
fe <- function(x){exp(-x-1)}
supp <- matrix(c(-sqrt(3),sqrt(3),-1,Inf), nrow=2, ncol=2, byrow=TRUE)
# 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)
res1 <- ASCOV_FastICAdefl(sdf=c(fu,fe), gs=gs, dgs=dgs, supp=supp, A=A)
round(res1$COV_W, 2)
res1$EMD
res1$used_gs
res2 <- ASCOV_FastICAdefl(sdf=c(fu,fe), gs=c(g_pow3), dgs=c(dg_pow3),
Gs=c(G_pow3), method="G", supp=supp, A=A)
res2$EMD