[R] applying lm on an array of observations with common design matrix

Ranjan Maitra maitra at iastate.edu
Thu Feb 22 06:15:03 CET 2007


On Sun, 18 Feb 2007 07:46:56 +0000 (GMT) Prof Brian Ripley <ripley at stats.ox.ac.uk> wrote:

> On Sat, 17 Feb 2007, Ranjan Maitra wrote:
> 
> > Dear list,
> >
> > I have a 4-dimensional array Y of dimension 330 x 67 x 35 x 51. I have a 
> > design matrix X of dimension 330 x 4. I want to fit a linear regression 
> > of each
> >
> > lm( Y[, i, j, k] ~ X). for each i, j, k.
> >
> > Can I do it in one shot without a loop?
> 
> Yes.
> 
> YY <- YY
> dim(YY) <- c(330, 67*35*51)
> fit <- lm(YY ~ X)
> 
> > Actually, I am also interested in getting the p-values of some of the 
> > coefficients -- lets say the coefficient corresponding to the second 
> > column of the design matrix. Can the same be done using array-based 
> > operations?
> 
> Use lapply(summary(fit), function(x) coef(x)[3,4])  (since there is a 
> intercept, you want the third coefficient).

In this context, can one also get the variance-covariance matrix of the coefficients?

Thank you, and best wishes!
Ranjan 



> Note that this will give a vector, so set its dimension to c(67,35,51) to 
> relate to the original array.
> 
> I have not BTW looked into the memory requirements here, and you might 
> want to do this on slices of the array for that reason.
> 
> -- 
> Brian D. Ripley,                  ripley at stats.ox.ac.uk
> Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
> University of Oxford,             Tel:  +44 1865 272861 (self)
> 1 South Parks Road,                     +44 1865 272866 (PA)
> Oxford OX1 3TG, UK                Fax:  +44 1865 272595
>



More information about the R-help mailing list