Hola, ¿qué tal? Si quieres mejorar la velocidad de ese cálculo puedes probar estas dos cosas:
1) Precalcular la matriz del modelo (?model.matrix) 2) Usar lm.fit en lugar de lm (?lm.fit) No es una vía sencilla pero si de verdad quieres mejorar el rendimiento no te queda otra que eliminar recálculos. Saludo, Carlos J. Gil Bellosta http://www.datanalytics.com El día 5 de julio de 2015, 17:50, Fernando Macedo <[email protected]> escribió: > Hola Jorge. > > Usando sapply mejoró un poco pero no demasiado en realidad. > > Una vez lo estuve relojeando a mclapply (y otras funciones de ese paquete), > pero no probé mas allá de algunos ejemplos. Voy a terminar este trabajo y > lo pruebo, ya te contaré cuanto mejoró. > > Un abrazo y gracias nuevamente! > > > > > > El 5 de julio de 2015, 11:27, Jorge I Velez <[email protected]> > escribió: > >> De nada, Fernando. >> >> Otra alternativa es usando mclapply() en el paquete "parallel". Estoy en >> Mac/Linux y funciona muy bien. Seguramente hay algunos equivalentes en >> Windows. >> >> Saludos, >> >> Jorge Velez >> JCSMR, Canberra >> >> >> >> 2015-07-04 12:17 GMT+10:00 Fernando Macedo <[email protected]>: >> >>> Muchas gracias Jorge! >>> >>> Si la opción del loop con for ya la tenía implementada y me demora >>> bastante por eso quería probar con apply o en este caso sapply, muchas >>> gracias! >>> >>> Saludos!! >>> >>> F Macedo >>> >>> El 03/07/15 a las 23:09, Jorge I Velez escribió: >>> >>> Hola Fernando, >>> >>> Podrias considerar las siguientes opciones: >>> >>> R2 <- vector("list", x) >>> for(i in 1:x){ >>> modelo <- lm(y ~ efectos[, 1:i]) >>> R2[[i]] <- summary(modelo)$r.squared >>> } >>> R2 >>> >>> opt2 <- sapply(1:x, function(i){ >>> modelo <- lm(y ~ efectos[, 1:i]) >>> summary(modelo)$r.squared >>> }) >>> opt2 >>> >>> Para mas información revisa ?sapply, ?lapply y ?lm. En caso de que >>> necesites otros parámetros del modelo de regresión, te sugiero revisar el >>> resultado de >>> >>> modelo <- lm(y ~ efectos[, 2]) >>> names(summary(modelo)) >>> >>> Saludos cordiales, >>> >>> Jorge Velez >>> JCSMR, Canberra >>> >>> >>> 2015-07-04 12:01 GMT+10:00 Fernando Macedo <[email protected]>: >>> >>>> Buenas a todos, acá estoy yo de nuevo con problemas de loops. >>>> >>>> Tengo el siguiente problema: un vector de datos (y) y una serie de >>>> efectos. El loop lo que intenta es evaluar el R² de modelos incrementando >>>> por vuelta una variable efecto. >>>> >>>> Seria algo así: >>>> >>>> for(i in 1:x) { >>>> modelo=lm(y~efectos[,1:i]) >>>> ... codigo para guardar R² y otros por cada vuelta... >>>> } >>>> >>>> apply() puede ir columna a columna pero no sé como hacer para que me >>>> vaya "acumulando columnas" por así decir. De echo no se si puede hacer. >>>> >>>> Espero haberme explicado y como siempre agradezco de antemano la >>>> atención. >>>> >>>> Un abrazo! >>>> >>>> -- >>>> Fernando Macedo >>>> >>>> _______________________________________________ >>>> R-help-es mailing list >>>> [email protected] >>>> https://stat.ethz.ch/mailman/listinfo/r-help-es >>>> >>> >>> >>> >> > > > -- > Fernando Macedo > > [[alternative HTML version deleted]] > > _______________________________________________ > R-help-es mailing list > [email protected] > https://stat.ethz.ch/mailman/listinfo/r-help-es _______________________________________________ R-help-es mailing list [email protected] https://stat.ethz.ch/mailman/listinfo/r-help-es
