Regresión Lineal en R: Ejemplo Práctico Paso a Paso

By Leonard Cucoses
Pruebas EstadísticasProgramación en R

En este ejemplo práctico de regresión lineal en R, aprenderás cómo predecir la eficiencia de combustible de un automóvil según su peso. Comenzaremos importando un dataset, calcularemos la regresión lineal con la función lm(), haremos predicciones con la función predict() y aprenderemos a interpretar los resultados de la regresión lineal en R.

Aunque usaremos el dataset de demostración mtcars de R para mostrar cómo calcular la regresión lineal, puedes usar cualquier dataset que contenga una variable independiente y una variable dependiente.

Sin más preámbulos, abre R o RStudio en tu computadora y comencemos.

Paso 1: Importar un Dataset en R

Para comenzar, necesitamos un dataset con el cual trabajar. Usaremos el dataset mtcars, que contiene el peso y la eficiencia de combustible (en millas por galón) de diferentes automóviles. Este dataset viene integrado en R y se puede cargar con la función data(). Escribe lo siguiente en la consola de R:

data(mtcars)

Puedes explorar los datos usando la función head(), que mostrará las primeras filas del dataset:

head(mtcars)

El resultado debería verse así:

 mpg cyl disp hp drat wt qsec vs am gear carb
Mazda RX4 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4
Mazda RX4 Wag 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4
Datsun 710 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1
Hornet 4 Drive 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1
Hornet Sportabout 18.7 8 360 175 3.15 3.440 17.02 0 0 3 2
Valiant 18.1 6 225 105 2.76 3.460 20.22 1 0 3 1

Como puedes ver, el dataset contiene información sobre mpg (millas por galón), cyl (cilindros), disp (cilindrada), hp (caballos de fuerza), drat (relación del eje trasero), wt (peso), qsec (tiempo en cuarto de milla), vs (tipo de motor), am (transmisión), gear (velocidades) y carb (carburadores) para diferentes marcas de automóviles.

Si necesitas trabajar con tus propios datos, consulta nuestra guía sobre cómo importar archivos CSV en R.

Paso 2: Calcular la Regresión Lineal en R

Ahora que tenemos nuestros datos cargados, podemos realizar la regresión lineal. Para esto, usamos la función lm():

modelo <- lm(mpg ~ wt, data = mtcars)

El primer argumento de la función es una fórmula que especifica el modelo. En este caso, el modelo predice mpg (eficiencia de combustible) usando wt (peso). El argumento data = mtcars indica que el dataset a utilizar es mtcars.

Paso 3: Obtener el Resumen del Modelo de Regresión

Una vez ajustado el modelo, puedes obtener un resumen con la función summary(). Este resumen incluye información sobre los residuos, coeficientes, valor R-squared, estadístico F y p-value.

Así se obtiene el resumen del modelo:

summary(modelo)

El resumen del modelo de regresión lineal debería verse así:

Call:
lm(formula = mpg ~ wt, data = mtcars)

Residuals:
    Min      1Q  Median      3Q     Max
-4.5275 -2.3279 -0.4826  1.2975  6.8724

Coefficients:
            Estimate Std. Error t value Pr(>|t|)
(Intercept)  37.2851     1.8245  20.527  < 2e-16 ***
wt           -5.3445     0.5534  -9.659 1.29e-10 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 2.576 on 30 degrees of freedom
Multiple R-squared:  0.7528,	Adjusted R-squared:  0.7446
F-statistic: 91.38 on 1 and 30 DF,  p-value: 1.294e-10

Paso 4: Interpretar los Resultados de la Regresión Lineal

Ahora que tenemos nuestro resultado, aquí te explicamos cómo interpretar los resultados de la regresión lineal para nuestro ejemplo:

  • El resultado muestra que el coeficiente para wt (peso) es -5.34447, y el intercepto es 37.28536.

  • El p-value es menor a 0.05, lo que indica que la relación entre el peso y la eficiencia de combustible es estadísticamente significativa.

  • El valor R-squared, que mide la proporción de la variación en la variable de respuesta explicada por la variable predictora, es 0.7528. Esto significa que el peso del automóvil puede explicar el 75.28% de la variación en la eficiencia de combustible.

Para entender mejor los conceptos de linealidad en estadística, consulta nuestra guía dedicada.

Paso 5: Graficar la Línea de Regresión

Usar solo números sin visualizarlos en un gráfico no es ideal. Puedes graficar la línea de regresión usando el paquete ggplot2 en R. Aquí tienes una guía sobre cómo instalar paquetes en R, en caso de que la necesites.

library(ggplot2)
 
# Crear un gráfico de dispersión
ggplot(mtcars, aes(x=wt, y=mpg)) +
 geom_point() +
 geom_smooth(method='lm', se=FALSE) +
 ggtitle("Regresión Lineal de mpg vs wt")

El gráfico de dispersión muestra la relación entre el peso (wt) y la eficiencia de combustible (mpg). La línea representa la línea de regresión, que es la línea de mejor ajuste a través de los datos.

La línea se basa en los coeficientes del modelo de regresión lineal que ajustamos anteriormente. El gráfico de dispersión proporciona una representación visual de la relación entre las variables predictora y de respuesta, y la línea de regresión resume esa relación.

Paso 6: Usar la Regresión Lineal en R para Hacer Predicciones

Ahora que tenemos nuestro modelo de regresión lineal en R, es momento de usarlo para hacer predicciones con la siguiente sintaxis:

predicciones <- predict(modelo, newdata=data.frame(wt=c(3,4)))
predicciones

El resultado de este código serán los valores predichos de mpg para dos valores de wt, donde:

  • predict es la función de R utilizada para hacer predicciones basadas en un modelo de regresión lineal.

  • modelo es el objeto que almacena el modelo de regresión lineal ajustado. En este ejemplo, modelo es el objeto creado a partir del análisis de regresión lineal usando la función lm.

  • newdata es un argumento que especifica los valores de la variable independiente (en este caso, wt) para los cuales deseas hacer predicciones. Los valores se pasan como un data frame usando la función data.frame. Los valores para wt en este ejemplo son c(3,4), lo que significa que las predicciones se harán para automóviles que pesan 3,000 y 4,000 libras, respectivamente.

El resultado de este código serán los valores predichos de la variable dependiente (en este caso, mpg) basados en los valores de la variable independiente especificados en newdata.

Y aquí está el resultado de esta predicción:

 1 2
22.56687 20.80958

Estos números representan los valores predichos de mpg para dos automóviles con pesos de 3,000 libras y 4,000 libras, respectivamente. Los valores predichos se interpretan así:

  • Para un automóvil que pesa 3,000 libras, el modelo de regresión lineal predice un valor de 22.57 mpg.

  • Para un automóvil que pesa 4,000 libras, el modelo de regresión lineal predice un valor de 20.81 mpg.

Es importante tener en cuenta que estas son solo predicciones y pueden no coincidir necesariamente con los valores reales de mpg para estos automóviles. Sin embargo, el modelo de regresión lineal nos proporciona una forma de estimar la relación entre wt y mpg y hacer predicciones basadas en esta relación. Esto puede ser útil para la toma de decisiones y predicciones en aplicaciones del mundo real.

Si necesitas verificar las predicciones, puedes comparar los valores predichos con los valores reales usando la función cbind() para combinarlos en un solo data frame:

resultados <- cbind(predicciones, mtcars$mpg)

Para complementar este análisis, te recomendamos revisar nuestra guía de estadísticas descriptivas en R para explorar tus datos antes de aplicar modelos de regresión.

Preguntas Frecuentes

Próximos Pasos

La regresión lineal en R es una herramienta poderosa para entender la relación entre variables y hacer predicciones. Ahora que dominas los fundamentos, puedes profundizar en tu análisis.

Si necesitas verificar que tus datos cumplen con el supuesto de normalidad antes de aplicar regresión, consulta cómo realizar la prueba de normalidad en R. Para aplicar la misma técnica de regresión en otra herramienta estadística, revisa nuestra guía de regresión lineal simple en Excel.