Cómo realizar una regresión lineal múltiple en R

Esta guía muestra un ejemplo de cómo realizar una regresión lineal múltiple en R, que incluye:

  • Examinar los datos antes de ajustar el modelo
  • Encajando el modelo
  • Comprobando los supuestos del modelo
  • Interpretar la salida del modelo
  • Evaluación de la bondad de ajuste del modelo
  • Usar el modelo para hacer predicciones

¡Saltemos!

Configuración

Para este ejemplo, usaremos el conjunto de datos R integrado mtcars , que contiene información sobre varios atributos para 32 autos diferentes:

#ver las primeras seis líneas de mtcars
cabeza (mtcars)

# mpg cyl disp hp drat wt qsec vs am gear carb
# Mazda RX4 21,0 6160110 3,90 2,620 16,46 0 1 4 4
# Mazda RX4 Wag 21.0 6160110 3.90 2.875 17.02 0 1 4 4
# Datsun 710 22,8 4108 93 3,85 2,320 18,61 1 1 4 1
#Hornet 4 Impulso 21,4 6 258110 3,08 3,215 19,44 1 0 3 1
#Hornet Sportabout 18,7 8360175 3,15 3,440 17,02 0 0 3 2
#Valiente 18,1 6225105 2,76 3,460 20,22 1 0 3 1

En este ejemplo, crearemos un modelo de regresión lineal múltiple que utiliza mpg como variable de respuesta y disp , hp y drat como variables predictoras.

#cree un nuevo marco de datos que contenga solo las variables que nos gustaría usar para los
 datos <- mtcars [, c ("mpg", "disp", "hp", "drat")]

#ver las primeras seis filas del nuevo encabezado del marco de
 datos (datos)

# mpg disp hp drat
# Mazda RX4 21.0 160110 3.90
# Mazda RX4 Wag 21.0 160110 3.90
# Datsun 710 22,8 108 93 3,85
#Hornet 4 Unidad 21,4 258110 3,08
#Hornet Sport sobre 18,7 360175 3,15
#Valiente 18.1 225105 2.76

Examinando los datos

Antes de ajustar el modelo, podemos examinar los datos para comprenderlos mejor y también evaluar visualmente si la regresión lineal múltiple podría ser un buen modelo para ajustarse a estos datos.

En particular, debemos verificar si las variables predictoras tienen una asociación lineal con la variable de respuesta, lo que indicaría que un modelo de regresión lineal múltiple puede ser adecuado.

Para hacerlo, podemos usar la función pares () para crear un diagrama de dispersión de cada posible par de variables:

pares (datos, pch = 18, col = "steelblue")

Parcela en R

De este diagrama de pares podemos ver lo siguiente:

  • mpg y disp parecen tener una fuerte correlación lineal negativa
  • mpg y hp parecen tener una fuerte correlación lineal positiva
  • mpg y drat parecen tener una correlación lineal negativa modesta

Tenga en cuenta que también podríamos usar la función ggpairs () de la biblioteca GGally para crear una gráfica similar que contenga los coeficientes de correlación lineal reales para cada par de variables:

# instalar y cargar la biblioteca GGally
install.packages ("GGally")
biblioteca (GGally)

#generar la trama de pares
 ggpairs (datos)

Parcela en R

Cada una de las variables predictoras parece tener una correlación lineal notable con la variable de respuesta mpg , por lo que procederemos a ajustar el modelo de regresión lineal a los datos.

Ajuste del modelo

La sintaxis básica para ajustar un modelo de regresión lineal múltiple en R es la siguiente:

lm (variable_respuesta ~ variable_predictor1 + variable_predictor2 + ..., datos = datos)

Usando nuestros datos, podemos ajustar el modelo usando el siguiente código:

modelo <- lm (mpg ~ disp + hp + drat, data = data)

Comprobación de supuestos del modelo

Antes de proceder a verificar la salida del modelo, primero debemos verificar que se cumplan los supuestos del modelo. Es decir, necesitamos verificar lo siguiente:

1. La distribución de los residuos del modelo debe ser aproximadamente normal.

Podemos comprobar si se cumple esta suposición creando un histograma simple de residuos:

hist (residuales (modelo), col = "steelblue")

Histograma de residuos en R

Aunque la distribución está ligeramente sesgada a la derecha, no es lo suficientemente anormal como para causar preocupaciones importantes.

2. La varianza de los residuales debe ser consistente para todas las observaciones.

Esta condición preferida se conoce como homocedasticidad. La violación de este supuesto se conoce como heterocedasticidad . Para comprobar si se cumple esta suposición, podemos crear un valor ajustado frente a una gráfica residual:

#crear valor ajustado frente a gráfico residual
plot (ajustado (modelo), residuales (modelo))

#add línea horizontal en 0
 abline (h = 0, lty = 2)

Gráfica de valores ajustados vs residuales en R

Idealmente, nos gustaría que los residuales estuvieran igualmente dispersos en cada valor ajustado. Podemos ver en el gráfico que la dispersión tiende a ser un poco más grande para valores ajustados más grandes, pero este patrón no es lo suficientemente extremo como para causar demasiada preocupación.

Interpretación de la salida del modelo

Una vez que hayamos verificado que los supuestos del modelo se cumplen suficientemente, podemos ver la salida del modelo usando la función summary () :

resumen (modelo)

#Llamada:
#lm (fórmula = mpg ~ disp + hp + drat, data = data)
#
#Derechos residuales de autor:
# Mín. 1T Mediana 3T Máx. 
# -5.1225 -1.8454 -0.4456 1.1342 6.4958 
#
#Coeficientes:
# Estimar Std. Valor t de error Pr (> | t |)   
# (Intercepción) 19,344293 6,370882 3,036 0,00513 **
#disp -0.019232 0.009371 -2.052 0.04960 * 
#hp -0.031229 0.013345 -2.340 0.02663 * 
#drat 2.714975 1.487366 1.825 0.07863. 
# ---
#Signif. códigos: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0,1 pulg. 1
#
# Error estándar residual: 3.008 en 28 grados de libertad
# R-cuadrado múltiple: 0,775, R-cuadrado ajustado: 0,7509 
# Estadístico F: 32.15 en 3 y 28 DF, valor p: 3.28e-09

Desde la salida podemos ver lo siguiente:

  • El estadístico F general del modelo es 32,15 y el valor p correspondiente es 3,28e-09 . Esto indica que el modelo general es estadísticamente significativo. En otras palabras, el modelo de regresión en su conjunto es útil.
  • disp es estadísticamente significativo al nivel de significancia de 0.10. En particular, el coeficiente de la salida del modelo indica que un aumento de una unidad en disp está asociado con una disminución de -0.019 unidades, en promedio, en mpg , asumiendo que hp y drat se mantienen constantes.
  • hp es estadísticamente significativo al nivel de significancia de 0.10. En particular, el coeficiente de la salida del modelo indica que un aumento de una unidad en hp está asociado con una disminución de -0.031 unidades, en promedio, en mpg , asumiendo que disp y drat se mantienen constantes.
  • drat es estadísticamente significativo al nivel de significación de 0,10. En particular, el coeficiente del resultado del modelo indica que un aumento de una unidad en drat está asociado con un aumento de 2.715 unidades, en promedio, en mpg , asumiendo que disp y hp se mantienen constantes.

Evaluación de la bondad de ajuste del modelo

Para evaluar qué tan «bueno» se ajusta el modelo de regresión a los datos, podemos observar un par de métricas diferentes:

1. Múltiples R-cuadrado

Mide la fuerza de la relación lineal entre las variables predictoras y la variable de respuesta. Un múltiplo R-cuadrado de 1 indica una relación lineal perfecta, mientras que un múltiplo R-cuadrado de 0 indica que no hay relación lineal alguna.

Múltiple R también es la raíz cuadrada de R-cuadrado, que es la proporción de la varianza en la variable de respuesta que se puede explicar por las variables predictoras. En este ejemplo, el múltiplo R-cuadrado es 0,775 . Por tanto, el R cuadrado es 0,775 2 = 0,601 . Esto indica que los predictores del modelo pueden explicar el 60,1% de la varianza en mpg .

Relacionado: ¿Qué es un buen valor R cuadrado?

2. Error estándar residual

Mide la distancia promedio que los valores observados caen de la línea de regresión. En este ejemplo, los valores observados caen un promedio de 3.008 unidades de la línea de regresión .

Relacionado: Comprensión del error estándar de la regresión

Usar el modelo para hacer predicciones

A partir de la salida del modelo, sabemos que la ecuación de regresión lineal múltiple ajustada es la siguiente:

mpg hat = -19.343 – 0.019 * disp – 0.031 * hp + 2.715 * drat

Podemos usar esta ecuación para hacer predicciones sobre lo que serán las millas por galón para nuevas observaciones . Por ejemplo, podemos encontrar el valor predicho de mpg para un automóvil que tiene los siguientes atributos:

  • disp = 220
  • CV = 150
  • drat = 3
# definir los coeficientes de la salida del modelo
intercepción <- coef (resumen (modelo)) ["(Intercepción)", "Estimación"]
disp <- coef (resumen (modelo)) ["disp", "Estimación"]
hp <- coef (resumen (modelo)) ["hp", "Estimación"]
drat <- coef (resumen (modelo)) ["drat", "Estimación"]

#utilice los coeficientes del modelo para predecir el valor de la
 intersección de mpg + disp * 220 + hp * 150 + drat * 3

# [1] 18.57373

Para un automóvil con disp = 220, hp = 150 y drat = 3, el modelo predice que el automóvil tendría un mpg de 18.57373 .

Puede encontrar el código R completo utilizado en este tutorial aquí .

Recursos adicionales

Cómo realizar una regresión cuadrática en R
Cómo realizar una regresión polinomial en R
Cómo realizar una regresión exponencial en R

  • https://r-project.org
  • https://www.python.org/
  • https://www.stata.com/

Deja un comentario

Se utiliza una prueba F parcial para determinar si existe una diferencia estadísticamente significativa entre un modelo de regresión y…
statologos comunidad-2

Compartimos información EXCLUSIVA y GRATUITA solo para suscriptores (cursos privados, programas, consejos y mucho más)

You have Successfully Subscribed!