I have a egg dataset (3000 * 120), each row is one curve of egg recording. I have 120 repeats. I know it should be 12 ICs, in theory. I applied the following code to analyze the traces for independent components, and I can get some result, as the following curves, I got 12 peaks, as expected.
q = 12;
sample = prewhiten(raw);
Mdl = rica(sample,q,'NonGaussianityIndicator',ones(q,1));
sample_rica = transform(Mdl,sample);
figure;
plot(sample_rica);
Then I change the code to following ones, and the resulting 100 repeats do not give consistent components between each run. The code and result are as following. The curves from 100 mean of each components appears as over 40 peaks, which means the results from 100 repeat run are not consistent.
q = 12;
sample = prewhiten(raw);
for i = 1:1:100
Mdl = rica(sample,q,'NonGaussianityIndicator',ones(q,1));
sample_rica(:,:,i) = transform(Mdl,sample);
end
sample_100_avg = squeeze(mean(sample_rica,2));
figure;
plot(sample_00_avg);
If I can always use rica to get the same independent components, although orders may vary, they should be the sample twelve peaks when adding or averaging, however, I got more than 40.
Does it mean rica should not be applied to this data, or there are settings I need to tweak, or something else?
Thank you for any input!