library(leaps)
<- regsubsets(Y ~ ., data = datos, nvmax = 10) # hasta 10 predictores
fit_a summary(fit_a)
Módulo 7: Métodos de Regresión
Bioestadística Fundamental y Estadística Fundamental para las Ciencias de la Salud
🔰 Introducción
El análisis de regresión es una herramienta fundamental en bioestadística para estudiar la relación entre una variable respuesta y una o más variables explicativas. En este módulo nos enfocaremos en el modelo lineal simple o normal, uno de los métodos más utilizados para describir y predecir relaciones lineales entre variables cuantitativas.
A lo largo del módulo, se abordará la formulación teórica del modelo, los supuestos que lo sustentan, y los métodos necesarios para su ajuste e interpretación en el entorno de programación R
. Además, se explorarán herramientas diagnósticas que permiten evaluar la validez del modelo, identificar observaciones atípicas o influyentes, y proponer posibles transformaciones cuando los supuestos no se cumplen.
El enfoque de este módulo estará orientado a darle las herramientas necesarias para que pueda realizar una implementación del modelo con datos reales, un análisis de la salida generada por R e interpretar adecuadamente los resultados en contextos aplicados de la bioestadística.
🎯 Objetivos
Formular e interpretar el modelo lineal simple bajo el enfoque clásico y sus supuestos fundamentales.
Ajustar el modelo lineal simple utilizando funciones del entorno R.
Seleccionar variables explicativas relevantes para el modelo.
Analizar los residuos y coeficientes del modelo para evaluar su ajuste.
Interpretar los parámetros estimados y la calidad global del modelo.
Aplicar técnicas diagnósticas para detectar problemas como heterocedasticidad, colinealidad, influencia y puntos de apalancamiento, proponiendo soluciones mediante transformaciones cuando sea necesario.
🧰 Contenido
Selección de variables
Ajuste del modelo
Información de los residuos
Información sobre los coeficientes
Información sobre el modelo
Interpretación de los resultados
Métodos diagnósticos
7.1. Análisis residual
7.2. Análisis de sensibilidad o influencia
7.3. Puntos de apalancamiento
7.4. Heterocedasticidad
7.5. Colinealidad
7.6 Transformaciones
📖 Desarrollo
Modelo Lineal
1. Formulación y supuestos
En un modelo de regresión lineal simple se estudia la relación entre una variable dependiente \(Y\) y una sola variable explicativa \(X\):
\[Y_i=\beta_0+\beta_1X_i+\varepsilon_i \quad i=1,2,\dots, n\]
donde:
\(Y_i:\) variable respuesta para la observación \(i\).
\(X_i:\) variable explicativa para la observación \(i\).
\(\beta_0:\) intercepto o término constante.
\(\beta_1:\) pendiente, mide el cambio esperado en \(Y\) por un cambio unitario en \(X\).
\(\varepsilon_i:\) término de error aleatorio.
En un modelo de regresión lineal múltiple se estudia la relación entre una variable dependiente \(Y\) y una varias variables explicativas \((X_1, X_2, \dots, X_p)\) :
\[Y_i=\beta_0+\beta_1X_{i1}+\beta_2X_{i2}+\cdots+\beta_pX_{ip}+\varepsilon_i \quad i=1,2,\dots, n\] Cuya forma matricial está dada por:
\[\mathbf{Y} = \mathbf{X} \boldsymbol{\beta} + \boldsymbol{\varepsilon}\] donde:
\(\mathbf{Y}\) es un vector \(n\times1\) de la variable dependiente.
\(\mathbf{Y}\) es la matriz de diseño \((n\times(p+1))\), que incluye una columna de 1’s para el intercepto.
\(\boldsymbol{\beta}\) es el vector de parámetros \((p+1)\times1\)
\(\boldsymbol{\varepsilon}\) es el vector de errores aleatorios
Algunos de los supuestos básicos de la regresión lineal son los siguientes:
Linealidad: la relación entre \(X\) y \(Y\) es lineal.
Independencia: los errores son independientes entre sí.
Homoscedasticidad: la varianza de los errores es constante.
No multicolinealidad (solo en modelos múltiples).
Normalidad de los errores (opcional, según el objetivo).
Sobre este último supuesto, no es necesario para estimar los coeficientes \((\hat{\beta}_0,\hat{\beta}_1)\) ya que gracias al teorema de Gauss–Markov, bajo los tres primeros supuestos los estimadores son insesgados y de varianza mínima (BLUE). Sin embargo, sí es necesario para la inferencia estadística: pruebas de significancia y construcción de intervalos de confianza.
Si nos limitamos a estimar los coeficientes, aún podremos:
Predecir valores de \(Y\) para nuevos \(X\) aún sin saber si la pendiente es “significativamente distinta de cero”.
Describir la relación observada, el coeficiente pendiente indica cuánto cambia \(Y\) en promedio cuando \(X\) cambia una unidad, en la muestra observada, sin necesidad de inferir a la población.
Revisar el ajuste global del modelo (R², residuos, etc.)
Luego, si el propósito es predecir o describir, basta con estimar coeficientes, pero si se desea generalizar a la población o validar hipótesis, requerimos inferencia, por efecto, normalidad o tamaño de muestra “grande” para que de manera asintótica esta sea respaldada por el teorema central del límite.
2. Comentarios sobre la interpretación de las salidas de R
Evaluar el efecto del termino interacción en el modelo, es esencialmente, examinar si el efecto de una variable en el resultado depende de los valores de otra variable.
El resultado de un modelo de regresión en
R
al hacer uso de la rutinasummary(modelo)
consiste en 4 partes:Formula del modelo ajustado
Estadística descriptiva de los residuos
Este resumen estadístico de los residuos, representa las diferencias entre las predicciones del modelo y las observaciones reales. Los residuos muestran que tan bien no se ajusta el modelo. La media de los residuos siempre es cero. Si los residuos se distribuyen con distribución normal, la mediana se espera que sea cero o un valor muy cercano a este, el primer y tercer cuartil sean simétricos al igual que el mínimo y el máximo.Información sobre coeficientes
Esta sección muestra 4 apartados que se detallan a continuación:Coeficientes estimados (“
ESTIMATE
”): contiene los valores de cada variable explicatoria que representan el efecto de esa variable sobre la variable dependiente.Errores estándar (“
Std. Error
”): es el valor que mide que tan precisa es la estimación de cada coeficiente. Valores altos indican que la predicción es menos precisa.Valores t (“
t-values
”): valor estadístico para probar que el coeficiente no es cero. Un valor positivo o negativo indica que el coeficiente no es cero. Entre más grande el valor, se indica que el coeficiente es mas fiable. \(t=estimate/std. error\)Valores p (“
p-values
”): indican la probabilidad de obtener un resultado tan extremo como el observado (o más), suponiendo que la hipótesis nula es verdadera. En el caso de un coeficiente de regresión, la hipótesis nula plantea que dicho coeficiente es igual a cero (es decir, que la variable no tiene efecto).Si el \(valor-p < 0.05\), existe evidencia estadísticamente significativa al nivel del 5% para rechazar la hipótesis nula y concluir que el coeficiente es distinto de cero.
Información sobre el modelo
La interpretación de los coeficientes se suele dar como sigue: Un incremento de una unidad en la variable distancia, causa un incremento de 4.96 unidades.
El intercepto representa el valor predicho de la variable dependiente cuando las otras variables son cero.
La linealidad del modelo está dada por los coeficientes (los \(\beta\)’s) mas no hay restricciones de la naturaleza de las covariables respecto a esta característica.
El sistema de hipótesis para los coeficientes es el siguiente:
\[H_0:\beta_j=\beta_j° \quad \text{vs} \quad H_1:\beta_j\neq\beta_j°\]
la regla de decisión para el anterior sistema de hipótesis es:
Rechazar H_0 con un nivel de significancia de \(100(\alpha)\%\) si \(p-value < \alpha\)
De aquí, el error tipo 1 consiste en rechazar \(H_0\) cuando ella es verdadera y el error tipo 2 consiste en no rechazar \(H_0\) cuando es falsa.
Existen varias rutinas disponibles en
R
para seleccionar variables significativas. algunas de estas son:Best Subset Selection
Selección paso a paso (Stepwise Selection)
library(glmtoolbox) data(Auto, package = "ISLR") <- lm(mpg ~ horsepower + weight +origin, data = Auto) fit_b stepCriterion(fit_b, direction="forward", criterion="bic")
3. Ejemplo 1: races - glmtoolbox
Estos datos, disponibles en el objeto “races” de la biblioteca “glmtoolbox”, consisten en el tiempo récord, la distancia y la subida acumulada de 35 carreras en cuesta en Escocia. El objetivo del análisis estadístico de estos datos es explicar las diferencias entre el tiempo récord de las carreras (rtime), en minutos, utilizando sus diferencias en distancia (distance), en millas, y subida acumulada (cclimb), en miles de pies.
library(glmtoolbox)
data(races)
- Ajuste a los datos un modelo lineal normal en el que el tiempo récord de las carreras sea la variable de respuesta, y la distancia y la subida acumulada sean las variables explicativas.
<- lm(rtime ~ distance + cclimb, data = races) fit
- Evalúe al nivel de significancia del 5% si el efecto de la distancia sobre el tiempo récord esperado de la carrera depende de la escalada acumulada.
<- lm(rtime ~ distance + cclimb + distance:cclimb, data = races)
fit2 summary(fit2)
Call:
lm(formula = rtime ~ distance + cclimb + distance:cclimb, data = races)
Residuals:
Min 1Q Median 3Q Max
-23.197 -2.797 0.628 2.243 18.963
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -0.7672 3.9058 -0.196 0.84556
distance 4.9623 0.4742 10.464 1.07e-11 ***
cclimb 3.7133 2.3647 1.570 0.12650
distance:cclimb 0.6598 0.1743 3.786 0.00066 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 7.338 on 31 degrees of freedom
Multiple R-squared: 0.9807, Adjusted R-squared: 0.9788
F-statistic: 524.1 on 3 and 31 DF, p-value: < 2.2e-16
anova(fit,fit2)
Analysis of Variance Table
Model 1: rtime ~ distance + cclimb
Model 2: rtime ~ distance + cclimb + distance:cclimb
Res.Df RSS Df Sum of Sq F Pr(>F)
1 32 2441.3
2 31 1669.4 1 771.89 14.334 0.0006597 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
- Interprete las estimaciones de los parámetros, excepto el término de intercepción.
Interpretación de la estimación de distacia: Por cada milla recorrida se incrementan 4.96 minutos en el tiempo record manteniendo constante la subida acumulada en la carrera. Altamente significante para un nivel del 5%.
Interpretación de la estimacion de subida acumulada: Por cada mil pies que se suban hay un incremento de 3.71 minutos en el tiempo tiempo record manteniendo constante la distancia que se recorre en la carrera. Sin embargo el p-valor no es significante para un nivel del 5%.
Interpretación de la estimacion de la interacción entre distancia y subida acumulada: Por cada unidad incrementada en la interacción entre distancia y subida acumulada, el cambio esperado en el tiempo record será aproximadamente de 0.66 unidades, manteniendo las otras variables constantes.
- Estime el tiempo récord esperado, en minutos, de una carrera cuya distancia y ascenso acumulado son 7.5 millas y 1800 pies, respectivamente. Calcule esta estimación “manualmente” y utilizando la función predict()
Manualmente:
$coefficients fit
(Intercept) distance cclimb
-13.108551 6.350955 11.780133
<- 7.5
distance <- 1.8
cclimb
= -13.108551 + 6.350955*distance + 11.780133*cclimb
rtime rtime
[1] 55.72785
Usando la función predict()
<- 7.5
new_distance <- 1.8
new_cclimb
<- predict(fit, newdata = data.frame(distance=new_distance, cclimb=new_cclimb))
y
y
1
55.72785
4. Ejemplo 2: whiteside - MASS
Estos datos, disponibles en el objeto whiteside de la biblioteca MASS, se recopilaron para evaluar el efecto del aislamiento en el consumo de gas. El consumo semanal de gas (Gas), en miles de pies cúbicos, y la temperatura exterior media (Temp), en grados centígrados, se registraron durante 26 semanas antes (Insul=“Antes”) y durante 30 semanas después (Insul=“Después”) de que se instalara un aislamiento de la pared hueca de una casa.
library(MASS)
data("whiteside")
Ajuste a los datos un modelo lineal normal en el que el consumo de gas sea la variable de respuesta, y la temperatura exterior media y la presencia/ausencia de aislamiento de la pared de la cavidad sean las variables explicativas.
<- lm(Gas ~ Temp + Insul, data = whiteside) fit3
\[ Gas = 6.55133 − 0.33670(Temp) − 1.56520 \]
Evalúe al nivel de significancia del 5% si el efecto de la temperatura exterior media sobre el consumo de gas esperado depende de la presencia/ausencia de aislamiento en la pared.
<- lm(Gas ~ Temp*Insul, data = whiteside) fit4 summary(fit4)
Call: lm(formula = Gas ~ Temp * Insul, data = whiteside) Residuals: Min 1Q Median 3Q Max -0.97802 -0.18011 0.03757 0.20930 0.63803 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 6.85383 0.13596 50.409 < 2e-16 *** Temp -0.39324 0.02249 -17.487 < 2e-16 *** InsulAfter -2.12998 0.18009 -11.827 2.32e-16 *** Temp:InsulAfter 0.11530 0.03211 3.591 0.000731 *** --- Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 Residual standard error: 0.323 on 52 degrees of freedom Multiple R-squared: 0.9277, Adjusted R-squared: 0.9235 F-statistic: 222.3 on 3 and 52 DF, p-value: < 2.2e-16
anova(fit4)
Analysis of Variance Table Response: Gas Df Sum Sq Mean Sq F value Pr(>F) Temp 1 35.019 35.019 335.655 < 2.2e-16 *** Insul 1 33.224 33.224 318.451 < 2.2e-16 *** Temp:Insul 1 1.345 1.345 12.893 0.0007307 *** Residuals 52 5.425 0.104 --- Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Al nivel de significancia del 5%, existe evidencia estadísticamente significativa (0.00073 < 0.05) de que el impacto de un incremento en la temperatura exterior media sobre el consumo de gas depende de la presencia/ausencia de aislamiento en la pared. El consumo de gas esperado disminuye tras la instalación del aislamiento, pero la velocidad a la que ocurre esta disminución se acentúa a medida que la temperatura aumenta.
Interprete las estimaciones de los parámetros excepto el término de intercepción.
Interpretación de la estimación de la temperatura: Por cada grado centrígrado que se incrementa la temperatura exterior, se disminuyen 0.39324 miles de pies cúbicos en el consumo semanal de gas. Altamente significante para un nivel del 5%.
Interpretación de la estimacion de la instalación del aislamiento (después): Tras la instalacion del aislamiento de la pared hueca de la casa, se disminuyen 2.12998 miles de pies cúbico en el consumo de gas semanal esperado, controlando por temperatura. Altamente significante para un nivel del 5%.
Interpretación de la interacción entre estimacion de la temperatura e instalación del aislamiento (después): La velocidad a la que disminuye el consumo de gas semanal es diferente con la ausencia o presencia de aislameinto en la pared de la casa. El cambio esperado en el consumo de gas semanal esperado sera de 0.1153 unidades posterior a la instalación del aislamiento e incrementando la temperatura una unidad.
Estime el consumo de gas esperado, en miles de pies cúbicos, en una semana en la que la temperatura exterior media sea de 5 grados centígrados y el aislamiento de la pared esté presente. Calcule esta estimación “manualmente” y utilizando la función predict(). ##### 2.1 Selección de variables
4.1 Estimación manual :
$coefficients fit3
(Intercept) Temp InsulAfter 6.551329 -0.336697 -1.565205
<- 5 Temp <- 1 InsulAfter = 6.551329 + -0.336697*Temp - 1.565205*InsulAfter Gas Gas
[1] 3.302639
4.2 Estimación con función
predict()
:<- 5 new_Temp <- predict(fit3, newdata = data.frame(Temp = new_Temp, Insul = "After")) y y
1 3.302639
En una semana, donde la temperatura promedio exterior es de 5°C y el aislamiento en la pared hueca de la casa ya se encuentra instalado, el consumo de gas estimado será de 3.3026 miles de pies cúbicos.
Copyright © 2025 Jose Miguel Leon - Created with Quarto