Dear all,
interesting discussion. I was only referring to the observation that (X'*X)^(-1) can't be solved, it results in a singular matrix. When of course reducing the matrix to independent vectors spanning the space of the model, this wouldn't be a problem anymore mathematically, I agree. Didn't know spm2 would do that for you, I simply never tried for that reason.
To illustrate, try this in matlab:
Xc=[1 1 1 0 0 0 1 1 1 0 0 0 1 1 1 0 0 0 1 1 1 0 0 0]'; % a block regressor
X=[Xc,ones(size(Xc))]; % a correct design matrix with an intercept added
Y=Xc+rand(24,1)/2; % simulate some data with a block pattern + noise
B=(X'*X)^(-1) * X'*Y; % estimate Betas. so far so good
X=[Xc,ones(size(Xc)),Xc]; % add an identical regressor
B=(X'*X)^(-1) * X'*Y; % estimate Betas again. problem:
B=(X'*X)^(-1) * X'*Y
Warning: Matrix is singular to working precision.
(Type "warning off MATLAB:singularMatrix" to suppress this warning.)
B =
NaN
NaN
NaN
Same results for adding Xc*3 for that matter.
This all only to illustrate that an extra constant regressor is not meaningful at all.
Wouldn't the contrasts to calculate be a little problematic to interprete when a reduced matrix is used? The Beta associated with an 'emty regressor' for such a session would mainly explain the baseline for that session, and not so much an activation amplitude for such a condition. I'm sure I am missing something here....
Cheers,
Bas
-----Oorspronkelijk bericht-----
Van: SPM (Statistical Parametric Mapping)
[mailto:[log in to unmask]]Namens Stephen J. Fromm
Verzonden: woensdag 23 maart 2005 16:41
Aan: [log in to unmask]
Onderwerp: Re: [SPM] empty conditions in design
On Wed, 23 Mar 2005 09:05:20 -0500, Satrajit Ghosh
<[log in to unmask]> wrote:
>Dear Jan and list,
>
>Thanks you for your replies. I do have batch scripts which do pretty
>much what you suggest, but this is precisely what I wanted to avoid.
>Perhaps my matrix algebra is conflicting with my SPM estimation.
>
>To give a clearer example, lets look at the following code.
>
>a = kron(eye(2),rand(20,10));
>a(:,[3,4,5,14,15,16]) = 0;
>[u,s,v] = svd(a);
>
>The empty columns would correspond to singular values of 0. And SPM
>does do a design matrix reduction to remove linear dependencies that
>exist. So, I don't see why specifying empty onsets is a problem
>mathematically.
The problem isn't mathematical, really. By linear algebra convention,
matrices don't have empty columns.
The issue is rather a computing language issue: It would be convenient if
columns could be designated as empty. I came across this problem while
scripting SPM2 stats to speed up design specification for some users with
unbalanced designs---if empty columns were allowed, I could specify the
order of conditions independently of runs (i.e., sessions). (This could
be done by making the columns of the design matrix elements of a cell
array.)
The way SPM is written, however, the columns can't be empty (which of
course is perfectly reasonable). Therefore, as I believe Jan Gläscher
implied, you have to batch or script around this.
>
>As Bas suggests and if X did have zeros in columns this estimation
>would be problematic.
>
>B= (X'X)^-1 x X'Y
>
>But, in SPM X is not really the created design matrix. It is a reduced
>form and contrasts get mapped to this reduced form. Hence, I'm trying
>to understand why the designers of SPM didn't allow empty conditions.
>
>Thanks again,
>
>Satra
>
>On Wed, 23 Mar 2005 12:47:32 +0100, Jan Gläscher
><[log in to unmask]> wrote:
>> Dear Satra and list,
>>
>> SPM won't let you estimate a design matrix with empty regressors as all
>> the other answers have correctly suggested. I will outline a solution
>> for a conditional design and contrast specification below, but I must
>> stress that it is complicated and therefore I would therefore strongly
>> recommend using the batching facilities in SPM2. If you are not
>> familiar with batching you will find a lot of sample batch files on this
>> list, e.g. Karl Friston's sample file
>>
>> http://www.jiscmail.ac.uk/cgi-bin/wa.exe?A2=ind02&L=spm&P=R282882&I=-1
>>
>> Now, there are 3 constraints to this problem that have to be taken into
>> account:
>>
>> (1) There must not be any empty regressors.
>> (2) For a valid parametric modulation there must be at least 2 trials
>> (= 2 onset) in the "onset" regressors (i.e. the one where you
>> specify your onsets)
>> (3) Contrast specification is tricky (Therefore I recommend a spcific
>> naming scheme for your regressors (and parametric modulations) which
>> you can later reference)
>>
>> Here is some example code for solving problem (1) and (2) ...
|