Decomposes multi-channel EEG into independent components using ICA.
Supports FastICA, Infomax, and JADE algorithms. Results are stored in the
output assay (component activations) and in metadata(x)$ica (mixing
and unmixing matrices).
Usage
eegICA(
x,
n_components = NULL,
method = c("fastica", "infomax", "jade"),
max_iter = 200L,
tol = 1e-06,
assay_name = NULL,
output_assay = "ica_components"
)Arguments
- x
A PhysioExperiment object with EEG data.
- n_components
Number of independent components to extract. Defaults to the number of channels.
- method
ICA algorithm:
"fastica","infomax", or"jade".- max_iter
Maximum number of iterations (default: 200).
- tol
Convergence tolerance (default: 1e-6).
- assay_name
Input assay name (default: first assay).
- output_assay
Output assay name (default:
"ica").
Value
Modified PhysioExperiment with component activations in
output_assay and ICA metadata in metadata(x)$ica.
The ICA metadata list contains: mixing (mixing matrix A),
unmixing (unmixing matrix), mean (channel means),
whiten (whitening matrix), and method (algorithm used).
The output assay has dimensions n_time x n_components.
References
Hyvarinen, A., & Oja, E. (2000). Independent component analysis: algorithms and applications. Neural Networks, 13(4-5), 411-430.
Bell, A. J., & Sejnowski, T. J. (1995). An information-maximization approach to blind separation and blind deconvolution. Neural Computation, 7(6), 1129-1159.
Examples
if (FALSE) { # \dontrun{
pe <- make_eeg(n_time = 5000, sr = 500)
result <- eegICA(pe, n_components = 4, method = "fastica")
} # }