# MNE method is invariant to the scale of noise

**URL:** <https://mne.discourse.group/t/mne-method-is-invariant-to-the-scale-of-noise/1426>\
**Category:** Mailing List Archive (read-only)\
**Tags:** list-archive\
**Created:** [February 14, 2018, 7:33pm UTC](https://mne.discourse.group/t/mne-method-is-invariant-to-the-scale-of-noise/1426 "2018-02-14T19:33:41Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![system](https://global.discourse-cdn.com/free1/uploads/mne/original/1X/85cc6bd2b69cb698a166dc6d880fb550510d0144.jpeg) [@system](https://mne.discourse.group/u/system)\
**Post date:** [February 14, 2018, 7:33pm UTC](https://mne.discourse.group/t/mne-method-is-invariant-to-the-scale-of-noise/1426/1 "2018-02-14T19:33:41Z")

</div>

Hi all,

I noticed that if I scale the noise covariance matrix, it does not change  
the source estimates in any way. In this example  
\<[https://martinos.org/mne/stable/auto\_tutorials/plot\_mne\_dspm\_source\_localization.html#sphx-glr-auto-tutorials-plot-mne-dspm-source-localization-py](https://martinos.org/mne/stable/auto_tutorials/plot_mne_dspm_source_localization.html#sphx-glr-auto-tutorials-plot-mne-dspm-source-localization-py)\>  
from  
the example gallery if I change the method to "MNE" before the first stc  
calculation and then do this:

inverse\_operator = make\_inverse\_operator(info, fwd, noise\_cov,  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;loose=0.2, depth=0.8)  
stc = apply\_inverse(evoked, inverse\_operator, lambda2,  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;method=method, pick\_ori=None)

from copy import deepcopy  
noise\_cov\_scaled = deepcopy(noise\_cov)  
noise\_cov\_scaled['data'] \*= 1000000  
inverse\_operator\_scaled = make\_inverse\_operator(info, fwd, noise\_cov\_scaled,  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;loose=0.2, depth=0.8)  
stc\_scaled = apply\_inverse(evoked, inverse\_operator\_scaled, lambda2,  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;method=method, pick\_ori=None)

Then stc\_scaled contains exactly the same data as stc. With "dSMP" and  
"sLORETA" the result do differ. Why doesn't "MNE" care about the scale of  
the covariance matrix?

Evgenii  
-------------- next part --------------  
An HTML attachment was scrubbed...  
URL: [http://mail.nmr.mgh.harvard.edu/pipermail/mne\_analysis/attachments/20180214/fdea7cea/attachment.html](http://mail.nmr.mgh.harvard.edu/pipermail/mne_analysis/attachments/20180214/fdea7cea/attachment.html)

---

<div class="post-metadata">

**Author:** ![system](https://global.discourse-cdn.com/free1/uploads/mne/original/1X/85cc6bd2b69cb698a166dc6d880fb550510d0144.jpeg) [@system](https://mne.discourse.group/u/system)\
**Post date:** [February 14, 2018, 8:15pm UTC](https://mne.discourse.group/t/mne-method-is-invariant-to-the-scale-of-noise/1426/2 "2018-02-14T20:15:10Z")

</div>

if you change noise scaling you should change the SNR as it means you have  
a lot worse SNR. the regularization parameter lambda is a function of the  
snr  
as you can see in the script.

dSPM and sLORETA are like t-stat or f-stat. So if you multiply the cov by  
1e6  
then you will have dSPM and sLORETA solutions which are just divided by 1e3  
(the scale of the standard deviation).

HTH  
Alex
