I have found a major bug in coxme library, routine coxme.varcheck.s. The
definition of "major" is that you can get wrong answers, without any warning.
If -- A varlist was provided, containing multiple variance matrices,
and the rescale=T argument is set (the default)
and one of the matrices other than the first one on the list is rescaled
and the first element of the list is not a bdsI() term
then the list is corrupted.
This will mostly affect people using fits with kinship matrices, which often
have 1/2 on the diagonal.
A copy of the repaired routine can be found for the next few days at
ftp://ftp.mayo.edu/pub/therneau (anonymous ftp). The library containing all
of the functions found on the department web page www.mayo.edu/biostatistics
has also been updated.
Terry Therneau
-----------------------------------
Detail: Suppose we have the call
> fit <- coxme(Surv(time, status) ~ x1, data=mydata, random= ~1|id,
varlist=list(var1, var2, var3))
and var3 has diagonal elements of 1/2. The correct result of coxme.varcheck
would be
list(var1, var2, 2*var3)
the current result is
list(2*var3, var2, var3)
the result being that coxme just plain fits the wrong model. (It fits it
correctly, just not the model we think it is fitting.)
Thanks to Gilda Garibotti for pointing out the problem. She had, luckily
for us, done fits one time with list(var1, var2) and another time as
list(var2, var1), and got different answers. In my defense, we have
tested lots of models with multiple variance matrices, but never
encountered the problem (I tend to rescale my kinship matrices before
plugging them into coxme).
|