From: Brian Ripley

As a first shot, use lm with a matrix response. That fits them all at once with one QR-decomposition. No analogue for glm or lmer, though, since for those the iterative fits run do depend on the response.

Thanks Brian, that's very helpful. Also thanks to Kevin Wright who suggested using lsfit(x,Y) as being faster than lm for a Y matrix.


I've since worked out that I can bypass even more lm machinery by basing my permutation test significance thresholds on the RSS from qr.resid().
Since,


    y = QRb + e
  Q'y = Rb + Q'e
  RSS = || Q'y - Rb ||

then I can do

  X.qr <- qr(X)

once, and for every instance of y calculate

  e   <- qr.resid(X.qr, y)
  rss <- e %*% e

recording them in

  rss.for.all.fits[i] <- rss

which gives me an empirical distribution of RSS scores. The degrees of freedom in my X matrix are constant throughout (I should have said that before), so all RSS's are on a level footing and map trivially to the p-value. I can therefore take the RSS at, say, the 5th percentile, turn it into a p-value and report that as my 5% threshold.

Thanks again,

William

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Dr William Valdar               ++44 (0)1865 287 717
Wellcome Trust Centre           [EMAIL PROTECTED]
for Human Genetics, Oxford      www.well.ox.ac.uk/~valdar

______________________________________________
[email protected] mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html

Reply via email to