A. Modelo de Regresión Lineal Simple: 1. Realizamos el modelo ajustado
library(lmtest)
datos <- read.csv("supuestos.csv")
doctor <- datos$doctor
VidaFem <- datos$lifExpFem
mod <- lm(VidaFem ~ doctor, data=datos)
summary(mod)
##
## Call:
## lm(formula = VidaFem ~ doctor, data = datos)
##
## Residuals:
## Min 1Q Median 3Q Max
## -20.053 -5.513 1.614 6.222 14.067
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 61.6726 0.8568 71.98 <2e-16 ***
## doctor 5.3042 0.4314 12.29 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 7.771 on 170 degrees of freedom
## (22 observations deleted due to missingness)
## Multiple R-squared: 0.4706, Adjusted R-squared: 0.4675
## F-statistic: 151.1 on 1 and 170 DF, p-value: < 2.2e-16
library(ggplot2)
library(broom)
df <- data.frame(
yhat = fitted.values(mod),
res = rstandard(mod))
ggplot(df, aes(sample = res)) +
stat_qq(color = "blue") +
stat_qq_line(linewidth = 1) +
labs(x = "Cuantiles teóricos", y = "Cuantiles muestrales") +
theme_minimal(base_size = 14)
Hacemos la prueba de Shapiro-Wilk
shapiro.test(df$res)
##
## Shapiro-Wilk normality test
##
## data: df$res
## W = 0.9619, p-value = 0.000122
mean(df$res)
## [1] -0.001717297
Se sugiere que los datos no son normales, rechazamos H0. Esto indica evidencia estadísticamente significativa de que los residuales no siguen una distribución normal.
Supuesto 2: Varianza Constante
ggplot(df, aes(x = yhat, y = res)) +
geom_point(alpha = 0.6, color = "blue") +
geom_hline(yintercept = 0, linetype = "dashed", color = "grey40") +
labs(x = "Valores ajustados", y = "Residuales estandarizados") +
theme_minimal(base_size = 14)
Hacemos la prueba de Breusch-Pagan
bptest(mod)
##
## studentized Breusch-Pagan test
##
## data: mod
## BP = 6.7478, df = 1, p-value = 0.009386
Se sugiere que los errores muestran una varianza no constante, heterocedasticidad. Se rechaza H0.
Supuesto 3: Independencia
library(ggplot2)
library(highcharter)
library(tidyverse)
df1 <- data.frame(
res = rstandard(mod)) %>%
mutate(orden = 1:length(res))
ggplot(df1, aes(x = orden, y = res)) +
geom_point(alpha = 0.6, color = "blue") +
geom_hline(yintercept = 0, linetype = "dashed", color = "grey40") +
labs(x = "Orden/tiempo", y = "Residuales estandarizados") +
theme_minimal(base_size = 14)
Hacemos la prueba Durbin-Watson
dwtest(mod)
##
## Durbin-Watson test
##
## data: mod
## DW = 1.9794, p-value = 0.4393
## alternative hypothesis: true autocorrelation is greater than 0
No hay evidencia estadísticamente significativa de autocorrelación de los errores.
B. Modelo de Regresión Lineal Múltiple: 1. Comenzamos generando el modelo de regresión lineal múltiple.
fecundidad <- datos$tfr
anticonceptivos <- datos$contracep
educacion_femenina <- datos$yearSchF
mod2 <- lm(fecundidad ~ anticonceptivos + educacion_femenina, data= datos)
summary(mod2)
##
## Call:
## lm(formula = fecundidad ~ anticonceptivos + educacion_femenina,
## data = datos)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1.88868 -0.52076 0.06251 0.50355 2.22631
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 6.950649 0.169315 41.051 < 2e-16 ***
## anticonceptivos -0.042085 0.004648 -9.054 3.25e-15 ***
## educacion_femenina -0.194993 0.030539 -6.385 3.44e-09 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.7979 on 119 degrees of freedom
## (72 observations deleted due to missingness)
## Multiple R-squared: 0.8018, Adjusted R-squared: 0.7985
## F-statistic: 240.7 on 2 and 119 DF, p-value: < 2.2e-16
df2 <- data.frame(
yhat = fitted.values(mod2),
res = rstandard(mod2))
ggplot(df2, aes(sample = res)) +
stat_qq(color = "blue") +
stat_qq_line(linewidth = 1) +
labs(x = "Cuantiles teóricos", y = "Cuantiles muestrales") +
theme_minimal(base_size = 14)
Hacemos la prueba Shapiro-Wilk
shapiro.test(df2$res)
##
## Shapiro-Wilk normality test
##
## data: df2$res
## W = 0.99231, p-value = 0.7397
mean(df2$res)
## [1] -0.0007677076
No existe evidencia estadísticamente significativa para afirmar que los residuales no sean normales. El supuesto de normalidad se considera razonablemente cumplido.
Supuesto 2: Varianza Constante
ggplot(df2, aes(x = yhat, y = res)) +
geom_point(alpha = 0.6, color = "blue") +
geom_hline(yintercept = 0, linetype = "dashed", color = "grey40") +
labs(x = "Valores ajustados", y = "Residuales estandarizados") +
theme_minimal(base_size = 14)
Hacemos la prueba Breusch-Pagan
bptest(mod2)
##
## studentized Breusch-Pagan test
##
## data: mod2
## BP = 4.5645, df = 2, p-value = 0.1021
No existe evidencia estadísticamente significativa de heterocedasticidad. El supuesto de varianza constante se considera razonablemente cumplido.
Supuesto 3: Independencia
df3 <- data.frame(
res = rstandard(mod2)) %>%
mutate(orden = 1:length(res))
ggplot(df3, aes(x = orden, y = res)) +
geom_point(alpha = 0.6, color = "blue") +
geom_hline(yintercept = 0, linetype = "dashed", color = "grey40") +
labs(x = "Orden/tiempo", y = "Residuales estandarizados") +
theme_minimal(base_size = 14)
Hacemos la prueba Durbin-Watson
dwtest(mod2)
##
## Durbin-Watson test
##
## data: mod2
## DW = 1.9599, p-value = 0.4015
## alternative hypothesis: true autocorrelation is greater than 0
No existe evidencia estadísticamente significativa de autocorrelación en los errores. El supuesto de independencia se considera razonablemente cumplido.
Conclusión:
RLS - Aunque la prueba de Durbin-Watson sugiere que no hay autocorrelación entre los errores del modelo, las pruebas de Shapiro-Wilk y Breusch-Pagan obtuvieron p-values menores a 0.05, y por lo tanto se debe tener cautela al interpretar las pruebas de hipótesis y los predictores del modelo.
RLM - El modelo muestra resultados consistentes en los tres supuestos evaluados, lo que permite tener mayor confianza en la inferencia estadística del modelo.