I don't understand why the degrees of freedom (DF
) are different between TYPE=VC
and TYPE=FA0(1)
in case of a one-random effect mixed model. For example:
$$level_{ij} = \mu + \beta_1time + \gamma_i + \varepsilon_{ij}$$
where $\gamma\sim N(0,\sigma^2_\gamma)$ is the random intercept term, and $i$ the batch. The corresponding SAS code:
PROC MIXED DATA=data METHOD=REML;
CLASS batch;
MODEL level=time / DDFM=SAT ALPHAP=0.10 OUTP=out_p;
RANDOM int / SUBJECT=batch TYPE=FA0(1);
RUN;
The output out_p
will contain a column DF
representing the degrees of freedom.
When one runs the above code, but with TYPE=VC
, the DF
will be different (while everything else will be the same: model parameter estimates, BLUP and its variance). But I don't believe DF
should be different since essentially the parameter factorisation of the above model is the same under both VC
and FA0(1)
.
Why do I think DF
should be the same? Because VC
estimates $\sigma_\gamma$ of the random effect variance matrix $G=[\sigma^2_\gamma]$. The FA0(1)
will Cholesky-decompose the $G$ matrix, resulting in $G=[\sigma^2_\gamma]=[\lambda][\lambda]$ where the parameter $\lambda$ is mathematically equivalent to $\sigma_\gamma$.
Subsequently the DF
will be computed based on formula given in SAS PROC MIXED 14.1, p6090:
$$DF=\frac{2[l\hat{C}l']^2}{g'Ag}$$
Note that this formula is incomplete. The $l\hat{C}l'$ should be $\text{VAR}(w-\hat{w})$ where $w$ is the predictand, in line with Henderson (1984), Chapter 5, Eq.29. This also means that $g$ is the gradient of $\text{VAR}(w-\hat{w})$. With these corrections, I can confirm getting the same DF
-results as SAS for VC
and UN
using a handmade-made calculation. But I fail to understand where the difference in DF
comes from when using FA0(1)
.
Note also that the difference in DF
(sometimes differing by 10, hence cannot be due to rounding issues) is clear on specific datasets that I cannot share at this point. On other datasets, there is no difference (as expected).
Has anyone a clue what may be the cause? I rather think I am overseeing something, than calling it a SAS bug.