Hi SPMers. We have been doing some comparisons between different fMRI data processing methods recently, including sanity checks on the stats returned by SPM vs FSL vs done by hand.
While evaluating a T-contrast (on a simple second-level one-sample T-test model), I noticed that the T-statistics returned by SPM8 r4010 were different than those returned by the equivalent FSL model or by simply running a T-test in the Matlab command window (with FSL, Matlab, and earlier SPMs being identical, within reasonable rounding error).
Upon further investigation, I see that the difference arises from line 178 of spm_contrasts.m, where the parameter estimate is divided by standard error to yield the T-statistic. The line is now:
Z=cB./(SE+exp(-8)*max(SE));
whereas previously it did not contain the (+exp(-8)*max(SE)) bit. I believe this is the change referred to thus in the release notes: "Problems with using SPM to test for between-subject effects in contrasts based on source reconstructed MEEG data have been finessed by lower bounding the standard error of a t-test that forces very low variance and effect-size voxels to shrink to 0. This is hidden (in spm_contrasts.m) because it will not affect normal SPMs (where the scaling of the data is roughly uniform over the image)."
While the difference induced by this change is small, I think it may not be entirely inconsequential for some users. For instance, in my sample analysis, it changes the max T in the results from a "true" value of 18.37 to a value of 17.91. For smaller Ts, the change is less drastic, but it still equates to about 35 fewer voxels in the output passing an uncorrected p<.001 threshold, or about 600 fewer passing an uncorrected p<.05 threshold. This probably makes no difference for most analyses, but it might be a bit more than rounding error for those who are sticklers about precision.
Of course in our local copy we can just change that line back if we want our SPM Ts to agree with the others, but I thought I'd pass this along just as an FYI to others, and/or in case the folks at the FIL might want to tweak the line in question a bit further (e.g., to only apply the standard error correction when it is needed).
Cheers,
Matt
|