Buenas tardes,

Estoy interesado en ajustar modelos de regresion beta {betareg} a un
conjunto de datos en el que se tienen una variable respuesta "y" y ~600K
variables independientes.  En el codigo en R que se encuentra en la parte
inferior presento un ejemplo en el que se tienen 500 variables
independientes  y la misma respuesta "y" para todos.  Tambien se encuentran
algunos tiempos de ejecucion y mi sessionInfo().

Me gustaria aumentar la velocidad de ejecucion del procdimiento. Alguna
idea?  Para 500 variables es razonable esperar 10-12 segundos, pero no para
el total de variables que tengo en mi aplicacion y mucho menos si se tienen
varias bases de datos con la misma estructura.

Muchas gracias a todos,
Jorge Ivan Velez


# datos
y <- rbeta(50, 5, 2)
X <- matrix(rnorm(50*500), ncol = 500)
colnames(X) <- paste('x', 1:ncol(X), sep = "")

# modelo beta para cada columna de X
require(betareg)

# option 1: aplicando una funcion creada "on-the-fly"
system.time({
betas <- t(apply(X, 2, function(x){
 d <- data.frame(x, y)
m <- betareg(y ~ x, data = d)
    beta <- summary(m)$coefficients$mean[2, c(1,4)]
    beta
    }))
    })
# user  system elapsed
# 10.959   0.175  11.166


# option 2:  creando una funcion auxiliar
foo <- function(x){
d <- data.frame(x, y)
 m <- betareg(y ~ x, data = d)
    beta <- summary(m)$coefficients$mean[2, c(1,4)]
    beta
    }

system.time({
betas <- t(apply(X, 2, foo))
    })
#  user  system elapsed
# 10.512   0.191  10.692


sessionInfo()
R version 2.13.0 Patched (2011-04-18 r55504)
Platform: x86_64-apple-darwin9.8.0/x86_64 (64-bit)

locale:
[1] en_US.UTF-8/en_US.UTF-8/C/C/en_US.UTF-8/en_US.UTF-8

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base

other attached packages:
[1] betareg_2.3-0 Formula_1.0-0

loaded via a namespace (and not attached):
[1] flexmix_2.3-5     lmtest_0.9-27     modeltools_0.2-17 multcomp_1.2-6
[5] sandwich_2.2-6    stats4_2.13.0


*

*

	[[alternative HTML version deleted]]

