# [R] regression on a matrix

From: Eduardo Leoni <e.leoni_at_gmail.com>
Date: Fri 04 Mar 2005 - 09:15:39 EST

Hi -

I am doing a monte carlo experiment that requires to do a linear regression of a matrix of vectors of dependent variables on a fixed set of covariates (one regression per vector). I am wondering if anyone has any idea of how to speed up the computations in R. The code follows:

#regression function
#Linear regression code

qreg <- function(y,x) {
X=cbind(1,x)
m<-lm.fit(y=y,x=X)
p<-m\$rank

r <- m\$residuals
n <- length(r)

Qr <- m\$qr
p1 <- 1:p
R <- chol2inv(Qr\$qr[p1, p1, drop = FALSE])   se <- sqrt(diag(R) * resvar)
b <- m\$coefficients
return(c(b,se))
}

#simulate

```a <- c(1,.63,.63,1)
a <- matrix(a,2,2)
c <- chol(a)
C <- 0.7
```

theta <- 0.8
sims <- 1000
n<-20
```u <- rnorm(n,0,sqrt(1-C))
w <- rgamma(n,C/theta,1/theta)
e <- rnorm(n,0,sqrt(w))

```

x1 <- rnorm(n)

```x <- x1*c[2,2]+c[1,2]*w
v <- e+u
y <- 1+x+v
w <- rgamma(n,C/theta,1/theta)

```

#create matrix of dep variable

newdep <- matrix(rnorm(length(y)*sims,y,sqrt(w)),c(length(y),sims))

monte <- apply(newdep,2,qreg,x=x)

R-help@stat.math.ethz.ch mailing list