Learn R Programming

ICtest (version 0.3-5)

FOBIboot: Boostrap-based Testing for the Number of Gaussian Components in ICA Using FOBI

Description

In independent components analysis (ICA) gaussian components are considered as uninteresting. The function uses boostrappping tests, based on FOBI, to decide if there are p-k gaussian components where p is the dimension of the data. The function offers two different boostrapping strategies.

Usage

FOBIboot(X, k, n.boot = 200, s.boot = "B1")

Arguments

X

a numeric data matrix with p>1 columns.

k

the number of non-gaussian components under the null.

n.boot

number of bootstrapping samples.

s.boot

bootstrapping strategy to be used. Possible values are "B1", "B2". See details for further information.

Value

A list of class ictest inheriting from class htest containing:

statistic

the value of the test statistic.

p.value

the p-value of the test.

parameter

the number of boostrapping samples used to obtain the p-value.

method

character string which test was performed.

data.name

character string giving the name of the data.

alternative

character string specifying the alternative hypothesis.

k

the number or non-gaussian components used in the testing problem.

W

the transformation matrix to the independent components. Also known as unmixing matrix.

S

data matrix with the centered independent components.

D

the underlying FOBI eigenvalues.

MU

the location of the data which was substracted before calculating the independent components.

s.boot

character string which boostrapping strategy was used.

Details

As in FOBIasymp the function jointly diagonalizes the regular covariance and the matrix of fourth moments. Note that in this case the matrix of fourth moments is not made consistent under the normal model by dividing it by \(p+2\), as for example done by the function cov4 where \(p\) denotes the dimension of the data. Therefore the eigenvalues of this generalized eigenvector-eigenvalue problem which correspond to normally distributed components should be p+2. Given eigenvalues \(d_1,...,d_p\) the function thus orders the components in descending order according to the values of \((d_i-(p+2))^2\).

Under the null it is then assumed that the first k interesting components are mutually independent and non-normal and the last p-k components are gaussian.

Let \(d_1,...,d_p\) be the ordered eigenvalues, \(W\) the correspondingly ordered unmixing matrix, \(s_i = W (x_i-MU)\) the corresponding source vectors which give the source matrix \(S\) which can be decomposed into \(S_1\) and \(S_2\) where \(S_1\) is the matrix with the \(k\) non-gaussian components and \(S_2\) the matrix with the gaussian components (under the null).

The test statistic is then \(T = n \sum_{i=k+1}^p (d_i-(p+2))^2\)

Two possible bootstrap tests are provided for testing that the last p-k components are gaussian and independent from the first k components:

  1. s.boot="B1": The first strategy has the followong steps:

    1. Take a bootstrap sample \(S_1^*\) of size \(n\) from \(S_1\).

    2. Take a bootstrap sample \(S_2^*\) consisting of a matrix of standard normally distributed elements.

    3. Combine \(S^*=(S_1^*, S_2^*)\) and create \(X^*= S^* W\).

    4. Compute the test statistic based on \(X^*\).

    5. Repeat the previous steps n.boot times.

    Note that in this bootstrapping test the assumption of ''independent components'' is not used, it is only used that the last \(p-k\) components are gaussian and independent from the first \(k\) components. Therefore this strategy can be applied in an independent component analysis (ICA) framework and in a non-gaussian components analysis (NGCA) framework.

  2. s.boot="B2": The second strategy has the following steps:

    1. Take a bootstrap sample \(S_1^*\) of size \(n\) from \(S_1\) where the subsampling is done separately for each independent component.

    2. Take a bootstrap sample \(S_2^*\) consisting of a matrix of standard normally distributed elemenets.

    3. Combine \(S^*=(S_1^*, S_2^*)\) and create \(X^*= S^* W\).

    4. Compute the test statistic based on \(X^*\).

    5. Repeat the previous steps n.boot times.

    This bootstrapping strategy assumes a full ICA model and cannot be used in an NGCA framework.

References

Nordhausen, K., Oja, H. and Tyler, D.E. (2022), Asymptotic and Bootstrap Tests for Subspace Dimension, Journal of Multivariate Analysis, 188, 104830. <doi:10.1016/j.jmva.2021.104830>.

Nordhausen, K., Oja, H., Tyler, D.E. and Virta, J. (2017), Asymptotic and Bootstrap Tests for the Dimension of the Non-Gaussian Subspace, Signal Processing Letters, 24, 887--891. <doi:10.1109/LSP.2017.2696880 >.

See Also

FOBI, FOBIasymp

Examples

Run this code
# NOT RUN {
n <- 1500
S <- cbind(runif(n), rchisq(n, 2), rexp(n), rnorm(n), rnorm(n), rnorm(n))
A <- matrix(rnorm(36), ncol = 6)
X <- S %*% t(A)

FOBIboot(X, k = 2)
FOBIboot(X, k = 3, s.boot = "B1")
FOBIboot(X, k = 0, s.boot = "B2")
# }

Run the code above in your browser using DataLab