Introducción

La regresión lineal es una técnica estadística utilizada para estudiar la relación entre una variable respuesta y una o más variables explicativas.

Su objetivo principal es:

  • explicar el comportamiento de una variable,
  • identificar relaciones entre variables,
  • y realizar predicciones.

En esta práctica se estudiarán:

  • modelos de regresión lineal simple,
  • modelos de regresión lineal múltiple,
  • evaluación del ajuste,
  • validación de supuestos,
  • y capacidad predictiva del modelo.

En esta guía se estudiarán los modelos de regresión lineal simple y múltiple utilizando el conjunto de datos airquality.

Se abordarán los siguientes temas:

  • Exploración de datos.
  • Ajuste de modelos de regresión.
  • Interpretación de coeficientes.
  • Evaluación del ajuste del modelo.
  • Validación de supuestos.
  • Multicolinealidad.
  • Identificación de observaciones influyentes.
  • Predicción de nuevos valores.

Modelo de regresión lineal múltiple

El modelo de regresión lineal múltiple se expresa como:

\[ Y = \beta_0 + \beta_1X_1 + \beta_2X_2 + \cdots + \beta_pX_p + \varepsilon \]

donde:

  • \(Y\): variable respuesta.
  • \(X_i\): variables predictoras o independientes.
  • \(\beta_0\): intercepto del modelo.
  • \(\beta_i\): coeficientes de regresión.
  • \(\varepsilon\): término de error aleatorio.

El término de error representa la variabilidad no explicada por el modelo.

El objetivo del modelo es explicar y predecir el comportamiento de la variable respuesta a partir de las variables explicativas.

Modelo ajustado

Una vez estimados los parámetros mediante mínimos cuadrados ordinarios, el modelo ajustado se expresa como:

\[ \hat{Y}_i = \hat{\beta}_0 + \hat{\beta}_1X_{i1} + \hat{\beta}_2X_{i2} + \cdots + \hat{\beta}_pX_{ip} \]

donde:

  • \(\hat{Y}_i\): valor predicho.
  • \(\hat{\beta}_j\): coeficientes estimados.

Supuestos del modelo de regresión lineal

Para que las estimaciones y pruebas de hipótesis sean válidas, el modelo debe cumplir ciertos supuestos estadísticos.

i. Linealidad

Existe una relación lineal entre la variable respuesta y las variables predictoras.

Matemáticamente:

\[ E(Y|X) =\beta_0 + \beta_1X_1 + \cdots + \beta_pX_p \]

Los cambios en las variables explicativas producen cambios lineales en el valor esperado de la respuesta.

Se evalúa mediante:

  • gráficos de dispersión,
  • gráfico Residuals vs Fitted,
  • gráficos parciales de regresión.

ii. Independencia de errores

Los errores aleatorios deben ser independientes entre sí.

\[ Cov(\varepsilon_i,\varepsilon_j)=0 \quad \text{para } i\neq j \]

El error asociado a una observación no debe depender del error de otra observación.

Se evalúa mediante:

  • prueba de Durbin-Watson,
  • análisis temporal de residuos.

iii. Homocedasticidad

La varianza de los errores debe ser constante.

\[ Var(\varepsilon_i)=\sigma^2 \] La dispersión de los residuos debe mantenerse aproximadamente igual para todos los niveles de las variables predictoras.

Problema asociado

Si la varianza cambia, aparece heterocedasticidad.

Se evalúa mediante:

  • gráfico Scale-Location,
  • prueba de Breusch-Pagan,
  • análisis gráfico de residuos.

iv. Normalidad de los errores

Los errores aleatorios deben seguir una distribución normal:

\[ \varepsilon_i \sim N(0,\sigma^2) \]

Implicación

Este supuesto es importante para:

  • pruebas t,
  • prueba F,
  • intervalos de confianza.

Se evalúa mediante:

  • gráfico Q-Q,
  • prueba de Shapiro-Wilk,
  • histogramas de residuos.

v. Ausencia de multicolinealidad

Las variables predictoras no deben presentar relaciones lineales fuertes entre sí.

Problemas que ocasiona

La multicolinealidad puede:

  • inflar varianzas,
  • volver inestables los coeficientes,
  • dificultar la interpretación.

Se evalúa mediante:

  • matriz de correlaciones,
  • Factor de Inflación de la Varianza (VIF).

vi. Ausencia de observaciones influyentes

No deben existir observaciones que afecten excesivamente el ajuste del modelo.

Se analiza mediante:

  • leverage,
  • distancia de Cook,
  • residuos estandarizados.

Método de estimación

Los parámetros del modelo se estiman mediante el método de mínimos cuadrados ordinarios (MCO), el cual minimiza:

\[ \sum_{i=1}^{n} e_i^2 \]

donde:

\[ e_i = Y_i - \hat{Y}_i \]

corresponde al residual asociado a la observación \(i\).

Estimación por mínimos cuadrados ordinarios

El modelo de regresión lineal múltiple puede expresarse en forma matricial como:

\[ \mathbf{Y} = \mathbf{X}\boldsymbol{\beta} + \boldsymbol{\varepsilon} \]

donde:

\[ \mathbf{Y} = \begin{pmatrix} Y_1 \\ Y_2 \\ \vdots \\ Y_n \end{pmatrix} \]

es el vector de observaciones de la variable respuesta,

\[ \mathbf{X} = \begin{pmatrix} 1 & X_{11} & X_{12} & \cdots & X_{1p} \\ 1 & X_{21} & X_{22} & \cdots & X_{2p} \\ \vdots & \vdots & \vdots & \ddots & \vdots \\ 1 & X_{n1} & X_{n2} & \cdots & X_{np} \end{pmatrix} \]

es la matriz de diseño,

\[ \boldsymbol{\beta} = \begin{pmatrix} \beta_0 \\ \beta_1 \\ \vdots \\ \beta_p \end{pmatrix} \]

es el vector de parámetros desconocidos y

\[ \boldsymbol{\varepsilon} = \begin{pmatrix} \varepsilon_1 \\ \varepsilon_2 \\ \vdots \\ \varepsilon_n \end{pmatrix} \]

corresponde al vector de errores aleatorios.

Estimador de mínimos cuadrados ordinarios

El método de mínimos cuadrados ordinarios busca minimizar:

\[ S(\boldsymbol{\beta}) = (\mathbf{Y}-\mathbf{X}\boldsymbol{\beta})' (\mathbf{Y}-\mathbf{X}\boldsymbol{\beta}) \]

La solución del problema de optimización conduce al estimador:

\[ \hat{\boldsymbol{\beta}} = (\mathbf{X}'\mathbf{X})^{-1}\mathbf{X}'\mathbf{Y} \]

donde:

  • \(\mathbf{X}'\): matriz transpuesta de \(\mathbf{X}\),
  • \((\mathbf{X}'\mathbf{X})^{-1}\): inversa de la matriz \(\mathbf{X}'\mathbf{X}\).

Valores ajustados

Los valores predichos del modelo se obtienen mediante:

\[ \hat{\mathbf{Y}} = \mathbf{X}\hat{\boldsymbol{\beta}} \]

Vector de residuos

El vector de residuos está dado por:

\[ \mathbf{e} = \mathbf{Y} - \hat{\mathbf{Y}} \]

Supuestos clásicos del modelo lineal

Bajo los supuestos de Gauss-Markov:

\[ E(\boldsymbol{\varepsilon})=\mathbf{0} \]

\[ Var(\boldsymbol{\varepsilon})= \sigma^2\mathbf{I} \]

el estimador de mínimos cuadrados ordinarios es el Mejor Estimador Lineal Insesgado (MELI o BLUE).

Interpretación general de coeficientes

Cada coeficiente \(\beta_j\) representa el cambio esperado en la variable respuesta ante un incremento de una unidad en la variable predictora \(X_j\), manteniendo constantes las demás variables del modelo.

1 Carga de librerías

library(GGally)
library(corrplot)
library(psych)
library(car)
library(ggplot2)

2 Cargar el conjunto de datos

data("airquality")

head(airquality)
dim(airquality)
## [1] 153   6
summary(airquality)
##      Ozone           Solar.R           Wind             Temp      
##  Min.   :  1.00   Min.   :  7.0   Min.   : 1.700   Min.   :56.00  
##  1st Qu.: 18.00   1st Qu.:115.8   1st Qu.: 7.400   1st Qu.:72.00  
##  Median : 31.50   Median :205.0   Median : 9.700   Median :79.00  
##  Mean   : 42.13   Mean   :185.9   Mean   : 9.958   Mean   :77.88  
##  3rd Qu.: 63.25   3rd Qu.:258.8   3rd Qu.:11.500   3rd Qu.:85.00  
##  Max.   :168.00   Max.   :334.0   Max.   :20.700   Max.   :97.00  
##  NA's   :37       NA's   :7                                       
##      Month            Day      
##  Min.   :5.000   Min.   : 1.0  
##  1st Qu.:6.000   1st Qu.: 8.0  
##  Median :7.000   Median :16.0  
##  Mean   :6.993   Mean   :15.8  
##  3rd Qu.:8.000   3rd Qu.:23.0  
##  Max.   :9.000   Max.   :31.0  
## 

2.1 Descripción de variables

  • Ozone: concentración de ozono.
  • Solar.R: radiación solar.
  • Wind: velocidad del viento.
  • Temp: temperatura máxima diaria.
  • Month: mes.
  • Day: día.

3 Valores faltantes

3.1 Conteo de valores faltantes

colSums(is.na(airquality))
##   Ozone Solar.R    Wind    Temp   Month     Day 
##      37       7       0       0       0       0

3.2 Porcentaje de valores faltantes

porcentaje_na <- sapply(airquality,
                        function(x) mean(is.na(x))*100)

round(porcentaje_na,2)
##   Ozone Solar.R    Wind    Temp   Month     Day 
##   24.18    4.58    0.00    0.00    0.00    0.00

3.3 Eliminación de registros con NA

airquality1 <- na.omit(airquality)

dim(airquality1)
## [1] 111   6
summary(airquality1)
##      Ozone          Solar.R           Wind            Temp      
##  Min.   :  1.0   Min.   :  7.0   Min.   : 2.30   Min.   :57.00  
##  1st Qu.: 18.0   1st Qu.:113.5   1st Qu.: 7.40   1st Qu.:71.00  
##  Median : 31.0   Median :207.0   Median : 9.70   Median :79.00  
##  Mean   : 42.1   Mean   :184.8   Mean   : 9.94   Mean   :77.79  
##  3rd Qu.: 62.0   3rd Qu.:255.5   3rd Qu.:11.50   3rd Qu.:84.50  
##  Max.   :168.0   Max.   :334.0   Max.   :20.70   Max.   :97.00  
##      Month            Day       
##  Min.   :5.000   Min.   : 1.00  
##  1st Qu.:6.000   1st Qu.: 9.00  
##  Median :7.000   Median :16.00  
##  Mean   :7.216   Mean   :15.95  
##  3rd Qu.:9.000   3rd Qu.:22.50  
##  Max.   :9.000   Max.   :31.00

4 Análisis exploratorio de datos

4.1 Estadísticos descriptivos

describe(airquality1)

4.2 Matriz de correlaciones

matriz_cor <- cor(airquality1)

corrplot(matriz_cor,
         method = "color",
         addCoef.col = "black",
         main = "Matriz de correlaciones")

4.3 Matriz gráfica de dispersión

ggpairs(
  data = airquality1,
  columns = c("Ozone", "Temp", "Solar.R", "Wind"),
  upper = list(continuous = "cor"),
  lower = list(continuous = "smooth"),
  diag = list(continuous = "barDiag")
)
## `stat_bin()` using `bins = 30`. Pick better value `binwidth`.
## `stat_bin()` using `bins = 30`. Pick better value `binwidth`.
## `stat_bin()` using `bins = 30`. Pick better value `binwidth`.
## `stat_bin()` using `bins = 30`. Pick better value `binwidth`.

5 Evaluación de normalidad

La normalidad se evalúa sobre la variable respuesta (Ozone).

5.1 Prueba de Shapiro-Wilk

Se utiliza generalmente para muestras pequeñas.

5.1.1 Hipótesis

  • \(H_0\): La variable sigue una distribución normal.
  • \(H_1\): La variable no sigue una distribución normal.
shapiro.test(airquality1$Ozone)
## 
##  Shapiro-Wilk normality test
## 
## data:  airquality1$Ozone
## W = 0.87355, p-value = 2.846e-08

5.2 Interpretación

  • Si el valor-p \(> 0.05\): no se rechaza \(H_0\)
  • Si el valor-\(p < 0.05\): se rechaza \(H_0\)

5.3 Prueba de Kolmogorov-Smirnov

Tiene el mismo sentido de la Prueba de Shapiro y se puede interpretarse con el valor p asociado.

ks.test(
  airquality1$Ozone,
  "pnorm",
  mean(airquality1$Ozone),
  sd(airquality1$Ozone)
)
## Warning in ks.test.default(airquality1$Ozone, "pnorm", mean(airquality1$Ozone),
## : ties should not be present for the one-sample Kolmogorov-Smirnov test
## 
##  Asymptotic one-sample Kolmogorov-Smirnov test
## 
## data:  airquality1$Ozone
## D = 0.15078, p-value = 0.01286
## alternative hypothesis: two-sided

6 División en entrenamiento y prueba

set.seed(123)

muestra <- sample(
  1:nrow(airquality1),
  size = 0.7*nrow(airquality1)
)

datos_entrena <- airquality1[muestra, ]
datos_test <- airquality1[-muestra, ]

dim(datos_entrena)
## [1] 77  6
dim(datos_test)
## [1] 34  6

7 Ajuste de modelos de regresión

7.1 Modelo de regresión múltiple

modelo1 <- lm(Ozone ~ Temp + Solar.R + Wind,
              data = datos_entrena)

summary(modelo1)
## 
## Call:
## lm(formula = Ozone ~ Temp + Solar.R + Wind, data = datos_entrena)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -29.912 -16.086  -4.016   7.824  92.987 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -74.18853   28.90334  -2.567   0.0123 *  
## Temp          1.84998    0.32151   5.754 1.91e-07 ***
## Solar.R       0.04507    0.02867   1.572   0.1202    
## Wind         -3.34508    0.80999  -4.130 9.55e-05 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 22.4 on 73 degrees of freedom
## Multiple R-squared:  0.6131, Adjusted R-squared:  0.5972 
## F-statistic: 38.56 on 3 and 73 DF,  p-value: 4.82e-15

7.2 Otros modelos

modelo2 <- lm(Ozone ~ Temp + Wind,data = datos_entrena)

modelo3 <- lm(Ozone ~ Temp,data = datos_entrena)

modelo4 <- lm(Ozone ~ Wind,data = datos_entrena)

summary(modelo2)
## 
## Call:
## lm(formula = Ozone ~ Temp + Wind, data = datos_entrena)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -31.286 -13.426  -3.265   9.515  95.391 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -78.7028    29.0450  -2.710 0.008364 ** 
## Temp          2.0035     0.3093   6.477 9.14e-09 ***
## Wind         -3.2281     0.8145  -3.963 0.000169 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 22.62 on 74 degrees of freedom
## Multiple R-squared:    0.6,  Adjusted R-squared:  0.5892 
## F-statistic:  55.5 on 2 and 74 DF,  p-value: 1.89e-15
summary(modelo3)
## 
## Call:
## lm(formula = Ozone ~ Temp, data = datos_entrena)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -29.864 -18.400  -2.936   7.919 114.832 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -158.7256    22.8333  -6.951 1.14e-09 ***
## Temp           2.6160     0.2931   8.926 2.06e-13 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 24.74 on 75 degrees of freedom
## Multiple R-squared:  0.5151, Adjusted R-squared:  0.5086 
## F-statistic: 79.67 on 1 and 75 DF,  p-value: 2.061e-13
summary(modelo4)
## 
## Call:
## lm(formula = Ozone ~ Wind, data = datos_entrena)
## 
## Residuals:
##    Min     1Q Median     3Q    Max 
## -46.41 -20.48  -5.44  19.07  85.07 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 102.8704     9.4414  10.896  < 2e-16 ***
## Wind         -5.8635     0.8774  -6.683 3.62e-09 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 28.12 on 75 degrees of freedom
## Multiple R-squared:  0.3732, Adjusted R-squared:  0.3649 
## F-statistic: 44.66 on 1 and 75 DF,  p-value: 3.624e-09

8 Interpretación del modelo

La ecuación estimada del modelo es:

coef(modelo1)
##  (Intercept)         Temp      Solar.R         Wind 
## -74.18853389   1.84997635   0.04507057  -3.34507576

La forma general del modelo ajustado corresponde a:

\[ \hat{Y} = \beta_0 + \beta_1 X_1 + \beta_2 X_2 + \beta_3 X_3 \]

En este caso:

\[ \widehat{Ozone} = \beta_0 + \beta_1(Temp) + \beta_2(Solar.R) + \beta_3(Wind) \]

Interpretación de coeficientes

Intercepto

Representa el valor esperado de Ozone cuando todas las variables predictoras son cero.

8.0.1 Coeficiente de Temp

Si Temp aumenta una unidad, el valor esperado de Ozone cambia en \(\beta_1\) unidades, manteniendo constantes las demás variables.

8.0.2 Coeficiente de Solar.R

Indica el cambio esperado en Ozone por cada unidad adicional de radiación solar.

8.0.3 Coeficiente de Wind

Indica el cambio esperado en Ozone por cada unidad adicional en velocidad del viento.

9 Evaluación del ajuste del modelo

Coeficiente de determinación

El \(R^2\) representa el porcentaje de variabilidad explicado por el modelo.

summary(modelo1)$r.squared
## [1] 0.6130935

9.1 R cuadrado ajustado

Penaliza la inclusión innecesaria de variables.

summary(modelo1)$adj.r.squared
## [1] 0.5971932

10 Evaluación de hipótesis del modelo

10.1 Prueba F global

Evalúa si el modelo es significativo.

10.1.1 Hipótesis

  • \(H_0\): Todos los coeficientes son iguales a cero.
  • \(H_1\): Al menos un coeficiente es diferente de cero.
summary(modelo1)
## 
## Call:
## lm(formula = Ozone ~ Temp + Solar.R + Wind, data = datos_entrena)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -29.912 -16.086  -4.016   7.824  92.987 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -74.18853   28.90334  -2.567   0.0123 *  
## Temp          1.84998    0.32151   5.754 1.91e-07 ***
## Solar.R       0.04507    0.02867   1.572   0.1202    
## Wind         -3.34508    0.80999  -4.130 9.55e-05 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 22.4 on 73 degrees of freedom
## Multiple R-squared:  0.6131, Adjusted R-squared:  0.5972 
## F-statistic: 38.56 on 3 and 73 DF,  p-value: 4.82e-15

10.2 Interpretación

  • Si el valor-\(p < 0.05\), el modelo es significativo.

11 Evaluación individual de coeficientes

Cada predictor tiene una prueba t.

11.0.1 Hipótesis

  • \(H_0: \beta_i = 0\)
  • \(H_1: \beta_i \neq 0\)

11.1 Interpretación

  • Valor-\(p < 0.05\): la variable aporta significativamente al modelo.

12 Predicciones

predicciones <- predict(modelo1,
                        newdata = datos_test)

head(predicciones)
##         1         2         3        14        15        16 
## 33.569730 37.567485 27.277277 27.497869 -8.115318 20.795153

13 Evaluación predictiva

Error Cuadrático Medio (MSE)

mse <- mean((datos_test$Ozone - predicciones)^2)

mse
## [1] 371.3997

Coeficiente \(R^2\) en prueba

sst <- sum((datos_test$Ozone -
              mean(datos_test$Ozone))^2)

sse <- sum((datos_test$Ozone -
              predicciones)^2)

r_squared <- 1 - (sse/sst)

r_squared
## [1] 0.5260186

14 Validación de supuestos

14.1 Gráficos diagnósticos

par(mfrow=c(2,2))
plot(modelo1)

Interpretación de gráficos

Residuals vs Fitted

Evalúa:

  • Linealidad.
  • Homocedasticidad.

Los residuos deben distribuirse aleatoriamente alrededor de cero.

Normal Q-Q

Evalúa normalidad de residuos. Los puntos deben seguir aproximadamente una línea recta.

Scale-Location

Evalúa homocedasticidad.

Debe observarse dispersión constante.

Residuals vs Leverage

Permite detectar:

  • observaciones influyentes,
  • leverage alto,
  • posibles problemas en el ajuste.

14.2 Normalidad de residuos

Hipótesis

\[ H_0:\text{Los residuos siguen una distribución normal} \]

\[ H_1:\text{Los residuos no siguen una distribución normal} \]

shapiro.test(residuals(modelo1))
## 
##  Shapiro-Wilk normality test
## 
## data:  residuals(modelo1)
## W = 0.88364, p-value = 3.831e-06

Criterio de decisión

  • Si el valor-p > 0.05: No se rechaza (H_0). Existe evidencia de normalidad en los residuos.
  • Si el valor-p < 0.05: Se rechaza (H_0). Los residuos no siguen una distribución normal.

14.3 Homocedasticidad

Prueba de no constancia de varianza (Non-Constant Variance Test), utilizada para evaluar el supuesto de homocedasticidad en modelos de regresión lineal.

La función ncvTest() implementa una versión de la:

  • Prueba de Breusch-Pagan,
  • basada en los residuos del modelo.
#library(car)
ncvTest(modelo1)
## Non-constant Variance Score Test 
## Variance formula: ~ fitted.values 
## Chisquare = 4.823797, Df = 1, p = 0.028069

Hipótesis

  • \(H_0\): varianza constante.
  • \(H_1\): heterocedasticidad.

Interpretación

  • Valor-\(p > 0.05\): No se rechaza \(H_0\). Existe homocedasticidad.
  • Valor-\(p < 0.05\): Se rechaza \(H_0\). Existe heterocedasticidad.

14.4 Independencia de residuos

Se avalua con el test de Durvin Watson.

durbinWatsonTest(modelo1)
##  lag Autocorrelation D-W Statistic p-value
##    1     -0.07866366      2.150219   0.478
##  Alternative hypothesis: rho != 0

Hipótesis

  • \(H_0\): independencia.
  • \(H_1\): autocorrelación.

Criterio de decisión

  • Si el valor-p > 0.05: No se rechaza (H_0). Se considera que los residuos son independientes.
  • Si el valor-p < 0.05: Se rechaza (H_0). Existe evidencia de autocorrelación.

15 Multicolinealidad

La multicolinealidad se evalúa mediante el Factor de Inflación de la Varianza (VIF).

vif(modelo1)
##     Temp  Solar.R     Wind 
## 1.468017 1.107675 1.343858

Interpretación del VIF

  • \(VIF < 5\): baja multicolinealidad.
  • VIF entre 5 y 10: moderada.
  • \(VIF > 10\): problemática.

16 Observaciones influyentes

Leverage

Interpretación

  • Valores pequeños de leverage: indican observaciones ubicadas cerca del centro de los datos.
  • Valores grandes de leverage: indican observaciones alejadas del patrón general de las variables predictoras.

Estas observaciones pueden influir considerablemente en el ajuste del modelo.

Umbral de leverage alto

Una regla práctica común es considerar como observaciones de alto leverage aquellas que cumplen:

\[ h_{ii} > \frac{2(p+1)}{n} \]

donde:

  • (p): número de variables predictoras,
  • (n): número de observaciones.
leverage <- hatvalues(modelo1)
umbral <- 2*(length(coef(modelo1))/nrow(airquality1))
puntos_alto_leverage <- which(leverage > umbral)
puntos_alto_leverage
## 120  82  18  13  40   9 129  22  20  48  88  21 148   4   7 121 
##   2   3   4  18  21  22  34  48  60  61  66  69  70  71  73  77

Gráfico de leverage

plot(leverage,
     main = "Valores de leverage",
     ylab = "Leverage",
     xlab = "Observaciones")
abline(h = umbral,
       col = "red",
       lty = 2)

Distancia de Cook

La distancia de Cook es una medida utilizada para evaluar la influencia de cada observación sobre el ajuste global del modelo de regresión.

Esta medida combina:

  • el leverage de una observación,
  • y el tamaño de sus residuos.

El objetivo es identificar observaciones que puedan modificar considerablemente:

  • los coeficientes estimados,
  • las predicciones,
  • y el comportamiento general del modelo
cooks_dist <- cooks.distance(modelo1)

puntos_influyentes <- which(
  cooks_dist > 4/nrow(airquality1)
)
puntos_influyentes
##  18   9  30  62 117  48 148 
##   4  22  37  45  56  61  70

Interpretación

  • Valores pequeños de distancia de Cook: indican observaciones con poca influencia sobre el modelo.
  • Valores grandes: sugieren observaciones potencialmente influyentes.

La línea roja representa un umbral de referencia:

\[ \frac{4}{n} \]

donde:

  • (n): número de observaciones.

Las observaciones que superan este umbral deben analizarse cuidadosamente.

Interpretación:

  • Cercana a 0: Observación sin influencia importante
  • \(> (4/n)\) :Posible observación influyente
  • \(> 1\) :Observación altamente influyente

17 Selección de modelos con AIC

mejor_modelo <- step(
  lm(Ozone ~ Temp + Solar.R + Wind,
     data = airquality1),
  direction = "both"
)
## Start:  AIC=681.71
## Ozone ~ Temp + Solar.R + Wind
## 
##           Df Sum of Sq   RSS    AIC
## <none>                 48003 681.71
## - Solar.R  1    2986.2 50989 686.41
## - Wind     1   11641.6 59644 703.82
## - Temp     1   19049.9 67053 716.81
summary(mejor_modelo)
## 
## Call:
## lm(formula = Ozone ~ Temp + Solar.R + Wind, data = airquality1)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -40.485 -14.219  -3.551  10.097  95.619 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -64.34208   23.05472  -2.791  0.00623 ** 
## Temp          1.65209    0.25353   6.516 2.42e-09 ***
## Solar.R       0.05982    0.02319   2.580  0.01124 *  
## Wind         -3.33359    0.65441  -5.094 1.52e-06 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 21.18 on 107 degrees of freedom
## Multiple R-squared:  0.6059, Adjusted R-squared:  0.5948 
## F-statistic: 54.83 on 3 and 107 DF,  p-value: < 2.2e-16

Interpretación

El mejor modelo será el que tenga el menor valor de AIC.

Comparación de modelos

En regresión lineal es común ajustar varios modelos con diferentes combinaciones de variables predictoras.

La comparación de modelos permite seleccionar aquel que presente el mejor equilibrio entre:

  • calidad de ajuste,
  • capacidad predictiva,
  • y simplicidad del modelo.

Uno de los criterios más utilizados para esta comparación es el Criterio de Información de Akaike (AIC).

Criterio de Información de Akaike (AIC)

El AIC es una medida basada en teoría de información que evalúa simultáneamente:

  • el ajuste del modelo,
  • y su complejidad.

El criterio se define como:

\[ AIC = -2\log(L) + 2k \]

donde:

  • \(L\): función de verosimilitud del modelo,
  • \(k\): número de parámetros estimados.

Interpretación del AIC

El AIC penaliza los modelos excesivamente complejos.

  • Un modelo con muchas variables puede ajustarse muy bien a los datos, pero también puede generar sobreajuste (overfitting).
  • Un modelo muy simple puede tener poca capacidad explicativa.

El AIC busca un equilibrio entre:

  • precisión,
  • parsimonia,
  • y complejidad.

18 Regla de selección

El mejor modelo será aquel que presente el menor valor de AIC. Esto indica que el modelo logra:

  • buen ajuste,
  • menor complejidad,
  • y mejor equilibrio estadístico.
modelo_temp <- lm(Ozone ~ Temp,
                  data = airquality1)

modelo_temp_solar <- lm(Ozone ~ Temp + Solar.R,
                        data = airquality1)

modelo_completo <- lm(Ozone ~ Temp + Solar.R + Wind,
                      data = airquality1)

AIC(modelo_temp,
    modelo_temp_solar,
    modelo_completo)

19 Predicción para nuevos datos

nuevos_datos <- data.frame(
  Temp = c(80,85,50,35),
  Solar.R = c(200,250,100,105),
  Wind = c(1,10,17.5,20)
)

pronostico <- predict(modelo1,
                      newdata = nuevos_datos)
nuevos_datos$Pronostico <- pronostico
nuevos_datos

20 Conclusiones

En esta práctica se desarrollaron modelos de regresión lineal simple y múltiple, realizando:

  • análisis exploratorio,
  • ajuste del modelo,
  • interpretación de coeficientes,
  • validación de supuestos,
  • detección de observaciones influyentes,
  • comparación de modelos,
  • predicción de nuevos valores.

La regresión lineal es una herramienta fundamental para explicar y predecir fenómenos a partir de variables cuantitativas.

21 Referencias

  • Akaike, H. (1974). A new look at the statistical model identification. IEEE Transactions on Automatic Control, 19(6), 716–723.

  • Draper, N. R., & Smith, H. (1998). Applied Regression Analysis (3rd ed.). Wiley.

  • Faraway, J. J. (2016). Linear Models with R (2nd ed.). Chapman & Hall/CRC.

  • Fox, J., & Weisberg, S. (2019). An R Companion to Applied Regression (3rd ed.). Sage.

  • Kutner, M. H., Nachtsheim, C. J., Neter, J., & Li, W. (2005). Applied Linear Statistical Models (5th ed.). McGraw-Hill.

  • Montgomery, D. C., Peck, E. A., & Vining, G. G. (2021). Introduction to Linear Regression Analysis (6th ed.). Wiley.

  • Peña, D. (2002). Regresión y diseño de experimentos. Alianza Editorial.

  • Rawlings, J. O., Pantula, S. G., & Dickey, D. A. (1998). Applied Regression Analysis: A Research Tool (2nd ed.). Springer.

  • Rencher, A. C., & Schaalje, G. B. (2008). Linear Models in Statistics (2nd ed.). Wiley.

  • Seber, G. A. F., & Lee, A. J. (2012). Linear Regression Analysis (2nd ed.). Wiley.

  • Weisberg, S. (2014). Applied Linear Regression (4th ed.). Wiley.

  • James, G., Witten, D., Hastie, T., & Tibshirani, R. (2021). An Introduction to Statistical Learning with Applications in R (2nd ed.). Springer.

  • R Core Team. (2025). R: A Language and Environment for Statistical Computing. R Foundation for Statistical Computing. https://www.r-project.org/

  • Fox, J. (2024). car: Companion to Applied Regression. R package version. https://cran.r-project.org/package=car

  • Kuhn, M. (2024). caret: Classification and Regression Training. R package version. https://cran.r-project.org/package=caret