| icm_test | R Documentation |
Performs a test of the independent component model (ICM) assumption. The function first estimates independent components using an ICA method and then tests whether the estimated components are mutually independent. The test statistic is an L2-type functional of empirical characteristic functions, with optional score transformations and resampling-based p-values.
icm_test(X, n.rep = 200, score = "Identity", weight = "Gauss",
ica = "JADE", strategy = "bootstrap", ncores = NULL,
iseed = NULL, eps = 1e-06, maxiter = 100, g = "tanh",
method = "sym", inR = FALSE, n.init = 2)
X |
Matrix or data frame of numeric data; rows correspond to observations and columns to variables. |
n.rep |
Number of bootstrap replications or permutations used to approximate the null distribution. Recommended are to perform several thousands. |
score |
Score transformation applied marginally prior to testing:
|
weight |
Weight function used in the L2-type statistic: |
ica |
ICA method used to estimate the mixing/unmixing matrix: |
strategy |
Resampling strategy used to obtain p-values: |
ncores |
Number of CPU cores to use for resampling computations. If |
iseed |
Optional integer seed for reproducibility of resampling. |
eps |
Convergence tolerance used by the ICA routines (where applicable). |
maxiter |
Maximum number of iterations used by the ICA routines (where applicable). |
g |
Nonlinearity used by |
method |
FastICA variant: |
inR |
Logical; if |
n.init |
Number of random initializations for symmetric FastICA variants. Only used when |
The independent component model assumes that the observed random vector X can be written as
X = A S, where A is an invertible mixing matrix and the latent components S
have mutually independent coordinates. This function assesses that assumption in two steps:
ICA estimation. An unmixing matrix is estimated from X using the method selected
via ica. This yields estimated components \hat S.
Independence testing. The null hypothesis is that the coordinates of \hat S
are mutually independent. The test statistic is an L2-type distance between an empirical
characteristic function of the joint distribution and the product of the corresponding marginal
characteristic functions. The distance is computed with a weight function chosen by weight.
Score transformations.
To improve robustness and/or obtain distribution-free behavior, the test can be applied not only to
\hat S itself (score = "Identity"), but also after marginal score transformations.
With score = "Rank", each component is replaced by its scaled ranks, which yields a test that is
invariant under strictly increasing marginal transformations and distribution-free under the null.
With score = "VdW", van der Waerden (normal) scores are used; this option is currently available for Gaussian weights.
P-values via resampling. The null distribution of the statistic is approximated by resampling:
strategy = "permutation" breaks cross-component dependence by independently permuting
the rows within each component (leaving marginal distributions unchanged).
strategy = "bootstrap" generates a reference distribution using resampling with replacement
under an independence structure for the components.
The p-value is computed as the proportion of resampled statistics at least as large as the observed one.
A list of class "ticm" and "htest" with components including:
Tboot |
Numeric vector of bootstrap replicates of the test statistic (present when |
Tperm |
Numeric vector of permutation replicates of the test statistic (present when |
ICA |
The ICA result applied to |
statistic |
The observed value of the test statistic. |
p.value |
Approximate p-value computed from |
parameter |
The number of resampling replicates |
method |
A character string describing the selected ICA method, score type, weight, and resampling strategy. |
data.name |
Name of the input data |
alternative |
A character string describing the alternative (lack of mutual independence of the estimated components). |
Hallin, M., Meintanis, S.G., and Nordhausen, K. (2024), Consistent distribution free affine invariant tests for the validity of independent component models. arXiv:2404.07632.
ind_test,
fICA,
JADE,
FOBI
n <- 300
A <- matrix(rnorm(9), 3, 3)
s1 <- rt(n, 6)
s2 <- rexp(n, 1)
s3 <- runif(n)
S <- cbind(s1, s2, s3)
X <- S %*% t(A)
# in practice, the number of resamples should be much larger
res <- icm_test(X)
res
plot(res)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.