Decomposing Data by Infomax ICA
First, how much data do I need to run ica?
Now, run an ICA decomposition on the data (both epochs concatenated) using runica(). The runica() text output is shown (with comments in red). Note: additional details about the training are available as additional output variables.
% [weights,sphere,...] = runica(data,'key1','arg1',...);
[weights, sphere] = runica(data);
Input data size [14,624] = 14 channels, 624 frames.
Finding 14 ICA components using logistic ICA.
Initial learning rate will be 0.00568385, block size 14. <- these lines give
Learning rate will be multiplied by 0.9 whenever angledelta >= 60 deg. the
Training will end when wchange < 1e-06 or after 512 steps.learning parameters.
Online bias adjustment will be used. runica() keywords allow these
Removing mean of each channel ... learning parameters to be changed
Final training data range: -7.21276 to 11.307
Computing the sphering matrix...
Starting weights are the identity matrix ...
Sphering the data ...
Beginning ICA training ...
step 1 - lrate 0.005684, wchange 2.266853
step 2 - lrate 0.005684, wchange 1.573929
step 1 - lrate 0.005684, wchange 2.312812
step 2 - lrate 0.005684, wchange 1.492502 The angledeltas below give the
step 3 - lrate 0.005684, wchange 1.425249, angledelta 74.8 deg directional change
step 4 - lrate 0.005115, wchange 0.771064, angledelta 95.2 deg of the weight-change
step 5 - lrate 0.004604, wchange 0.417642, angledelta 99.0 deg vector. When this is
step 6 - lrate 0.004144, wchange 0.401412, angledelta 93.9 deg below 60 deg, the
step 7 - lrate 0.003729, wchange 0.471083, angledelta 114.8 deg learning rate stays
step 8 - lrate 0.003356, wchange 0.510439, angledelta 117.6 deg constant.
step 9 - lrate 0.003021, wchange 0.309171, angledelta 123.8 deg
step 10 - lrate 0.002719, wchange 0.207596, angledelta 118.8 deg
step 11 - lrate 0.002447, wchange 0.132462, angledelta 106.0 deg
step 12 - lrate 0.002202, wchange 0.132400, angledelta 114.6 deg
step 13 - lrate 0.001982, wchange 0.120591, angledelta 115.6 deg
step 14 - lrate 0.001784, wchange 0.053455, angledelta 123.3 deg
step 15 - lrate 0.001605, wchange 0.050269, angledelta 113.6 deg
step 16 - lrate 0.001445, wchange 0.040677, angledelta 115.2 deg
step 17 - lrate 0.001300, wchange 0.030366, angledelta 111.4 deg
step 18 - lrate 0.001170, wchange 0.023481, angledelta 114.4 deg
step 19 - lrate 0.001053, wchange 0.012231, angledelta 92.1 deg
step 20 - lrate 0.000948, wchange 0.010671, angledelta 104.2 deg
step 21 - lrate 0.000853, wchange 0.012056, angledelta 112.9 deg
step 22 - lrate 0.000768, wchange 0.011094, angledelta 117.3 deg
step 23 - lrate 0.000691, wchange 0.006032, angledelta 121.1 deg
step 24 - lrate 0.000622, wchange 0.003566, angledelta 109.1 deg
step 25 - lrate 0.000560, wchange 0.001910, angledelta 104.9 deg
step 26 - lrate 0.000504, wchange 0.002588, angledelta 96.0 deg
step 27 - lrate 0.000453, wchange 0.002674, angledelta 112.9 deg
step 28 - lrate 0.000408, wchange 0.000963, angledelta 71.6 deg
step 29 - lrate 0.000367, wchange 0.000883, angledelta 100.7 deg
step 30 - lrate 0.000331, wchange 0.000536, angledelta 104.3 deg
step 31 - lrate 0.000297, wchange 0.000391, angledelta 84.2 deg
step 32 - lrate 0.000268, wchange 0.000388, angledelta 100.9 deg
step 33 - lrate 0.000241, wchange 0.000199, angledelta 99.8 deg
step 34 - lrate 0.000217, wchange 0.000151, angledelta 113.5 deg
step 35 - lrate 0.000195, wchange 0.000157, angledelta 92.2 deg
step 36 - lrate 0.000176, wchange 0.000065, angledelta 97.9 deg
step 37 - lrate 0.000158, wchange 0.000078, angledelta 96.9 deg
step 38 - lrate 0.000142, wchange 0.000059, angledelta 99.1 deg
step 39 - lrate 0.000128, wchange 0.000049, angledelta 91.7 deg
step 40 - lrate 0.000115, wchange 0.000064, angledelta 93.1 deg
step 41 - lrate 0.000104, wchange 0.000044, angledelta 82.3 deg
step 42 - lrate 0.000093, wchange 0.000020, angledelta 87.6 deg
step 43 - lrate 0.000084, wchange 0.000014, angledelta 88.0 deg
step 44 - lrate 0.000076, wchange 0.000011, angledelta 87.8 deg
step 45 - lrate 0.000068, wchange 0.000012, angledelta 77.3 deg
step 46 - lrate 0.000061, wchange 0.000007, angledelta 80.5 deg
step 47 - lrate 0.000055, wchange 0.000008, angledelta 78.7 deg
step 48 - lrate 0.000050, wchange 0.000004, angledelta 83.3 deg
step 49 - lrate 0.000045, wchange 0.000004, angledelta 89.4 deg
step 50 - lrate 0.000040, wchange 0.000003, angledelta 72.6 deg
step 51 - lrate 0.000036, wchange 0.000002, angledelta 79.1 deg
step 52 - lrate 0.000033, wchange 0.000005, angledelta 78.4 deg
step 53 - lrate 0.000029, wchange 0.000002, angledelta 85.2 deg
step 54 - lrate 0.000026, wchange 0.000002, angledelta 86.7 deg
step 55 - lrate 0.000024, wchange 0.000002, angledelta 85.7 deg
step 56 - lrate 0.000021, wchange 0.000001, angledelta 94.8 deg
step 57 - lrate 0.000019, wchange 0.000001, angledelta 79.2 deg
step 58 - lrate 0.000017, wchange 0.000001, angledelta 82.2 deg
Learning ends when the weight change becomes small enough
Inverting negative activations: -1 -2 -3 -4 5 -6 -7 -8 -9 10 11 12 -13 14
Polarity of component maps is set to match their largest data projection
Sorting components in descending order of mean projected variance ...
1 2 3 4 5 6 7 8 9 10 11 12 13 14
Permuting the activation wave forms ...
Components are sorted in order of decreasing variance accounted for.
Important Note: For decomposing large data sets, the binary standalone version of runica(), available compiled for several operating systems by separate download from the toolbox web page, is about twelve times faster and uses four times less memory. Once installed, the binary version can be called efficiently from within MATLAB using the toolbox function binica(). The toolbox also includes another ICA algorithm, JADE, a fourth-order ICA algorithm written and contributed by Jean-Francois Cardoso.
The nature of (mostly second-order) differences between results of different ICA algorithms applied to EEG/MEG data has not yet been reported. Applied to simulated data matching the ICA asssumptions, the major ICA algorithms have appear to perform near equally well. Differences for actual data are likely to be caused by the ways in which different algorithms are steered by features of the data not exactly matching the ICA assumptions (independence, spatial fixity, source number and sparsity).
Next, visualize the resulting component maps and time courses ...
Open the function help window
View log of changes to the tutori al.
Comments and suggestions on this tutorial
are welcome. Email scott@salk.edu