[FieldTrip] SVD and projectmom
Schoffelen, J.M. (Jan Mathijs)
jan.schoffelen at donders.ru.nl
Wed Oct 14 16:27:14 CEST 2020
Hi John,
Let’s consider the leadfield and spatial filter for a single dipole location. If these are not orientation constrained, these are matrices of dimensions Nchanx3, and 3xNchan respectively.
Doing an svd on either of them (and then sticking to the first component only for computation of source level quantities) will yield different results (i.e. scenarios a) and b) are different). Doing it on the leadfield will result in the inverse algorithm assuming the dipole to have a fixed orientation (in a direction that maximizes the variance of the sensor level topographical distribution elicited by a dipole at the given location). This is different from performing an svd on the spatial filter, which is equivalent to performing an svd on filt*Cy*filt’ IF Cy is a (scaled) identity matrix. In other words, performing an svd on the spatial filter, and using the ’strongest’ component, extracts an orientation that is maximizing noise, under the assumption that the noise is spatially white.
Indeed, the first orientation extracted from svd on filt*Cy*filt’ critically depends - as you point out - on what you put in as Cy. If you have different conditions, and do the orientation estimation per condition, then obviously the per condition orientation may end up being different, and this could result in suboptimal results (which could range from a reduction in sensitivity to the comparison of apples with oranges).
If you are to compare source level data across conditions, under a assumed fixed orientation I would therefore recommend to estimate the orientation based on a covariance estimate of data combined across conditions, and subsequently use the resulting fixed orientation spatial filter on the per condition data as a starting point for the subsequent of the to-be-compared source level quantity of interest.
I did not entirely understand your point about the data X and the cwt of these data, but in general, the svd is ambiguous with respect to the sign of the resulting orientations (u-vectors) so accidental polarity flips introduced this way result in flipping the sign of a correlation of 1 to -1, which is perhaps what you described.
Best wishes,
Jan-Mathijs
On 14 Oct 2020, at 15:49, RICHARDS, JOHN <RICHARDS at mailbox.sc.edu<mailto:RICHARDS at mailbox.sc.edu>> wrote:
Eelke
Thanks for your response. It’s a good answer and helps to elucidate my question, but part of the question remains. Your description of a) b) and c) were implicit in my question, so maybe this is the crux:
The 1) and 2) below are probably identical. Doing this in the leadfield results in the 1 x nvoxel LF coefficients; then applying a filter (eLORETA, sLORETA) to the 1 x nv LF coefficients, is probably the same as first doing the filter and then the max orientation SVD (e.g., 2).
I guess the critical question is what 3) is doing? What does it mean “the data covariance is projected through the filters”?
I have not tried 1) (leadfield step), but have done 2) and 3) and they give different results. I presume this is because the orientation of the filters in 2) is not the same as the orientation of the filters modified by the data in 3).
Also, re your note below… If I have X and Y datasets, and do 2), then the orientation of the projection will be the same for X and Y. But doing 3), the projection is based on the data,
e.g. svd(filter) * data and svd(filter*covX*filter’)*data give different results; so that the orientation of svd(filter*covX*filter’) is a different orientation than svd(filter*covY*filter). I worry that the difference in orientation between the two datasets might confound experimental conditions effect differences in X and Y. Are the “data sources” different, or is it just a chance occurrence due to the orientation differences.
One reason this came up is that we have two related sets of data, like X and transform(X), where the transform is a cwt operation. It turns out that
Correlation (X and transformX in the channel*time) = 1
svd(filter)*X and svd(filter)*transform(x) also result in an identity matrix across nvoxels; (correlation over time, for each nvoxel)
But svd(filter*covX*filter’)*X, and svd(filter*CovY*filter’)*Y, show weird patterns of correlations—some nvoxels are 1, some nvoxeks are -1, and then some are in the middle range; or they are strong positive but not 1 (like .8 to 1).
The use of the cov in the svd definitely changes the results
This might not make a difference in the pattern of responses, but the orientation of some of the analyses flips from 1 to -1, and the intermediate correlations mean that the results from the svd(filter*COV*filter’) is changing the results.
John
Hi John,
I'm not sure the following is a full answer to your questions, but
it's definitely relevant to both of them. As you say, there are by
default 3 dipole orientations along which activity is considered. We
can combine these three into one (using SVD or similar) at (at least)
three possible levels:
(a) the level of the leadfield;
(b) the level of the filters;
(c) the level of the source-reconstructed data.
What you are suggesting in question 2 is approach b. Your phrasing
("the leadfield step") suggests that your proposal would be approach
a, but unless I'm misunderstanding you really are proposing approach
b.
What by default is implemented in FieldTrip (cfg.projectmom = 'yes')
is approach c. This I think answers your question 1: the data
covariance is projected through the filters in order to determine the
maximum orientation of the source-reconstructed data.
Also of relevance: you can use the non-downprojected (3xN) filters, as
computed based on some data X, and apply them to some data Y, and only
downproject after that. This might result in a different orientation
being the "maximal" one, as the maximum (in approach c) depends not
only on the filters (and hence the leadfield), but also on the data.
Hope that helps.
Best,
Eelke
***********************************************
John E. Richards
Carolina Distinguished Professor
Department of Psychology
University of South Carolina
Columbia, SC 29208
Dept Phone: 803 777 2079
Fax: 803 777 9558
Email: richards-john at sc.edu<mailto:richards-john at sc.edu>
https://jerlab.sc.edu<https://jerlab.sc.edu/>
*************************************************
_______________________________________________
fieldtrip mailing list
https://mailman.science.ru.nl/mailman/listinfo/fieldtrip
https://doi.org/10.1371/journal.pcbi.1002202
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.science.ru.nl/pipermail/fieldtrip/attachments/20201014/ff86f209/attachment.htm>
More information about the fieldtrip
mailing list