Dear all,
Following on from a distant thread:
http://www.jiscmail.ac.uk/cgi-bin/wa.exe?A2=ind0012&L=spm&P=R12832
I have been struggling to impliment an efficiency calculation to
include the effects of bandpass filtering. May I appeal once
again to the mathematically more gifted for some advice.
Firstly, regarding the following equations:
A. Efficiency proportional to trace(c'*inv(X'*X)*c)^-1
Friston et al, 99
B. Efficiency proportional to trace(c'*pinv(K*X)*K*K'*pinv(K*X)'*c)^-1
Friston et al, 00
Why is B not simply trace(c'*inv((K*X)'*(K*X))*c)^-1 ?
This last formula (which appears to yield the equivalent of the
unnormalized EMP calculation of Josephs & Henson 99) seems to
produce a somewhat different result (code attached)?
Is it the case for example that both are equally valid as
proportionality indices regardless of this discrepacy?
Incidentally, in the context of spm, whilst a filtering matrix K may be
derived using spm_make_filter, how might one obtain this from the
separate K.KL & K.KH matrices output by the faster spm_filter
function?
Does the 'explicit use of the projector form of the high pass component'
preclude a simple K.KL*K.KH convolution?
(thanks stephan for your previous help).
Also on a slightly different note, whilst efficiency calculations
tend mostly to be of theoretical interest, they are highly
pertinent to those of us who study random phenomena with a
paradigm that effectively varies accross sessions.
Are there any approaches out there to quantify absolutely,
efficiency in a useful way for such purposes?
Failing that, how meaningful would an approach be that expressed
efficiency (as calculated above for say a main effect/single
column design matrix) as a percentage of that of an equivalent
optimal design (for example a fixed length block design or even
the less optimal fixed SOA event-related design)?
Any help would be most welcome.
Yours,
Afraim
------------------------
Dr A Salek-Haddadi
Clinical Research Fellow
Institute of Neurology
------------------------
%Efficiency calculation example for a noisy sine wave.
data = rand(1,100);
data = data + sin((1:100)*(2*pi/100));
data = data - mean(data);
filterLF.Choice = 'specify';
filterLF.Param = 100;
filterHF.Choice = 'Gaussian';
filterHF.Param = 3;
K = spm_make_filter(100,1,filterHF,filterLF);
D = K*data';
friston1 = trace(inv(D'*D))^-1
friston2 = trace(pinv(K*data')*K*K'*pinv(K*data')')^-1
other = trace(inv((K*data')'*(K*data')))^-1
emp = sum(D.^2)
|