[Eeglablist] ICA & percent variance accounted for

Makoto Miyakoshi mmiyakoshi at ucsd.edu
Thu Dec 25 18:07:26 PST 2014

Dear Joelle,

Thank you for asking pvaf measure which is my favoirte.
The pvaf is computed as follows (from envtopo.m help)

pvaf(comp) = 100-100*mean(var(data - back_proj))/mean(var(data));

Here, variance is computed across channels/ICactivations.

> What exactly does the „percent variance accounted for (pvaf)“ mean? For
example if I got a pvaf of about 60, does this mean that this component
explains 60% of the original data (or is it more complicated)?

As it is clear in the equation, pvaf 60 means that the selected ICs
explains 60% of the temporal average of the EEG variance across channels.

> These pvaf’s sum up to about 80, does this mean that 20% of the original
data cannot be explained by all the components?

By all the 'selected' components.

> These pvaf’s add to over 400 (whereas the ones from above sum up to only
80 which seems to be more reasonable to me), does this mean that the
independent components overlap?

There is subadditivity in the variance calculation, namely

var(A+B+C) <= var(A) + var(B) + var(C)

this is because when you perform (A+B+C) cancellation happens. So you
cannot add up each pvaf values to 100, but it will be always larger than
100. I know that this is confusing although totally valid...

Makoto

On Fri, Dec 12, 2014 at 4:00 AM, Joëlle Albrecht <
joelle.albrecht at hotmail.com> wrote:

> Dear EEGLAB-ers
>
>
> I’m trying to find out, how much variance of the original data the
> components (computed by ICA) explain, but I’m not sure how to do this. (My
> goal is something like: Component 1 explains 60% of the variance in the
> original data. etc.)
>
>
>
> 1) I used the following function:
>
>
>
> [pc,eigvec,sv] = runpca(EEG.data);
>
> [proj pvaf] = compvar(EEG.data, pc, eigvec, components);
>
>
>
> What exactly does the „percent variance accounted for (pvaf)“ mean? For
> example if I got a pvaf of about 60, does this mean that this component
> explains 60% of the original data (or is it more complicated)? These pvaf’s
> sum up to about 80, does this mean that 20% of the original data cannot be
> explained by all the components?
>
>
>
> 2) I used another function, too (after completing the ICA):
>
> [pvaf,pvafs,vars]=eeg_pvaf(EEG,component);
>
>
>
> Again: What exactly do the pvaf’s mean? Plus, these pvaf‘s are very
> different from the pvaf’s I obtained with the function above. What is the
> difference? These pvaf’s add to over 400 (whereas the ones from above sum
> up to only 80 which seems to be more reasonable to me), does this mean that
> the independent components overlap? The pvaf’s resulting from this function
> (but not the ones from the one above)  are not monotonously decreasing –
> how are they sorted?
>
>
>
> Thank you very much for the support!
>
> Joëlle
>
> _______________________________________________
> 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
Swartz Center for Computational Neuroscience
Institute for Neural Computation, University of California San Diego
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://sccn.ucsd.edu/pipermail/eeglablist/attachments/20141225/c630382d/attachment.html>