[Mne_analysis] specify noise covariance rank in MNE-Python?

Denis-Alexander Engemann denis.engemann at gmail.com
Mon Dec 15 10:18:49 EST 2014
Search archives:

Hi Chris,

2014-12-15 13:42 GMT+01:00 Christopher Bailey <cjb at cfin.au.dk>:
>
>  Hi all,
>
>  I want to be sure I understand this discussion, as it seems highly
> relevant:
>
>  - on reduced-rank data {SSS, ICA, ...}, mne.cov.regularize has been the
> only way to deal with the loss of dimension
>

Only to some extent. the current mne.cov.regulrize code takes into account
SSP vectors and applies the diagonal scalar regularization on the low rank
(after applying SSPS). The MNE inverse code seems rank aware to some
extent, more precisely it will discard covariance eigenvalues that are
smaller than required by a certain constant. The idea would be to
parametrize this behaviour by the exact rank instead.

- now Engemann and Gramfort (in press) propose alternatives and implement
> an automatic "optimal" cov-regularizer in WIP 1671
>
>
Yes. Some of the methods that are implemented there yield estimates of the
rank of the noise namely PPCA and Factor Analysis. These methods regularize
by computing the covariance in the low rank component space and bridging
the gap by adding a noise model.
However, for now this only seems to properly work if the data is not
already SSSed or SSPed or ICAed, probably due to numerical problems. These
options will therefore be deactivated if projs are active. We still have
not fully decided about how to deal with projs for the remaining
alternative methods, i.e. shrunk covariance and Ledoit-Wolf. We will
probably implement a behavior that mimics the one of mne.cov.regularize.

For the whitening examples it would be preferable to divide by the true
rank instead of the number of channels when computing the whitened GFP.
This should be added as an option to mne.cov.whiten_evoked to allow for
most appropriate diagnostic plots.


>  What advantage, before or now, is there then of exposing the rank
> parameter? Would there be an advantage of regularizing in a rank-aware
> fashion (which mne.cov.regularize is not, as far as I can tell)?
>

As I see it, this mostly matters for the whitening step that is part of
many inverse solution techniques such as MNE and beamformers. Scaling
issues might be the result. But since this was already handled by the
existing whitening code I would not be too worried. I bet the existing
constant will most probably lead to handling the SSS rank correctly.


>  @mluessi When you say "the detected rank is 200", what calculation is
> this based on? mne.cov.rank?
>
>
The most intuitive approach is plotting the cov and inspecting its eigen
spectra:

http://martinos.org/mne/stable/auto_examples/plot_estimate_covariance_matrix_baseline.html#exa
mple-plot-estimate-covariance-matrix-baseline-py

Note the kink for magnetometers that have 3 SSPs in the sample data set.

We also have a method to the Raw object that's called .estimate_rank

HTH,
Denis



>  /Chris
>    --
> Christopher Bailey, MSc
> MEG Engineer, MINDLab Core Experimental Facility
> Center of Functionally Integrative Neuroscience (CFIN)
> Aarhus University, Denmark
>
> tel. cell: +45-2674-9927
> tel. office: +45-7846-9942
>
>  On Dec 11, 2014, at 3:03 PM, Alexandre Gramfort <
> alexandre.gramfort at TELECOM-PARISTECH.FR> wrote:
>
> hi,
>
> yes the manual setting of the rank has not be exposed to users in
> MNE-Python. This should be fixed to address the use case martin
> reported.
>
> @mluessi do you give it a shot?
>
> Alex
>
>
> On Thu, Dec 11, 2014 at 1:03 PM, Denis A. Engemann
> <denis.engemann at gmail.com> wrote:
>
> Hi Martin to me this makes absolutely sense. This is also related to PR
> #1671 on MNE-Python. Likewise, we could have a rank parameter for spatial
> whitening.
>
> +1 for taking into account the rank (due to sss | proj | ica)
>
> On 11 Dec 2014, at 12:47, Martin Luessi <mluessi at nmr.mgh.harvard.edu>
> wrote:
>
> Hi,
>
> The mne_inverse_operator command has an option to specify the rank of
> the covariance matrix. This is useful when e.g. maxfilter has been
> applied to the data and the rank has been reduced. It seems like this
> option is currently missing from MNE-Python; we are computing an inverse
> operator using a covariance matrix estimated from data with maxfilter
> applied but the detected rank is 200  (only gradiometers) instead of 64.
>
> Is there a reason for not having this option in MNE-Python or would it
> make sense to add it?
>
> Best,
>
> Martin
>
> _______________________________________________
> Mne_analysis mailing list
> Mne_analysis at nmr.mgh.harvard.edu
> https://mail.nmr.mgh.harvard.edu/mailman/listinfo/mne_analysis
>
>
> The information in this e-mail is intended only for the person to whom it
> is
> addressed. If you believe this e-mail was sent to you in error and the
> e-mail
> contains patient information, please contact the Partners Compliance
> HelpLine at
> http://www.partners.org/complianceline . If the e-mail was sent to you in
> error
> but does not contain patient information, please contact the sender and
> properly
> dispose of the e-mail.
>
>
> _______________________________________________
> Mne_analysis mailing list
> Mne_analysis at nmr.mgh.harvard.edu
> https://mail.nmr.mgh.harvard.edu/mailman/listinfo/mne_analysis
>
> _______________________________________________
> Mne_analysis mailing list
> Mne_analysis at nmr.mgh.harvard.edu
> https://mail.nmr.mgh.harvard.edu/mailman/listinfo/mne_analysis
>
>
>
> _______________________________________________
> Mne_analysis mailing list
> Mne_analysis at nmr.mgh.harvard.edu
> https://mail.nmr.mgh.harvard.edu/mailman/listinfo/mne_analysis
>
>
> The information in this e-mail is intended only for the person to whom it
> is
> addressed. If you believe this e-mail was sent to you in error and the
> e-mail
> contains patient information, please contact the Partners Compliance
> HelpLine at
> http://www.partners.org/complianceline . If the e-mail was sent to you in
> error
> but does not contain patient information, please contact the sender and
> properly
> dispose of the e-mail.
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.nmr.mgh.harvard.edu/pipermail/mne_analysis/attachments/20141215/960bc86c/attachment.html 


More information about the Mne_analysis mailing list