I have very good experiences applying make_lcmv amd make_dics to MEGIN data after using SSS and ICA (resulting in a rank 69). The algorithms provide stable and interpretable results.
Thats for providing those - I do however have a question on what exactly is done in those algorithms when handling the low ranked cov matrices.
I understand that regularization by diagnonal loading is not sufficient given that large rank deficiency - and that shrinkage is applied by the algorithms? (as suggested by Engemann and Gramfort 2015).
My question is: how it the large rank defiency taken into account prior to inversion? If shrinkage is applied; which procedure is then applied?
Thanks for your quick response. Yes, I was reading Britta’s paper with great interest but was confused as Tikhonov regularization, shrinkage as well as truncating the pseudo-inverse are mentioned.
I now understand it is truncating the pseudo-inverse which really solves the problem of the rank deficiency introduced by SSS. In fact, in my experience the additional regularization does not do much when working on the SSS data (I suspect since the eigenvalues associated with the 69 components already are high so the diagonal loading does not change much). As such, it might makes sense to skip the regularization (reg = 0) when SSS/truncation is used for sake of simplicity?
I think this is quite an important issue as the Jaiswal 2020 Neuroimage paper was the result of workshop established to address how to do beamforming on rank deficient data after SSS. As I read it the paper does not make the truncated pseudoinverse explicit (albeit from the MNE code examples I can see that its done).
I will clarify and document the issue of the truncated pseudoinverse in our pipeline.
Sorry for chiming in so late, I was on my end-of-the-year leave. Indeed, in the beamformer code the covariance matrix is truncated by default.
Regarding your thought on regularization: I anecdotally made good experiences with setting the regularization to zero if the truncation is being done (also when choosing this option in FieldTrip, for example) so I agree that this can make sense (and could for example also prevent further resolution decrease in the output!).
Hi Britta,
Thanks a lot - most useful! I wonder exactly when the truncation is done? - i.e. at which stage in the algorithms? E.g. after prewhitening - or as part of the prewhitening?
All the best,
Ole
the truncation is done as part of the inversion of the covariance matrix, so after pre-whitening.
I forgot to mention in my last reply that the truncation behavior relies on and can be controlled via the rank parameter in the beamformer functions (e.g., make_lcmv). By default, the rank is inferred from the info object passed to the function.