Dear Allison and Darren,
I have been reading up on your posts and I can also confirm that using
"sum" in MATLAB produces the rounding error. I also think that it is more
important to check the actual contrast weight, not the sum, because MATLAB
has some floating point problems with it.
So, to check the contrast weight vector you can type:
format long
[ones(1,10)/10 -ones(1,4)/4]
and this yields on my computer:
ans =
Columns 1 through 4
0.100000000000000 0.100000000000000 0.100000000000000 0.100000000000000
Columns 5 through 8
0.100000000000000 0.100000000000000 0.100000000000000
0.100000000000000
Columns 9 through 12
0.100000000000000 0.100000000000000 -0.250000000000000
-0.250000000000000
Columns 13 through 14
-0.250000000000000 -0.250000000000000
You can see that it is exact because of the trailing zeros in the mantissa.
I suggest, that you try this out on your machine and see if it is accurate.
Maybe we can narrow down the problem this. But I agree with Darren that
this is most likely not the problem.
Best,
Jan
Darren Gitelman wrote:
> No rule that I know of other than simpler is easier.
>
> The only other thing to check is that you have the latest updates.
>
> Darren
>
>
> On Aug 5, 2008, at 10:27 AM, "Nugent, Allison C. (NIH/NIMH) [E]"
> <[log in to unmask]> wrote:
>
>> My nc is 2, so I have n1+n2+2+2+4 columns.
>>
>> Is there a rule of thumb for which effects to include?
>>
>> If I really only need the subject and interaction effects (a n1+n2+4
>> column matrix) wouldn't the main effect of group contrast just be
>>
>> ones(1,n1)/n1 -ones(1,n2)/n2 ones(1,nc)/nc -ones(1,nc)/nc
>>
>> In any case, I'm at a complete loss as to why these contrasts aren't
>> valid for me. I was also working on a much simpler 2 group/no
>> conditions spm2 model yesterday, where the design matrix is all the
>> subject effects followed by the covariate and the simple
>> [ones(1,n1)/n1 -ones(1,n2)/n2] contrast wouldn't work.
>>
>> Thanks for your help, though - when I execute the commands below, I
>> get essentially the same thing.
>>
>> Allison
>>
>>
>> -----Original Message-----
>> From: Darren Gitelman [mailto:[log in to unmask]]
>> Sent: Mon 8/4/2008 11:13 PM
>> To: Nugent, Allison C. (NIH/NIMH) [E]; [log in to unmask]
>> Subject: RE: [SPM] correctly specifying repeated measures mixed model
>> in SPM5
>>
>> Allison:
>>
>> Your contrast looks correct. I have a set of test analyses and using a
>> contrast exactly as you describe below is perfectly valid. By the way I
>> assume you have n1+n2+2+3+6 columns in your design.
>>
>> In any case inclusion of the main effects makes the design overly complex
>> and you can get similar results by only including the subject and
>> interaction effects. In that case your group contrast would be
>>
>> ones(1,n1)/n1 -ones(1,n2)/n2 MEg zeros(1,nc) ones(1,nc)/nc -ones(1,nc)/nc
>>
>> With respect to the roundoff errors, my guess is that this is to be
>> expected, although I know nothing about the algorithms for floating point
>> calculations. Attached is a plot of the rounding errors for every
>> combination of n1 and n2 from 1:100.
>>
>> for n1 = 1:100
>> for n2 = 1:100
>> out(n1,n2)=sum([[ones(1,n1)/n1], [-ones(1,n2)/n2]]);
>> end
>> end
>> figure
>> surf(1:100,1:100,out)
>> shading interp
>>
>> It makes a very pretty picture, and as you can see there is some type of
>> systematic variation in the roundoff errors that gradually increases
>> as n1
>> and n2 increase. I don't know if this is related to floating point
>> calculations at the machine level or from matlab. The numbers vary
>> between
>> -4.16e-015 to 4.13e-015. There are some actual zeros in the
>> calulation, but
>> they don't have any obvious pattern. See the black and white figure.
>> Nevertheless, I don't think this is what is giving you the problem
>> though as
>> the contrast works as noted above.
>>
>> sorry not to be of more help.
>> darren
>>
>>> -----Original Message-----
>>> From: Nugent, Allison C. (NIH/NIMH) [E] [mailto:[log in to unmask]]
>>> Sent: Tuesday, August 05, 2008 8:45 AM
>>> To: Darren Gitelman; [log in to unmask]
>>> Subject: RE: [SPM] correctly specifying repeated measures
>>> mixed model in SPM5
>>>
>>> It's still not working - I split this original post into two threads.
>>>
>>> I was originally trying to evaluate the full "main effect of
>>> group" contrast from page 10 of Jan's tutorial.
>>>
>>> Briefly, n1 and n2 are the N for groups 1 and 2 nc=num of
>>> conditions=2, ng=number of groups=2
>>> MEg=[1 -1]
>>>
>>> For a design matrix containing (in this order) subject
>>> effects, groups effects, condition effects, and
>>> group*condition interaction effects, the main effect of gruop
>>> contrast is:
>>>
>>> ones(1,n1)/n1 -ones(1,n2)/n2 MEg zeros(1,nc) ones(1,nc)/nc
>>> -ones(1,nc)/nc
>>>
>>> At one point I got this to work, but I only seem able to
>>> replicate failure and not success.
>>>
>>> I've tried just the first portion: ones(1,n1)/n1
>>> -ones(1,n2)/n2, which should be a valid contrast on its own,
>>> but I still get the "invalid contrast" message. And, when I
>>> sum the contrast in the matlab window, its close, but not
>>> equal to zero.
>>>
>>> In fact, even this:
>>>
>>> sum([ones(1,10)/10 -ones(1,4)/4])
>>>
>>> which should be evaluated to 0 without any problem with
>>> rounding erroris evauated as:
>>>
>>> -1.1102E-16
>>>
>>> Which makes me believe that something is seriously wrong with
>>> my matlab configuration. Has anyone seen this before?
>>>
>>> Allison
>>>
>>> -----Original Message-----
>>> From: Darren Gitelman [mailto:[log in to unmask]]
>>> Sent: Mon 8/4/2008 4:30 AM
>>> To: Nugent, Allison C. (NIH/NIMH) [E]; [log in to unmask]
>>> Subject: RE: [SPM] correctly specifying repeated measures
>>> mixed model in SPM5
>>>
>>> Allison
>>>
>>> This should work. It is close to eps (minimum number in
>>> Matlab). What contrast are you trying to set up and what is
>>> your design?
>>>
>>> Darren
>>>
>>>> -----Original Message-----
>>>> From: SPM (Statistical Parametric Mapping)
>>> [mailto:[log in to unmask]]
>>>> On Behalf Of Allison Nugent
>>>> Sent: Monday, August 04, 2008 2:08 PM
>>>> To: [log in to unmask]
>>>> Subject: Re: [SPM] correctly specifying repeated measures
>>> mixed model
>>>> in SPM5
>>>>
>>>> I think I spoke too soon regarding my success with getting symbolic
>>>> contrasts to work. At one point, I did manage to make this
>>> work, but
>>>> now,
>>>>
>>>> sum(ones(1,n1)/n1 -ones(1,n2)/n2)) = 9.43E-16
>>>>
>>>> instead of zero, which is exasperating! Is there something I can
>>>> change in my setup to fix this?
>>>>
>>>> Thanks!
>>>>
>>>> Allison
>>>>
>>>
>>>
>>>
>>
>
--
Jan Gläscher, Ph.D. Div. Humanities & Social Sciences
+1 (626) 395-3898 (office) Caltech, Broad Center, M/C 114-96
+1 (626) 395-2000 (fax) 1200 E. California Blvd
[log in to unmask] Pasadena, CA 91125
|