I use censoring or scrubbing of volumes as a preprocessing step in my resting-state data. This leads to errts files which have certain volumes as all 0s.
My question is, when I am going to perform functional connectivity analysis with these censored datasets, how do I deal with the 0 values in the time series? Should I change my code such that only non-zero values are correlated between seed and target time series? or is there a more straightforward way of dealing with 0s in the data time series?
Thanks in advance for your help.
If the correlations are per-subject, then censoring will not affect the correlations (because all voxels will equal their mean of zero at those censored time points).
If you wish to compute correlations across subjects (or the same subject in different sessions), where censoring will vary, then it would be a problem. Censoring should not be appropriate in such a case. Of course, NOT censoring would be bad, too, unfortunately.
Thanks for the reply.
Yes, my correlations are within-subject and session so all areas (seeds and targets) will have 0 as values. However, isn’t the correlation going to be different for, let’s say,
Since the latter timeseries has the 0’s removed? Same happens to the correlation values in my data.
Those 0’s will change the correlation because the time series does not have mean==0.
If you pre-process the correlations (de-mean and scale so sum squares == 0), then correlations are dot products.
The errts time series has mean==0, and the zeros do not affect scaling or the dot products. So the censored time points should not affect the correlations.
Remove the means of the time series before inserting the zeros and try again.
Well, an easier way to “de-mean” is to just append negative versions. So start with:
Then insert some zeros.
Yes, demeaning BEFORE the zeros are inserted does not affect the correlation.
However, say I have an errts file, and I extract the time series from certain ROIs. Does this time series also come demeaned before the zeros are inserted (due to scrubbing)?
Additionally, assuming these errts files have a mean of 0, then would the results of dual regression (in FSL) depend on whether certain volumes have 0’s in them? Dual regression first does a spatial regression with specified masks (for example, the DMN) on the errts file, which extracts a time course for that mask. The time course is then again regressed onto the errts file, so as to see the spatial extent to which the initial mask or network is represented in the errts file. Would the 0’s in the dataset cause dual regression to give different results?
Since a constant term is modeled via at least polort 0 in the linear regression, the errts will have mean 0, with or without censoring.
I am not on top of the details of FSL’s dual regression, but if it is as you say, then the additional regressor is generated as spatially weighted sum of errts time series. Since each time series has a mean of zero and is also identically zero at the censored time points, the same should hold for that new regressor. So given a spatial weighting volume, including or not including the censored time points should make no difference in correlations. And if that extra regressor is added to the same regression model, those censored time points will still be censored.
One question might arise though from how that new regressor is constructed, how the spatial weighting volume is constructed. It might not matter, but it is conceivable for the zero time points to affect how FSL is generating the weighting volume. Along those lines, it might be good to verify this with the FSL folks.
If you want to be sure, use the $ktrs method from the proc script to:
- make a list of time points to keep
- extract those time points from errts to make a shorter errts
See if this behaves differently. You might also need to verify that if the dual regression is run twice (in exactly the same way), the results are the same. If there is randomness in the operation, you will not be able to tell what effect the censored time point have, since the results would change every time anyway.