Hi Anderson,
Thanks for your reply, this is very helpful for me. I appreciate your
suggestion to manually orthogonalise the regressors. One thing puzzles
me still, which is that in my understanding Rb*A and Ra*B (using your
definition of them) will actually be correlated by exactly the same
amount as A and B are, just opposite signs. i.e.
corr(A,B)=-corr(Rb*A,Ra*B). So I don't yet see how exactly the proposal
helps. Am I missing something?
Thanks again and kind regards,
Floris
===
Hi Floris,
This is described in the FEAT manual:
https://fsl.fmrib.ox.ac.uk/fsl/fslwiki/FEAT/UserGuide#Appendix_B:_Design_Matrix_Rules
If this isn't the behaviour you'd like, one possible alternative is not
do to the orthogonalisation, save the design, load it into Matlab/Octave
(or R, etc), and do the orthogonalisation there by hand. Say you have
the EVs A and B. You could replace A for Rb*A, and B for Ra*B, where Ra
is the residual forming matrix due to A only, computed as I -
A*inv(A'*A)*A', and I is the identity matrix (of size N, N=number of
observations rows in the design matrix). Rb is computed similarly as I -
B*inv(B'*B)*B'. Then include in the design the derivatives if needed (as
indicated in the link above) and save.
I must say you may be disappointed, though. Like many people I have also
looked into this and have convinced myself that orthogonalisation rarely
pays off. Just use the design without it and you are safe.
All the best,
Anderson
On 15 March 2017 at 22:58, Floris van Vugt <[log in to unmask]> wrote:
Dear FSL developers and experts,
I have a question concerning how orthogonalisation is done in FSL,
and in particular what happens when multiple (in my case two) regressors
are orthogonalised with respect to one another.
In FSL, when I orthogonalise one regressor (EV), say A, with
respect to another, B, then indeed A changes to A' so that A' is
orthogonal to B. I confirmed this by extracting the columns in question
from the design.mat file. This makes sense.
However, if I create another analysis in which I orthogonalise A
with respect to B *and* also orthogonalise B with respect to A, then
something happens that I don't understand. I expected that A would be
changed to some A'' and B would be changed to some B'', so that A'' and
B'' are orthogonal. However, what I find in the design.mat file is that
in that case, A is orthogonalised w.r.t B. but B is left unchanged. In
other words, B has retained all the shared variance between A and B. If
I swap the order of the EVs in the GUI, and, same as before,
orthogonalise both regressors with respect to one another, the result is
different: now A remains unchanged and B is orthogonalised w.r.t. A.
In other words, if I specify in the GUI that I want two EVs to be
orthogonalised w.r.t. one another, then really what seems to be
happening depends on the order of the EVs in the GUI, with the latter
being unchanged.
My question is: (1) did I observe this behaviour correctly, and (2)
can you explain why this makes sense? The pattern of findings that I
describe above was counter-intuitive to me, because I believed that by
orthogonalising both regressors with respect to one another, both
regressors would change in some symmetric way. Instead, only some of the
regressors change, and which those are depends on the order in which
they are entered into the design matrix.
I tried to find specifications of how FSL performs
orthogonalisation, but was unable to find any mathematical details, so
this is why I resorted to trying out these various items.
Thanks in advance for any explanations.
Best wishes and thanks for your work on developing FSL,
Floris
--
Floris van Vugt, Ph.D.
Motor Control Lab, Psychology Dept.
McGill University
1205 Dr. Penfield Ave
Stewart Biology Building
Montreal QC Canada H3A 1B1
www.florisvanvugt.com
|