[cite_start]En este ejercicio, aplicaremos el análisis de Regresión Lineal Simple [cite: 697] para modelar la relación entre dos variables antropométricas del conjunto de datos Cholula: * [cite_start]Variable Dependiente (Y): Estatura (X11)[cite: 698]. * [cite_start]Variable Independiente (X): Longitud del Muslo (X19)[cite: 698].
[cite_start]Buscamos una ecuación lineal \(Y = \beta_0 + \beta_1 X\) que permita predecir la estatura a partir de la longitud del muslo[cite: 699].
En este chunk cargamos los paquetes necesarios (usando
pacman::p_load) y el conjunto de datos
Cholula.sav.
[cite_start]Calcularemos la correlación de Pearson [cite: 686] para variables numéricas para identificar la relación más fuerte con la estatura (X11).
# Seleccionar solo variables numéricas continuas
Cholula_num <- Cholula %>%
select(starts_with("X"))
# Matriz de correlación
cor_matrix <- cor(Cholula_num, use = "pairwise.complete.obs", method = "pearson")
# Ver los resultados
round(cor_matrix, 3)
## X11 X14 X15 X16 X17 X18 X19 X20 X21
## X11 1.000 0.840 0.735 0.611 0.561 0.899 0.776 0.803 0.702
## X14 0.840 1.000 0.886 0.743 0.649 0.854 0.754 0.771 0.686
## X15 0.735 0.886 1.000 0.492 0.453 0.753 0.673 0.673 0.557
## X16 0.611 0.743 0.492 1.000 0.216 0.632 0.559 0.593 0.485
## X17 0.561 0.649 0.453 0.216 1.000 0.544 0.463 0.424 0.557
## X18 0.899 0.854 0.753 0.632 0.544 1.000 0.904 0.832 0.659
## X19 0.776 0.754 0.673 0.559 0.463 0.904 1.000 0.588 0.555
## X20 0.803 0.771 0.673 0.593 0.424 0.832 0.588 1.000 0.607
## X21 0.702 0.686 0.557 0.485 0.557 0.659 0.555 0.607 1.000
# Matriz de gráficos (puede tardar, se incluye para exploración)
# ggpairs(Cholula_num)
[cite_start]Observando la matriz de correlación, se confirma que la Longitud del Muslo (X19) tiene una alta correlación con la Estatura (X11) (Valor de 0.775 en tu análisis original), lo que justifica el modelo de regresión[cite: 689, 690].
Se muestran las estadísticas básicas (n, media, desviación estándar) para las variables Estatura (X11) y Longitud del Muslo (X19).
# Estadísticas para X11 (Estatura)
res_X11 <- Cholula %>%
summarise(
n = sum(!is.na(X11)),
media = mean(X11, na.rm = TRUE),
sd = sd(X11, na.rm = TRUE)
) %>%
mutate(across(c(media, sd), ~round(.x, 2)))
# Estadísticas para X19 (Longitud del Muslo)
res_X19 <- Cholula %>%
summarise(
n = sum(!is.na(X19)),
media = mean(X19, na.rm = TRUE),
sd = sd(X19, na.rm = TRUE)
) %>%
mutate(across(c(media, sd), ~round(.x, 2)))
# Crear una tabla de resultados combinados (usando un data frame para mejor presentación en Rmd)
resultados_df <- data.frame(
Variable = c("Estatura (X11)", "Longitud Muslo (X19)"),
n = c(res_X11$n, res_X19$n),
Media = c(res_X11$media, res_X19$media),
SD = c(res_X11$sd, res_X19$sd)
)
knitr::kable(resultados_df, caption = "Estadísticas Descriptivas de Variables de Interés")
| Variable | n | Media | SD |
|---|---|---|---|
| Estatura (X11) | 339 | 1611.29 | 59.31 |
| Longitud Muslo (X19) | 339 | 475.15 | 26.05 |
[cite_start]Verificamos la suposición de normalidad en las variables[cite: 682]. [cite_start]Si el \(p\)-valor es menor que \(0.05\), se rechaza la hipótesis nula (\(H_0\)) de normalidad[cite: 680].
p_norm_X11 <- shapiro.test(Cholula$X11)
p_norm_X19 <- shapiro.test(Cholula$X19)
cat("Shapiro-Wilk para Estatura (X11):\n")
## Shapiro-Wilk para Estatura (X11):
print(p_norm_X11)
##
## Shapiro-Wilk normality test
##
## data: Cholula$X11
## W = 0.98548, p-value = 0.001739
cat("\nShapiro-Wilk para Longitud del Muslo (X19):\n")
##
## Shapiro-Wilk para Longitud del Muslo (X19):
print(p_norm_X19)
##
## Shapiro-Wilk normality test
##
## data: Cholula$X19
## W = 0.9818, p-value = 0.0002736
# Interpretación: Si el p-valor < 0.05, la variable NO se distribuye normalmente
[cite_start]Se muestra el diagrama de dispersión con la línea de mejor ajuste para la regresión[cite: 700].
ggplot(Cholula, aes(x = X19, y = X11)) +
geom_point(alpha = 0.6, color = "steelblue") +
geom_smooth(method = "lm", se = FALSE, color = "red") +
labs(title = "Relación entre Estatura y Longitud del Muslo",
x = "Longitud muslo (mm)",
y = "Estatura (mm.)") +
theme_minimal(base_size = 13)
[cite_start]Ajustamos y examinamos el Modelo Lineal[cite: 697]: \(Estatura = \beta_0 + \beta_1 \cdot LongitudMuslo + \epsilon\).
# Ajuste del modelo lineal: Y (X11) ~ X (X19)
modelo <- lm(X11 ~ X19, data = Cholula)
# Resumen del modelo
summary(modelo)
##
## Call:
## lm(formula = X11 ~ X19, data = Cholula)
##
## Residuals:
## Min 1Q Median 3Q Max
## -100.053 -25.388 -1.753 20.212 136.853
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 771.80913 37.22876 20.73 <2e-16 ***
## X19 1.76676 0.07823 22.58 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 37.47 on 337 degrees of freedom
## Multiple R-squared: 0.6021, Adjusted R-squared: 0.6009
## F-statistic: 510 on 1 and 337 DF, p-value: < 2.2e-16
La ecuación de regresión es: \[Estatura \approx 771.81 + 1.77 \cdot Longitud Muslo\]
[cite_start]El coeficiente de determinación (\(R^2\), Multiple R-squared)
indica la proporción de la varianza en la Estatura que es predecible a
partir de la longitud del muslo[cite: 703].
[cite_start]Es crucial verificar los supuestos de los errores del modelo de regresión [cite: 701, 705] para asegurar la validez de las inferencias.
Utilizaremos los gráficos de diagnóstico estándar en R:
par(mfrow = c(2, 2)) # Organiza los 4 gráficos en un solo panel
plot(modelo)
par(mfrow = c(1, 1)) # Regresa al formato de un gráfico por panel
Aparte de la gráfica Q-Q (ya vista en la sección anterior), se realizan pruebas estadísticas formales.
Utilizamos la prueba de Breusch-Pagan
(bptest): * [cite_start]\(H_0\): Varianza de los errores constante
(Homocedasticidad)[cite: 705]. * \(H_A\): Varianza de los errores no constante
(Heterocedasticidad).
bptest(modelo)
##
## studentized Breusch-Pagan test
##
## data: modelo
## BP = 0.79445, df = 1, p-value = 0.3728
Si el \(p\)-valor > 0.05, no rechazamos la \(H_0\) y asumimos homocedasticidad.
Utilizamos la prueba de Durbin-Watson
(dwtest) para verificar si los residuos son independientes
(especialmente importante para datos de series de tiempo).
dwtest(modelo)
##
## Durbin-Watson test
##
## data: modelo
## DW = 1.5907, p-value = 7.503e-05
## alternative hypothesis: true autocorrelation is greater than 0
Si el \(p\)-valor > 0.05, no rechazamos la \(H_0\) y asumimos independencia de los errores.