21 Otros aspectos importantes

En este capítulo se presentan algunos aspectos importantes relacionados con modelación y que no se pudieron incluir en los capítulos anteriores.

¿Qué otras funciones hay en R para ajustar un modelo?

Hay 5 funciones en el paquete básico stats para ajustar un modelo de regresión, esas funciones son:

lm(formula, data, subset, weights, na.action,
   method = "qr", model = TRUE, x = FALSE, y = FALSE, qr = TRUE,
   singular.ok = TRUE, contrasts = NULL, offset, ...)

lm.fit(x, y, offset = NULL, method = "qr", tol = 1e-7,
       singular.ok = TRUE, ...)

lm.wfit(x, y, w, offset = NULL, method = "qr", tol = 1e-7,
        singular.ok = TRUE, ...)

.lm.fit(x, y, tol = 1e-7)

lsfit(x, y, wt = NULL, intercept = TRUE, tolerance = 1e-07, yname = NULL)

De todas las anteriores funciones la más conocida y usada es lm. Invito al lector a que consulte la ayuda de las funciones y explore las ventajas que cada una de ellas tiene.

Ejemplo

Invéntese un problema de regresión lineal simple y use la función lm.fit para encontrar los parámetros del modelo.

Solución

Supongamos que tenemos las variables que se muestran a continuación.

y <- c(4, 2, 3, 1, 5)
x <- c(2, 5, 7, 9, 1)

Para usar la función lm.fit es necesario que el argumento x sea una matriz, por esa razón vamos a construir la matriz X usando el vector x.

X <- cbind(intercepto=1, variable=x)
X
##      intercepto variable
## [1,]          1        2
## [2,]          1        5
## [3,]          1        7
## [4,]          1        9
## [5,]          1        1

Ahora ya podemos usar la función lm.fit de la siguiente forma.

fit <- lm.fit(x=X, y=y)
coef(fit)
## intercepto   variable 
##  5.0357143 -0.4241071

De la salida anterior tenemos que \(\hat{\beta}_0=5.036\) y \(\hat{\beta}_1=-0.424\).

Modelos de regresión con grandes conjuntos de datos

En ocasiones tenemos grandes bases de datos y cuando queremos ajustar un modelo de regresión se nos pueden presentar problemas porque saturamos la memoria de nuestro computador.

En este enlace usted podrá encontrar una publicación de Yixuan Qiu en el 2011 quien explica qué hacer para abordar este tipo de situaciones.

Fast lm in R

Martin Maechler en 2015 escribió una publicación en Rpubs en la cual compara el tiempo que tardan las funciones lm, lsfit y .lm.fit para ajustar un modelo de regresión. Martin Maechler creó 5 funciones basadas en lm, lsfit y .lm.fit para obtener los parámetros de un modelo y luego comparó los tiempos de procesamiento. Abajo una figura con los resultados de la comparación de tiempos.

¿Cuáles opciones demoran menos tiempo?