[Eeglablist] Question regarding fastICA
Arnaud Delorme
arno at ucsd.edu
Mon May 14 22:29:02 PDT 2012
By the way, to add on to Jason response, Aapo Hyvärinen, one of the designers of FastICA, once told me that the default incremental "deflationary" method for FastICA where one component is estimated at a time is not the most efficient one. The "symm" method that Jason mentioned should be used instead.
Best,
Arno
On May 14, 2012, at 10:07 AM, Ewa Beldzik wrote:
> Dear Jason and Makoto,
>
> Indeed, 3 estimated components of 4 look exactly like 3 of 3 (three corr coeff around 0.99). It explains all.
> I am very grateful to both of you for the help in understanding this.
>
> Best regards,
> Ewa
>
> On 12 May 2012 05:57, Makoto Miyakoshi <mmiyakoshi at ucsd.edu> wrote:
> Dear Jason,
>
> I learned a lot. Thank you Jason.
>
> > 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.
>
> This is a copy from the help of fastica.m.
>
> [icasig] = fastica (mixedsig, 'lastEig', 10, 'numOfIC', 3);
>
> Reduce dimension to 10, and estimate only 3
> independent components.
>
> So, dimension reduction and specifying the number of ICs to obtain
> seems independent.
>
> Makoto
>
>
> 2012/5/11 Jason Palmer <japalmer29 at gmail.com>:
> > 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
> >
>
>
>
> --
> Makoto Miyakoshi
> JSPS Postdoctral Fellow for Research Abroad
> Swartz Center for Computational Neuroscience
> Institute for Neural Computation, University of California San Diego
>
> _______________________________________________
> 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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://sccn.ucsd.edu/pipermail/eeglablist/attachments/20120514/bdbfd424/attachment.html>
More information about the eeglablist
mailing list