SNR definition

hello all;
what is the definition of SNR that is used in the minimum norm source estimation?
a ratio of amplitudes or a ratio of energies?

by default, it is set to 3 but I would like to estimate it myself from my data;

looking at the code (minnorm.m), Lambda=1/SNR, and it is used as Lambda^2, therefore I assume it is correct if I estimate the SNR as a ratio of RMS amplitudes between signal and noise ? (and not a ratio of energies). Is that right ?

all the best, Christian

Hi Christian,

The SNR definition is the one that you can find the MNE software manual, section 6.2.3: “SNR is the (power) signal-to-noise ratio of the whitened data.”

But this is not something you should find in the minnorm code.
We’ve been modifying a lot all the source estimation functions the last two months. The results should be little better, and the input options have been made compatible with MNE software.

Please update Brainstorm.

For compatibility purpose, the old minnorm function is still available as “old_minnorm” (“expert mode” in the source estimation options).

Francois

hello again;

OK it is clear to me now that the SNR is power ratio on the whitened data;good.

now, there are several ways to do that

  • at a single time point (GFP peak ?) across all channels
  • on a time window of interest, across all channels
  • on a time window of interest, in one channel
  • only on a subset of points with larger amplitudes
    etc…

my preliminary tests show that this choice can modify very significantly the results:

my first choice was to select only the points in my window of interest with higher GFP amplitude, as this is the place I look at in the first place, across all channels

however, this seems to result in too low a lambda term, i.e. lot of spurious points all over the place (I am on simulated data)

what is your advice on the “best practice” in terms of SNR definition ?

cheers

Christian

these are good and relevant questions, Christian.

Though the regularization parameter is by theoretical construction directly related to SNR, its actual value encompasses also numerical issues that are independent on the data and its noise level.

For instance, the numerical properties of the MEG/EEG gain matrix translates the ill-posedness of the MEG/EEG inverse problem and mainly, its sensitivity to experimental noise, approximations in the head model and even sensitivity to numerical round-off errors.

Hence estimating this value from the data only is not sufficient. You also need to capture the so-called ill-conditionning of the gain matrix, through e.g., its condition number (ratio of largest to smallest singular value). There is no very practical approach to fixing this. Empirical estimation such as l-curve approaches tends to underestimate the value of regularization parameter for instance and probabilistic estimation techniques are unstable and/or untractable.

We are left with a hard-wired value, which has a large share of arbitrariness, provided that the inverse model is reasonably smooth, fits the data and is not too dependent on this value, taken over a range covering about one order of magnitude. This is actually how you could optimize the setting of this parameter: compute indices of stability over some range and discreancy of the predicted sensor data with the actual sensor measures (goodness of fit). You can compute the latter with brainstorm by requiring the computation of the modeled data (right-click over a result node in BST)

Hope this helps - this could actually be an ongoing discussion and we would be happy if you could share your impressions

OK, thanks Sylvain I get the idea; I tried SNR=3 on data that were simulated with actual SNR=20, and it looks much better

I’ll do some tests and tell you how it goes

cheers
Christian