Dear Jan,

I recently started to use spm_ancova for analyses of behavioral data and I
have come to really like the flexibility of it. That is, the use of F/T
contrast to test for main effects, interactions and other specific
hypotheses in the data. However, I do have a couple of questions about the

1. Degrees of Freedom
spm_ancova compute the (effective) dfs for an F-contrast using the
Satterthwaite approximation

[trRV trRVRV] = spm_SpUtil('trRV',xX,V);
[trMV trMVMV] = spm_SpUtil('trMV',X1o,V);
df            = [trMV^2/trMVMV trRV^2/trRVRV];

Here is my question: is df(2) the corresponding degrees of freedom for a
T-contrast? (This seems to be the case (at least in spm_contrasts), but I
just want to be sure on this.

Yes, the df(1) should always be 1 for t-contrasts - a t-contrast is just special
case of an F-contrast (ignoring the sign)

And consequently, can compute a p-value for the F/T contrasts using
p = 1 - spm_Fcdf(F,df), % for F-contrasts and
p = 1 - spm_Tcdf(F,df(2)); % for T-contrasts (T-value also stored in F)


2. Error Covariance Constraints
What is the format of the specs for the error covariance constraints (V)?
Is this the same as the covariance components usually stored in xVi.Vi (a
cell array of different components)? Or do all these different covariance
components have to be collapsed into a single matrix in order to work for

They have to be collapsed into a single matrix V.  This would normally involve
optimizing the hyperparameters of each component using ReML.  For interest,
look at
spm_reml_ancova; however this is a more general routine with a slightly
more complicated model specification that allows for hierarchical models.

With very best wishes,