Modelo de regresión lineal multiple

La regresión lineal múltiple es una extensión de la regresión lineal simple que permite modelar la relación entre una variable dependiente \(Y\) y múltiples variables independientes \(X_1, X_2, \dots, X_k\).

Este modelo surge cuando se desea explicar una respuesta utilizando más de un predictor, ya que muchos fenómenos del mundo real están influenciados por múltiples factores simultáneamente.

Se utiliza para:

  • Predecir valores de \(Y\) en función de varios predictores
  • Evaluar la influencia relativa de cada variable
  • Controlar el efecto de una variable mientras se examinan otras

Ecuación del modelo

La forma general del modelo de regresión lineal múltiple es:

\[ Y = \beta_0 + \beta_1 X_1 + \beta_2 X_2 + \cdots + \beta_k X_k + \varepsilon \]

Donde:

  • \(Y\): Variable dependiente (respuesta)
  • \(X_i\): Variables independientes (predictoras)
  • \(\beta_0\): Intercepto
  • \(\beta_i\): Coeficientes de regresión asociados a cada predictor
  • \(\varepsilon \sim \mathcal{N}(0, \sigma^2)\): Término de error aleatorio

Supuestos del modelo clásico Gauss-Markov

  1. Linealidad en los parámetros
  2. Independencia de los errores
  3. Homoscedasticidad: varianza constante de los errores
  4. No multicolinealidad perfecta entre predictores
  5. Normalidad de los errores (para inferencia estadística)

Los supuestos del modelo clásico Gauss-Markov son condiciones necesarias para que los estimadores obtenidos por Mínimos Cuadrados Ordinarios (OLS) sean:

  • Insesgados: su valor esperado es el verdadero valor poblacional
  • Eficientes: tienen la menor varianza posible entre los estimadores lineales insesgados

Es decir, bajo estos supuestos, los coeficientes estimados por OLS son los mejores estimadores lineales insesgados (BLUE: Best Linear Unbiased Estimators).


Supuestos del modelo

  1. Linealidad en los parámetros
    El modelo debe ser lineal respecto a los coeficientes: \[ Y = \beta_0 + \beta_1 X_1 + \cdots + \beta_k X_k + \varepsilon \]

  2. Esperanza del error igual a cero

Esto significa que los errores (residuos) tienen media cero. En términos prácticos, el modelo no tiene sesgo sistemático al predecir.

Cuando decimos que un modelo no tiene sesgo sistemático, nos referimos a que en promedio, las predicciones del modelo no se desvían del valor real.

\[ \mathbb{E}[\varepsilon_i] = 0 \]

Es decir, si repites muchas veces el modelo con diferentes muestras (o en teoría, infinitas veces), los errores se compensan entre sí: no tienden a ser siempre positivos o siempre negativos.

  1. No multicolinealidad perfecta entre los predictores
    Las variables explicativas no deben estar perfectamente correlacionadas. Esto garantiza que los coeficientes sean identificables.

En regresión múltiple:
Dos o más variables explicativas no deben estar perfectamente correlacionadas.

Esto permite que los coeficientes de cada predictor sean identificables y únicos.

*No aplica a regresión simple, ya que solo hay una \(X\).
Solo es relevante en regresión múltiple**.

  1. Homoscedasticidad (varianza constante de los errores)
    \[ \text{Var}(\varepsilon_i) = \sigma^2 \quad \forall i \]

La varianza de los errores debe ser constante a lo largo de todas las observaciones. Si este supuesto se viola, ocurre heterocedasticidad, y aunque los coeficientes siguen siendo insesgados, ya no son eficientes (no son BLUE).

  1. Independencia de los errores (no autocorrelación)
    \[ \text{Cov}(\varepsilon_i, \varepsilon_j) = 0 \quad \text{para } i \ne j \] Es crucial en análisis de datos temporales o espaciales.

Los errores no deben estar correlacionados entre sí. Este supuesto es clave en análisis de series temporales, donde los valores están ordenados en el tiempo.


Teorema de Gauss-Markov

Bajo estos cinco supuestos, los estimadores obtenidos por OLS son:

BLUE (Best Linear Unbiased Estimators):
Los mejores (mínima varianza), lineales e insesgados estimadores disponibles.

¿Qué tan buenos son los estimadores que obtenemos al usar regresión lineal por mínimos cuadrados (OLS)?

BLUE (Best Linear Unbiased Estimators):
- Best: tienen la mínima varianza posible
- Linear: son funciones lineales de los datos
- Unbiased: no están sistemáticamente desviados del valor real

Este teorema es válido tanto en regresión simple como en múltiple. Sin embargo, el supuesto de no multicolinealidad solo es relevante en el contexto múltiple, donde hay más de un predictor.

Carga de datos

# mtcars viene incluido en R
data(mtcars)
head(mtcars)
##                    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

La data mtcars (Motor Trend Car Road Tests) es un conjunto de datos clásico en R que contiene información sobre el rendimiento y características técnicas de 32 automóviles evaluados por la revista Motor Trend en 1974.

Descripción del dataset mtcars

El conjunto de datos mtcars contiene información técnica y de rendimiento de 32 automóviles. A continuación, se presenta la descripción de cada variable:

Variable Significado Tipo
mpg Millas por galón (eficiencia de combustible) Continua
cyl Número de cilindros Entera
disp Cilindrada (en pulgadas cúbicas) Continua
hp Caballos de fuerza Continua
drat Relación del eje trasero (rear axle ratio) Continua
wt Peso del vehículo (en 1000 libras) Continua
qsec Tiempo en recorrer 1/4 de milla (en segundos) Continua
vs Tipo de motor (0 = V-shaped, 1 = en línea) Binaria
am Tipo de transmisión (0 = automática, 1 = manual) Binaria
gear Número de marchas (velocidades) Entera
carb Número de carburadores Entera

Ajuste del modelo de regresion multiple

Queremos predecir el consumo (mpg) a partir de tres variables:

  • wt: peso del vehiculo
  • hp: caballos de fuerza
  • disp: cilindrada
modelo <- lm(mpg ~ wt + hp + disp, data = mtcars)
summary(modelo)
## 
## Call:
## lm(formula = mpg ~ wt + hp + disp, data = mtcars)
## 
## Residuals:
##    Min     1Q Median     3Q    Max 
## -3.891 -1.640 -0.172  1.061  5.861 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 37.105505   2.110815  17.579  < 2e-16 ***
## wt          -3.800891   1.066191  -3.565  0.00133 ** 
## hp          -0.031157   0.011436  -2.724  0.01097 *  
## disp        -0.000937   0.010350  -0.091  0.92851    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 2.639 on 28 degrees of freedom
## Multiple R-squared:  0.8268, Adjusted R-squared:  0.8083 
## F-statistic: 44.57 on 3 and 28 DF,  p-value: 8.65e-11

Interpretacion detallada de los coeficientes

coeficientes <- summary(modelo)$coefficients
coeficientes
##                  Estimate Std. Error     t value     Pr(>|t|)
## (Intercept) 37.1055052690 2.11081525 17.57875558 1.161936e-16
## wt          -3.8008905826 1.06619064 -3.56492586 1.330991e-03
## hp          -0.0311565508 0.01143579 -2.72447633 1.097103e-02
## disp        -0.0009370091 0.01034974 -0.09053451 9.285070e-01

Interpretacion:

  • Intercepto (37.11): Predice el consumo mpg cuando wt, hp y disp son cero. No es interpretable en la practica, pero sirve para definir la recta del modelo.
  • wt (-3.80): Por cada 1000 libras adicionales de peso, el mpg disminuye en promedio 3.8 unidades, manteniendo hp y disp constantes. Este coeficiente es estadisticamente significativo (p = 0.00133).
  • hp (-0.03): Por cada caballo de fuerza adicional, el consumo disminuye 0.03 unidades en promedio. Tambien es significativo (p = 0.01097).
  • disp (-0.00094): La cilindrada no tiene un efecto significativo sobre mpg (p = 0.92851), por lo que podria eliminarse del modelo sin afectar mucho el ajuste.

Ecuacion del modelo ajustado

cat("mpg =", round(coef(modelo)[1], 2), "+",
    round(coef(modelo)[2], 2), "* wt +",
    round(coef(modelo)[3], 2), "* hp +",
    round(coef(modelo)[4], 5), "* disp")
## mpg = 37.11 + -3.8 * wt + -0.03 * hp + -0.00094 * disp

Diagnostico del modelo

Grafico de residuos vs valores ajustados

plot(modelo$fitted.values, modelo$residuals,
     main = "Residuos vs Valores Ajustados",
     xlab = "Valores Ajustados", ylab = "Residuos", pch = 19, col = "darkgreen")
abline(h = 0, col = "blue", lty = 2)

Interpretacion: La dispersion de los puntos alrededor de la linea 0 sugiere que no hay patrones sistematicos en los residuos, lo cual es deseable.

Normalidad de los residuos

hist(modelo$residuals, col = "lightblue", main = "Histograma de residuos")

qqnorm(modelo$residuals)
qqline(modelo$residuals, col = "red")

Interpretacion: Si los residuos siguen una distribucion normal, el histograma tendra forma de campana y los puntos del QQ plot estaran alineados con la linea roja.

Pruebas adicionales

library(lmtest)
## Cargando paquete requerido: zoo
## 
## Adjuntando el paquete: 'zoo'
## The following objects are masked from 'package:base':
## 
##     as.Date, as.Date.numeric
bptest(modelo)
## 
##  studentized Breusch-Pagan test
## 
## data:  modelo
## BP = 0.9459, df = 3, p-value = 0.8143
dwtest(modelo)
## 
##  Durbin-Watson test
## 
## data:  modelo
## DW = 1.3673, p-value = 0.01612
## alternative hypothesis: true autocorrelation is greater than 0

Interpretacion: - Breusch-Pagan (homocedasticidad): Si p > 0.05, no hay evidencia de heterocedasticidad. - Durbin-Watson (autocorrelacion): Si el estadistico esta cerca de 2 y p > 0.05, los errores son independientes.

Multicolinealidad

Puede afectar la estabilidad de los coeficientes. Si dos o más variables independientes están muy correlacionadas entre sí, los estimadores pueden volverse inestables. Se evalúa con el VIF (Variance Inflation Factor).

install.packages(“car”) # Solo la primera vez library(car) vif(modelo)

VIF ≈ 1: No hay colinealidad.

VIF entre 1 y 5: Moderada colinealidad (aceptable).

VIF > 10: Colinealidad alta. Puede ser preocupante.

vif_manual <- function(modelo) {
  X <- model.matrix(modelo)[, -1]
  sapply(1:ncol(X), function(i) {
    rsq <- summary(lm(X[, i] ~ X[, -i]))$r.squared
    1 / (1 - rsq)
  })
}

vif_manual(modelo)
## [1] 4.844618 2.736633 7.324517

Interpretacion: Valores de VIF mayores a 5 indican colinealidad moderada; mayores a 10 indican colinealidad severa. Si los valores son bajos, no hay problema de multicolinealidad.

Conclusion

El modelo muestra que wt y hp tienen efectos negativos y significativos sobre mpg, mientras que disp no aporta valor estadistico. Los diagnosticos sugieren que los supuestos del modelo lineal se cumplen adecuadamente.