[Eeglablist] Question regarding fastICA

Jason Palmer japalmer29 at gmail.com
Fri May 11 20:26:13 PDT 2012


The default in FastICA is to use the "deflationary ICA" approach, where one
component is estimated at a time. So it will first estimate one IC, then
another, etc., up to the number you request in 'numOfIC'. The alternative is
the "symmetric" approach, which you can specify using 'approach','symm'. I'm
not sure what it does exactly in this case--it may reduce dimensionality of
the data first to 'numOfIC' dimensions, then perform ICA, or less likely it
may do full ICA then select which ICs to return by some criterion like
variance accounted for.

Generally, the equation x = As, where x is n-dimensional (n rows) is only
valid when s is also n-dimensional, or possibly if the data is not full rank
(only exists in a smaller dimensional subspace). If you have fewer ICs than
dimensions, then the equals should be an "approximately equal" sign. Or you
can write x = As + v, where v is a "noise" vector containing the part of x
that is not represented by the components in s.

If you write x = As with a reduced number of ICs in s, then x is really the
"backprojection" of those components, not the original data. So authors may
mean "x-hat" or "approximate x" in this equation. Technically the notation
should be different from the notation for the original data, or
"approximately equal" should be used, or an additional "noise" vector should
be added.

Best, Jason

-----Original Message-----
From: Makoto Miyakoshi [mailto:mmiyakoshi at ucsd.edu] 
Sent: Friday, May 11, 2012 5:18 PM
To: Ewa Beldzik
Cc: japalmer at ucsd.edu; eeglablist at sccn.ucsd.edu
Subject: Re: [Eeglablist] Question regarding fastICA

I would be curious to know it too, although I know you did not write the
code!

Makoto

2012/5/11 Ewa Beldzik <ewa.beldzik at gmail.com>:
> Hi Jason,
>
> Thank you very much for the answer, just to clarify..
> So when I choose 3 components to be estimated is actually search for 4 
> of them and then delete the one with the smallest eigenvalues from the
data?
> How come everybody use the equation in their theory section if the 
> formula X=s*A is incorrect (considering that data reduction is 
> substantial in neuroimaging)?
>
> Kind regards,
> Ewa
>
>
> On 12 May 2012 00:43, Jason Palmer <japalmer29 at gmail.com> wrote:
>>
>> Hi Ewa,
>>
>>
>>
>> I don’t think there is actually a problem 
 Your 4x1000 data is most 
>> likely full rank (covariance matrix has 4 significant eigenvalues), 
>> so it needs 4 components (or dimensions in the basis set) to 
>> represent the data without error. With only 3 components, you get an 
>> approximation of the data, where one direction is not represented. 
>> This may or may not correspond to the smallest dimension of the data 
>> (the smallest eigenvalue/eigenvector) since ICA tries to find 
>> independent directions, not necessarily the largest variance (like PCA
does).
>>
>>
>>
>> So you would expect the reconstructed 4 dimensional data using 3 
>> components to be different from the original data.
>>
>>
>>
>> Best,
>>
>> Jason
>>
>>
>>
>> From: Ewa Beldzik [mailto:ewa.beldzik at gmail.com]
>> Sent: Friday, May 11, 2012 3:18 PM
>> To: mmiyakoshi at ucsd.edu
>> Cc: eeglablist at sccn.ucsd.edu; Jason Palmer
>> Subject: Re: [Eeglablist] Question regarding fastICA
>>
>>
>>
>> Dear Makoto,
>>
>> As far as I'm concern, fastICA community does not have forum nor 
>> mailing list, so I  did write the same e-mail to Professor Hyvarinen 
>> and one of his colleagues but I haven't got any answer yet.
>>
>> Thank you for replicating it though. At least I'm sure it is the 
>> algorithm and not my mistake.
>>
>> Ewa
>>
>> On 11 May 2012 22:33, Makoto Miyakoshi <mmiyakoshi at ucsd.edu> wrote:
>>
>> Dear Ewa,
>>
>> I replicated it. I don't know why this is so though... you'd better 
>> ask fastica community. Jason, do you by any chance know what it is?
>>
>> Makoto
>>
>> 2012/5/11 Ewa Beldzik <ewa.beldzik at gmail.com>:
>>
>> > Dear Mokoto,
>> >
>> > Thank you for the interest. I'm not sure if I can enclose the plots 
>> > here so I'm gonna use min and max values as a reconstruction 
>> > criteria.
>> > I have a data x (matrix size 4x1024; ranging <-3.882;2,466>)
>> >
>> > When I apply following command line in matlab:
>> > [icasig,A,W]=fastica(x,'numOfIC',4)
>> > and when I reconstruct x with the formula:
>> > x4=A*icasig
>> > I get x4 (matrix size 4x1024; ranging <-3.882;2,466>) which 
>> > presents the exact plot as x.
>> >
>> > Now, when I apply following command line in matlab:
>> > [icasig2,A2,W2]=fastica(x,'numOfIC',3)
>> > and then I reconstruct x with:
>> > x3=A2*icasig2
>> > I get x3 (matrix size 4x1024; ranging <-4.453;2,469>) which 
>> > presents far more noise plots then x.
>> >
>> > I'm not sure whether I'm not doing something wrong. But if the 
>> > algorithm works this way why is it so?
>> >
>> > Best regards,
>> > Ewa
>> >
>> >
>> > On 10 May 2012 21:47, Makoto Miyakoshi <mmiyakoshi at ucsd.edu> wrote:
>> >>
>> >> Dear Ewa,
>> >>
>> >> What do you mean by 'imprecisely'? Or how did you now it is imprecise?
>> >> Please tell us more detail.
>> >>
>> >> Makoto
>> >>
>> >> 2012/5/10 Ewa Beldzik <ewa.beldzik at gmail.com>:
>> >> > Dear all,
>> >> >
>> >> > When applying fastICA algorithm in Matlab to a data consisting 
>> >> > of 4 signals, I have noticed that only when I choose 4 IC to be 
>> >> > estimated, the formula A*icasig =X actually works. After 
>> >> > choosing 2 or 3 IC the data (X) is reconstructed imprecisely.
>> >> > Could you explain why? I wish to understand the methods fully.
>> >> >
>> >> > Thank you in advance,
>> >> > Ewa
>> >> > PhD student from Cracow
>> >> >
>> >> > _______________________________________________
>> >> > Eeglablist page: http://sccn.ucsd.edu/eeglab/eeglabmail.html
>> >> > To unsubscribe, send an empty email to 
>> >> > eeglablist-unsubscribe at sccn.ucsd.edu
>> >> > For digest mode, send an email with the subject "set digest 
>> >> > mime" to eeglablist-request at sccn.ucsd.edu
>> >>
>> >>
>> >>
>> >> --
>> >> Makoto Miyakoshi
>> >> JSPS Postdoctral Fellow for Research Abroad Swartz Center for 
>> >> Computational Neuroscience Institute for Neural Computation, 
>> >> University of California San Diego
>> >
>> >
>>
>>
>>
>> --
>> Makoto Miyakoshi
>> JSPS Postdoctral Fellow for Research Abroad Swartz Center for 
>> Computational Neuroscience Institute for Neural Computation, 
>> University of California San Diego
>>
>>
>
>



--
Makoto Miyakoshi
JSPS Postdoctral Fellow for Research Abroad Swartz Center for Computational
Neuroscience Institute for Neural Computation, University of California San
Diego





More information about the eeglablist mailing list