An email from Will Penny on how a contrast’s standard error is computed.
Subject: Re: Beta SE in SPM2?
From: Will Penny <wpenny@FIL.ION.UCL.AC.UK>
Date: Fri, 27 Feb 2004 11:26:35 +0000
To: SPM@JISCMAIL.AC.UK
Tobias,
> How do I extract beta SE in SPM2? As far as I can see I can only get
> y, Y, beta, and Bcov...have I missed something?
If you're referring to the Standard Error or the Standard deviation of the
parameter estimates then this isn't stored explicitly.
Its computed on the fly when one makes an inference about a contrast. See the
following lines (153-158) in spm_contrasts:
case 'T' %-Compute SPM{t} image
%---------------------------------------------------------------
cB = spm_get_data(xCon(ic).Vcon,XYZ);
l = spm_get_data(VHp,XYZ);
VcB = xCon(ic).c'*SPM.xX.Bcov*xCon(ic).c;
Z = cB./sqrt(l*VcB);
So, if you did a contrast xCon(ic).c'=[1 0 0 0] to test the null
hypothesis that the first parameter is zero then cB will be equal to
beta1 and sqrt(l*VcB) will be equal to std(beta1) - the standard
deviation of the first parameter estimate.
Note that l is the residual sum of squares at that voxel which is
stored in the image ResMS.img and accessed via the file handle VHp.
In this way SPM does'nt have to store Standard Deviations/covariances
for every voxel and beta - so saving disk space. But its not that
handy for what you want !
Hope this helps, Will.