# Guardar la base de datos del grupo
library(here)
## here() starts at C:/Users/camil/OneDrive/Escritorio/t2/t22
library(readr)
df_grupo5 <- read_csv("C:/Users/camil/OneDrive/Escritorio/t2/df_grupo5.csv")
## Rows: 40 Columns: 10
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (1): estado
## dbl (9): habitantes, ingresos, analfabetismo, esp_vida, asesinatos, universi...
##
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
View(df_grupo5)
# Guardar la base de datos del grupo
# La base 2 sera usada para guardar las variables sin datos atipicos
base <- read_csv(here("df_grupo5.csv"))
## Rows: 40 Columns: 10
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (1): estado
## dbl (9): habitantes, ingresos, analfabetismo, esp_vida, asesinatos, universi...
##
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
base2 <- read_csv(here("df_grupo5.csv"))
## Rows: 40 Columns: 10
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (1): estado
## dbl (9): habitantes, ingresos, analfabetismo, esp_vida, asesinatos, universi...
##
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
En la actualidad, entienda qué factores influyen en la esperanza de vida de una población es clave para las políticas públicas y la planificación social y económica. Saber cuáles son los elementos que afectan la cantidad de años que, en promedio, vive la gente permite diseñar estrategias que realmente mejoren la calidad de vida de la población. La esperanza de vida es un indicador importante porque refleja el estado de salud y bienestar de una comunidad, ya que depende no solo de los servicios de salud, sino también de múltiples factores socioeconómicos y demográficos que muestran las condiciones.
En este estudio, analizamos cómo ciertas variables socioeconómicas se relacionan con la esperanza de vida en los diferentes estados de Estados Unidos. Este análisis es especialmente relevante porque existen muchos factores distintos que pueden impactar en la salud y el bienestar de las personas en un país tan diverso como Estados Unidos, donde los niveles de ingresos, educación, acceso a salud y otras condiciones varían de una manera diferente.
La esperanza de vida es el promedio de años que se espera que viva una persona dentro de un grupo específico en un período de tiempo determinado. Este valor no solo depende de qué tan buenos sean los servicios médicos, sino que también refleja el entorno ambiental, el nivel de educación, las condiciones económicas y otros factores sociales. Por esto, analizar cómo se relacionan la esperanza de vida y estas otras variables es fundamental para diseñar políticas que promuevan la salud.
En este contexto, Estados Unidos representa un caso interesante para estudiar. Es un país con una gran diversidad de situaciones en términos de economía, demografía y cultura. Las diferentes regiones ofrecen una variedad amplia de condiciones socioeconómicas y de salud pública que se pueden analizar para identificar patrones y entender qué factores influyen en la esperanza de vida de las personas. Además, en Estados Unidos se dispone de datos muy detallados y confiables sobre una amplia variedad de variables sociales y económicas, lo cual permite llevar a cabo un análisis integral y riguroso.
En resumen, este análisis no solo busca profundizar en cómo factores como los ingresos, el nivel educativo o la densidad de población.
# Creación de valores basicos para la descripción de las variables
vb <- base %>% get_summary_stats(., show = c("min","max", "median","mean","sd","se"))
vb
## # A tibble: 9 × 8
## variable n min max median mean sd se
## <fct> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 habitantes 40 365 21198 2980. 4576. 4915. 777.
## 2 ingresos 40 3378 6315 4533 4505. 597. 94.3
## 3 analfabetismo 40 0.5 2.2 0.9 1.07 0.534 0.084
## 4 esp_vida 40 68.5 73.6 70.8 71.0 1.22 0.193
## 5 asesinatos 40 1.4 15.1 6.45 7.05 3.73 0.589
## 6 universitarios 40 38.5 67.3 53.9 54.1 7.60 1.20
## 7 heladas 40 0 188 123 110. 51.2 8.1
## 8 area 40 1049 566432 55106 74192. 93888. 14845.
## 9 densidad_pobl 40 0.644 975. 73.0 165. 242. 38.3
# Graficos boxplot base
# Habitantes
caja_ha <- ggplot(data=base , mapping = aes(x=habitantes)) +
geom_boxplot()+
theme_minimal()
# Ingresos
caja_in <- ggplot(data=base , mapping = aes(x=ingresos)) +
geom_boxplot()+
theme_minimal()
# Analfabetismo
caja_an <- ggplot(data=base , mapping = aes(x=analfabetismo)) +
geom_boxplot()+
theme_bw()
# Esperanza de vida
caja_es <- ggplot(data=base , mapping = aes(x=esp_vida)) +
geom_boxplot()+
theme_bw()
# Asesinatos
caja_as <- ggplot(data=base , mapping = aes(x=asesinatos)) +
geom_boxplot()+
theme_bw()
# Universitarios
caja_un <- ggplot(data=base , mapping = aes(x=universitarios)) +
geom_boxplot()+
theme_bw()
# Heladas
caja_he <- ggplot(data=base , mapping = aes(x=heladas)) +
geom_boxplot()+
theme_bw()
# Área
caja_ar <- ggplot(data=base , mapping = aes(x=area)) +
geom_boxplot()+
theme_minimal()
# Densidad poblacional
caja_de <- ggplot(data=base , mapping = aes(x=densidad_pobl)) +
geom_boxplot()+
theme_bw()
# Fusión de graficos
grid.arrange(caja_an , caja_ar , caja_as , caja_as , caja_de , caja_es , caja_ha , caja_he ,
caja_in , caja_un, ncol=3)
Habitantes: Población total de habitantes por estado en miles.
Se puede observar en el grafico que existe una desviación importate hacia el lado izquierdo, adicionalmente tenemos datos atipicos aproximadamente despues de los 15000. Su promedio esta en los 4314 habitantes por estado, tambien visible en el grafico boxplot.
Ingresos: Ingreso per cápita en dólares.
Se puede inferir que los ingresos por estado de EEUU es de 4441 dolares.
Analfabetismo: Porcentaje poblacional de adultos analfabetos.
Se puede visualizar que aproximadamente uno de cada cien habitantes es analfabeta en los EEUU.
Esperanza de vida: Esperanza de vida den años.
Se puede inferir que la esperanza de vida en EEUU esta entre los setenta y setenta y dos años.
Asesinatos: Tasa de homicidios por cada 100.000 habitantes.
Se puede observar que hay entre cinco y diez asesinatos por cada cien mil habitantes.
Universitarios: Porcentaje poblacional de universitarios.
Se puede inferir que hay entre un cincuenta y sesenta porciento de los habitantes de EEUU ingresan a la educaión superior.
Heladas: Número promedio de dias con heladas.
Se puede visualizar que aproximadamente un trercio del año en EEUU son clasificados como heladas.
Área: Área terrestre en millas cuadradas.
Se puede observar en la grafica un valor atipico extremadamente distante, el cual es el área de Alaska.
Densidad poblacional: Habitantes por mil sobre el área.
Se puede visualizar una alta cantidad de valores atipicos en la densidad poblacional, dando asi una desviación a la izquierda del grafico. Por lo tanto existe una gran cantidad poblacional fuera del promedio, debido a la alta frecuencia de personas en lugares con mas oportunidades de vida.
Para a realización del estudio se opto por la creación de dos modelos, el primero con las varibles con datos atipicos y el sedundo con las variables habitantes, area y densidad poblacional sin datos atipicos, para su posterior comparación. Esto con el fin de tener el mejor modelo predictivo.
# Matriz de correlación
## Excluir x
m.cor <- cor(base[,c("habitantes", "ingresos" , "analfabetismo" , "esp_vida" , "asesinatos", "universitarios" , "heladas" , "area" , "densidad_pobl")])
# Grafica para vizualizar la matriz de correlación
corrplot(m.cor , method = "number" , type = "upper" , number.cex = 0.7)
# Modelo saturado
sat <- lm(esp_vida ~ habitantes+ingresos+analfabetismo+esp_vida+asesinatos+universitarios+heladas+area+densidad_pobl , data = base)
summary(sat)
##
## Call:
## lm(formula = esp_vida ~ habitantes + ingresos + analfabetismo +
## esp_vida + asesinatos + universitarios + heladas + area +
## densidad_pobl, data = base)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1.40689 -0.34289 -0.01127 0.45767 0.99218
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 6.917e+01 1.790e+00 38.648 < 2e-16 ***
## habitantes 4.514e-05 2.793e-05 1.616 0.1163
## ingresos 3.191e-04 2.971e-04 1.074 0.2911
## analfabetismo 7.795e-01 4.053e-01 1.923 0.0637 .
## asesinatos -3.308e-01 4.633e-02 -7.141 5.02e-08 ***
## universitarios 5.163e-02 2.261e-02 2.283 0.0294 *
## heladas -5.897e-03 3.033e-03 -1.944 0.0610 .
## area -2.810e-06 1.809e-06 -1.554 0.1304
## densidad_pobl -1.271e-03 6.888e-04 -1.845 0.0746 .
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.6549 on 31 degrees of freedom
## Multiple R-squared: 0.7721, Adjusted R-squared: 0.7132
## F-statistic: 13.13 on 8 and 31 DF, p-value: 4.808e-08
round(car::vif(sat),2)
## GVIF Df GVIF^(1/(2*Df))
## habitantes 1.71 1 1.31
## ingresos 2.86 1 1.69
## analfabetismo 4.26 1 2.06
## esp_vida 49.87 0 Inf
## asesinatos 2.71 1 1.65
## universitarios 2.69 1 1.64
## heladas 2.20 1 1.48
## area 2.62 1 1.62
## densidad_pobl 2.53 1 1.59
step(sat, direction = "backward" , criterion = "AIC")
## Start: AIC=-26.06
## esp_vida ~ habitantes + ingresos + analfabetismo + esp_vida +
## asesinatos + universitarios + heladas + area + densidad_pobl
##
##
## Step: AIC=-26.06
## esp_vida ~ habitantes + ingresos + analfabetismo + asesinatos +
## universitarios + heladas + area + densidad_pobl
##
## Df Sum of Sq RSS AIC
## - ingresos 1 0.4947 13.791 -26.594
## <none> 13.296 -26.055
## - area 1 1.0356 14.332 -25.055
## - habitantes 1 1.1199 14.416 -24.820
## - densidad_pobl 1 1.4601 14.757 -23.887
## - analfabetismo 1 1.5867 14.883 -23.546
## - heladas 1 1.6211 14.918 -23.454
## - universitarios 1 2.2357 15.532 -21.839
## - asesinatos 1 21.8703 35.167 10.849
##
## Step: AIC=-26.59
## esp_vida ~ habitantes + analfabetismo + asesinatos + universitarios +
## heladas + area + densidad_pobl
##
## Df Sum of Sq RSS AIC
## - area 1 0.5880 14.379 -26.9238
## <none> 13.791 -26.5938
## - densidad_pobl 1 0.9725 14.764 -25.8683
## - analfabetismo 1 1.1930 14.984 -25.2753
## - habitantes 1 1.2365 15.028 -25.1593
## - heladas 1 1.9120 15.703 -23.4004
## - universitarios 1 3.4881 17.279 -19.5746
## - asesinatos 1 21.4248 35.216 8.9049
##
## Step: AIC=-26.92
## esp_vida ~ habitantes + analfabetismo + asesinatos + universitarios +
## heladas + densidad_pobl
##
## Df Sum of Sq RSS AIC
## - densidad_pobl 1 0.6140 14.993 -27.251
## - analfabetismo 1 0.7124 15.092 -26.989
## <none> 14.379 -26.924
## - habitantes 1 1.0622 15.441 -26.073
## - universitarios 1 3.0475 17.427 -21.235
## - heladas 1 3.1243 17.504 -21.059
## - asesinatos 1 24.0210 38.400 10.367
##
## Step: AIC=-27.25
## esp_vida ~ habitantes + analfabetismo + asesinatos + universitarios +
## heladas
##
## Df Sum of Sq RSS AIC
## - analfabetismo 1 0.4327 15.426 -28.113
## - habitantes 1 0.6079 15.601 -27.662
## <none> 14.993 -27.251
## - universitarios 1 3.3594 18.353 -21.164
## - heladas 1 3.5013 18.495 -20.856
## - asesinatos 1 25.8092 40.802 10.794
##
## Step: AIC=-28.11
## esp_vida ~ habitantes + asesinatos + universitarios + heladas
##
## Df Sum of Sq RSS AIC
## - habitantes 1 0.3956 15.821 -29.101
## <none> 15.426 -28.113
## - universitarios 1 2.9873 18.413 -23.032
## - heladas 1 6.1458 21.572 -16.700
## - asesinatos 1 29.5319 44.958 12.674
##
## Step: AIC=-29.1
## esp_vida ~ asesinatos + universitarios + heladas
##
## Df Sum of Sq RSS AIC
## <none> 15.821 -29.101
## - universitarios 1 3.1091 18.931 -23.924
## - heladas 1 7.6731 23.495 -15.284
## - asesinatos 1 29.8342 45.656 11.290
##
## Call:
## lm(formula = esp_vida ~ asesinatos + universitarios + heladas,
## data = base)
##
## Coefficients:
## (Intercept) asesinatos universitarios heladas
## 71.928408 -0.280608 0.040545 -0.009974
round(vif(sat),2)
## GVIF Df GVIF^(1/(2*Df))
## habitantes 1.71 1 1.31
## ingresos 2.86 1 1.69
## analfabetismo 4.26 1 2.06
## esp_vida 49.87 0 Inf
## asesinatos 2.71 1 1.65
## universitarios 2.69 1 1.64
## heladas 2.20 1 1.48
## area 2.62 1 1.62
## densidad_pobl 2.53 1 1.59
mod.step <- lm(esp_vida ~ habitantes + asesinatos + densidad_pobl
+ universitarios, data = base )
summary(mod.step)
##
## Call:
## lm(formula = esp_vida ~ habitantes + asesinatos + densidad_pobl +
## universitarios, data = base)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1.6526 -0.3990 0.1259 0.4144 2.3045
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 7.110e+01 1.168e+00 60.895 < 2e-16 ***
## habitantes 5.706e-05 2.993e-05 1.907 0.0648 .
## asesinatos -2.587e-01 4.260e-02 -6.073 6.19e-07 ***
## densidad_pobl -3.980e-04 5.782e-04 -0.688 0.4959
## universitarios 2.908e-02 1.839e-02 1.581 0.1228
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.7798 on 35 degrees of freedom
## Multiple R-squared: 0.6351, Adjusted R-squared: 0.5935
## F-statistic: 15.23 on 4 and 35 DF, p-value: 2.632e-07
Adjusted R-squared: 0.7494 = 74.94% > 65%
Debido a que R-cuadrado ajustado muestra un valor de aproximadamente el 75% podemos dar por valido el modelo. Adicionamente dado que el p-valor es menor al 5% se rechaza la hipotesis nula, reafirmando lo dicho anteriormente.
anova(mod.step)
## Analysis of Variance Table
##
## Response: esp_vida
## Df Sum Sq Mean Sq F value Pr(>F)
## habitantes 1 1.146 1.146 1.8843 0.1786
## asesinatos 1 33.620 33.620 55.2862 1.057e-08 ***
## densidad_pobl 1 0.766 0.766 1.2588 0.2695
## universitarios 1 1.520 1.520 2.5002 0.1228
## Residuals 35 21.284 0.608
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
round(vif(mod.step),2)
## habitantes asesinatos densidad_pobl universitarios
## 1.39 1.62 1.26 1.25
# Diagnostico de residuos
par(mfrow = c(2,2))
plot(mod.step)
# Cálculo de residuos
resi <- residuals(mod.step)
# Media cero
t.test(resi, mu = 0, alternative = c("two.sided"))
##
## One Sample t-test
##
## data: resi
## t = -1.9611e-16, df = 39, p-value = 1
## alternative hypothesis: true mean is not equal to 0
## 95 percent confidence interval:
## -0.2362601 0.2362601
## sample estimates:
## mean of x
## -2.290648e-17
# Normalidad
shapiro.test(resi)
##
## Shapiro-Wilk normality test
##
## data: resi
## W = 0.95908, p-value = 0.1558
# Homogeneidad de Varianza
bptest(mod.step)
##
## studentized Breusch-Pagan test
##
## data: mod.step
## BP = 2.8558, df = 4, p-value = 0.5822
# Independencia
lmtest::dwtest(mod.step)
##
## Durbin-Watson test
##
## data: mod.step
## DW = 2.1571, p-value = 0.6773
## alternative hypothesis: true autocorrelation is greater than 0
Prueba t
T-valor : El valor de “t” es prácticamente cero, lo que nos indica que la media de los residuos (es decir, las diferencias entre los valores predichos y los valores reales) está muy cerca de cero. Esto sugiere que no hay un error sistemático en las predicciones.
Grados de libertad (df) : El número de grados de libertad en este caso es 39. Este valor tiene que ver con el tamaño de la muestra y es importante para evaluar la precisión de las estimaciones y los resultados de las pruebas estadísticas.
Valor p : El valor p es igual a 1, lo que significa que no tenemos suficiente evidencia para rechazar la hipótesis nula, es decir, la idea de que la media de los residuos es igual a cero. En términos simples, no hay razones claras para pensar que los residuos se alejan de cero en promedio.
Intervalo de confianza del 95% : El intervalo de confianza es [-0.2037031, 0.2037031]. Esto nos dice que, con un 95% de confianza, sabemos que la media de los residuos se encuentra dentro de este rango, que es bastante cercano a cero.
Estimación de la muestra : La estimación de la media de los residuos es 1.525201×10⁻¹⁷, un valor extremadamente pequeño. Esto refuerza la conclusión de que la media de los residuos está prácticamente en cero, lo que indica que las predicciones del modelo están bastante bien ajustadas.
Prueba de normalidad de Shapiro-Wilk
Estadístico W : El valor de 0.97283 indica que los residuos del modelo siguen bastante bien una distribución normal. En otras palabras, los errores del modelo se distribuyen de manera que se espera bajo un modelo normal.
Valor p : El valor p es 0.4403, que es mayor que 0.05. Esto significa que no tenemos suficiente evidencia para rechazar la hipótesis de que los residuos siguen una distribución normal, por lo que podemos considerar que están distribuidos normalmente.
Prueba de Breusch-Pagan estudiantizada
Estadístico BP : El valor de 2.4908 se obtiene en la prueba de heterocedasticidad, que busca si la variabilidad de los residuos cambia a lo largo de las observaciones.
Grados de libertad (df) : 4, que se refiere a la cantidad de variables independientes consideradas en el modelo.
Valor p : El valor p de 0.6463 indica que no hay evidencia de heterocedasticidad, es decir, los residuos no muestran una variabilidad inconsistente en función de las predicciones, lo que sugiere que el modelo es adecuado en este aspecto.
Prueba de Durbin-Watson
Estadístico DW : El valor de 2.2434 indica que no hay autocorrelación significativa entre los residuos. La autocorrelación se refiere a si los errores del modelo están relacionados entre sí, lo cual sería un problema.
Valor p : El valor p de 0.755 refuerza la conclusión de que no hay autocorrelación. No hay evidencia suficiente para rechazar la hipótesis de que la autocorrelación es cero, lo que sugiere que los errores no están relacionados.
# Eliminación de datos atipicos
# Habitantes
base2 <- subset(base, subset= habitantes < 15000)
caja_ha2 <- ggplot(data=base2 , mapping = aes(x=habitantes)) +
geom_boxplot()+
theme_bw()
# Área
base2 <- subset(base, subset= area < 270000)
caja_ar2 <- ggplot(data=base2 , mapping = aes(x=area)) +
geom_boxplot()+
theme_bw()
# Densidad poblacional
base2 <- subset(base, subset= densidad_pobl < 300)
caja_de2 <- ggplot(data=base2 , mapping = aes(x=densidad_pobl)) +
geom_boxplot()+
theme_bw()
# Fusion sin atipicos
grid.arrange(caja_ar2 , caja_de2 , caja_ha2, ncol=1)
# Matriz de correlación
## Excluir x
m.cor2 <- cor(base2[,c("habitantes", "ingresos" , "analfabetismo" , "esp_vida" , "asesinatos", "universitarios" , "heladas" , "area" , "densidad_pobl")])
#round(m.cor , 2)
# Grafica para vizualizar la matriz de correlación
corrplot(m.cor2 , method = "number" , type = "upper" , number.cex = 0.7)
# Modelo saturado
sat2 <- lm(esp_vida ~ habitantes+ingresos+analfabetismo+esp_vida+asesinatos+universitarios+heladas+area+densidad_pobl , data = base2)
summary(sat2)
##
## Call:
## lm(formula = esp_vida ~ habitantes + ingresos + analfabetismo +
## esp_vida + asesinatos + universitarios + heladas + area +
## densidad_pobl, data = base2)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1.3573 -0.4720 0.1148 0.5125 0.9899
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 6.860e+01 2.086e+00 32.889 < 2e-16 ***
## habitantes 8.090e-05 4.466e-05 1.811 0.0821 .
## ingresos 4.464e-04 3.694e-04 1.208 0.2382
## analfabetismo 8.114e-01 4.596e-01 1.765 0.0897 .
## asesinatos -3.154e-01 5.112e-02 -6.170 1.88e-06 ***
## universitarios 5.194e-02 2.552e-02 2.036 0.0525 .
## heladas -5.325e-03 3.413e-03 -1.560 0.1313
## area -4.227e-06 2.366e-06 -1.787 0.0861 .
## densidad_pobl -4.480e-03 3.141e-03 -1.426 0.1661
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.6953 on 25 degrees of freedom
## Multiple R-squared: 0.7759, Adjusted R-squared: 0.7041
## F-statistic: 10.82 on 8 and 25 DF, p-value: 1.919e-06
round(car::vif(sat2),2)
## GVIF Df GVIF^(1/(2*Df))
## habitantes 3.02 1 1.74
## ingresos 3.25 1 1.80
## analfabetismo 4.77 1 2.18
## esp_vida 92.82 0 Inf
## asesinatos 2.53 1 1.59
## universitarios 2.91 1 1.71
## heladas 2.42 1 1.55
## area 3.66 1 1.91
## densidad_pobl 3.45 1 1.86
step(sat2, direction = "backward" , criterion = "AIC")
## Start: AIC=-17.17
## esp_vida ~ habitantes + ingresos + analfabetismo + esp_vida +
## asesinatos + universitarios + heladas + area + densidad_pobl
##
##
## Step: AIC=-17.17
## esp_vida ~ habitantes + ingresos + analfabetismo + asesinatos +
## universitarios + heladas + area + densidad_pobl
##
## Df Sum of Sq RSS AIC
## - ingresos 1 0.7060 12.792 -17.237
## <none> 12.086 -17.167
## - densidad_pobl 1 0.9837 13.070 -16.506
## - heladas 1 1.1765 13.262 -16.008
## - analfabetismo 1 1.5066 13.592 -15.172
## - area 1 1.5431 13.629 -15.081
## - habitantes 1 1.5864 13.672 -14.974
## - universitarios 1 2.0031 14.089 -13.953
## - asesinatos 1 18.4024 30.488 12.293
##
## Step: AIC=-17.24
## esp_vida ~ habitantes + analfabetismo + asesinatos + universitarios +
## heladas + area + densidad_pobl
##
## Df Sum of Sq RSS AIC
## - densidad_pobl 1 0.4457 13.238 -18.072
## <none> 12.792 -17.237
## - area 1 0.8435 13.635 -17.066
## - analfabetismo 1 1.0114 13.803 -16.649
## - habitantes 1 1.2818 14.074 -15.990
## - heladas 1 1.6666 14.459 -15.073
## - universitarios 1 3.4742 16.266 -11.067
## - asesinatos 1 17.8932 30.685 10.512
##
## Step: AIC=-18.07
## esp_vida ~ habitantes + analfabetismo + asesinatos + universitarios +
## heladas + area
##
## Df Sum of Sq RSS AIC
## - area 1 0.4881 13.726 -18.8411
## <none> 13.238 -18.0720
## - habitantes 1 0.8643 14.102 -17.9215
## - analfabetismo 1 0.8937 14.131 -17.8507
## - heladas 1 2.0093 15.247 -15.2673
## - universitarios 1 3.4269 16.665 -12.2446
## - asesinatos 1 18.3080 31.546 9.4526
##
## Step: AIC=-18.84
## esp_vida ~ habitantes + analfabetismo + asesinatos + universitarios +
## heladas
##
## Df Sum of Sq RSS AIC
## - analfabetismo 1 0.5156 14.241 -19.587
## - habitantes 1 0.7274 14.453 -19.085
## <none> 13.726 -18.841
## - heladas 1 3.2237 16.949 -13.668
## - universitarios 1 3.2280 16.954 -13.660
## - asesinatos 1 20.8884 34.614 10.609
##
## Step: AIC=-19.59
## esp_vida ~ habitantes + asesinatos + universitarios + heladas
##
## Df Sum of Sq RSS AIC
## - habitantes 1 0.4108 14.652 -20.6204
## <none> 14.241 -19.5872
## - universitarios 1 2.7274 16.969 -15.6297
## - heladas 1 6.2786 20.520 -9.1688
## - asesinatos 1 26.0221 40.263 13.7488
##
## Step: AIC=-20.62
## esp_vida ~ asesinatos + universitarios + heladas
##
## Df Sum of Sq RSS AIC
## <none> 14.652 -20.620
## - universitarios 1 2.7989 17.451 -16.677
## - heladas 1 7.9672 22.619 -7.857
## - asesinatos 1 25.9553 40.607 12.038
##
## Call:
## lm(formula = esp_vida ~ asesinatos + universitarios + heladas,
## data = base2)
##
## Coefficients:
## (Intercept) asesinatos universitarios heladas
## 72.03860 -0.28622 0.04012 -0.01025
round(vif(sat2),2)
## GVIF Df GVIF^(1/(2*Df))
## habitantes 3.02 1 1.74
## ingresos 3.25 1 1.80
## analfabetismo 4.77 1 2.18
## esp_vida 92.82 0 Inf
## asesinatos 2.53 1 1.59
## universitarios 2.91 1 1.71
## heladas 2.42 1 1.55
## area 3.66 1 1.91
## densidad_pobl 3.45 1 1.86
mod.step2 <- lm(esp_vida ~ habitantes + asesinatos + densidad_pobl
+ analfabetismo, data = base )
summary(mod.step2)
##
## Call:
## lm(formula = esp_vida ~ habitantes + asesinatos + densidad_pobl +
## analfabetismo, data = base)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1.82628 -0.32999 0.04644 0.45079 2.08195
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 7.274e+01 3.122e-01 233.024 < 2e-16 ***
## habitantes 7.250e-05 3.053e-05 2.374 0.0232 *
## asesinatos -3.429e-01 5.281e-02 -6.492 1.74e-07 ***
## densidad_pobl -9.315e-04 5.930e-04 -1.571 0.1252
## analfabetismo 5.080e-01 3.255e-01 1.560 0.1277
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.7805 on 35 degrees of freedom
## Multiple R-squared: 0.6345, Adjusted R-squared: 0.5927
## F-statistic: 15.19 on 4 and 35 DF, p-value: 2.711e-07
Adjusted R-squared: 0.7278 = 72.78% > 65%
Debido a que R-cuadrado ajustado muestra un valor de aproximadamente el 75% podemos dar por valido el modelo. Adicionamente dado que el p-valor es menor al 5% se rechaza la hipotesis nula, reafirmando lo dicho anteriormente.
anova(mod.step2)
## Analysis of Variance Table
##
## Response: esp_vida
## Df Sum Sq Mean Sq F value Pr(>F)
## habitantes 1 1.146 1.146 1.8810 0.1789
## asesinatos 1 33.620 33.620 55.1900 1.077e-08 ***
## densidad_pobl 1 0.766 0.766 1.2567 0.2699
## analfabetismo 1 1.483 1.483 2.4350 0.1277
## Residuals 35 21.321 0.609
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
round(vif(mod.step2),2)
## habitantes asesinatos densidad_pobl analfabetismo
## 1.44 2.48 1.32 1.93
# Diagnostico de residuos
par(mfrow = c(2,2))
plot(mod.step2)
# Cálculo de residuos
resi2 <- residuals(mod.step2)
# Media cero
t.test(resi2, mu = 0, alternative = c("two.sided"))
##
## One Sample t-test
##
## data: resi2
## t = 1.2755e-16, df = 39, p-value = 1
## alternative hypothesis: true mean is not equal to 0
## 95 percent confidence interval:
## -0.236466 0.236466
## sample estimates:
## mean of x
## 1.491185e-17
# Normalidad
shapiro.test(resi2)
##
## Shapiro-Wilk normality test
##
## data: resi2
## W = 0.95699, p-value = 0.1321
# Homogeneidad de Varianza
bptest(mod.step2)
##
## studentized Breusch-Pagan test
##
## data: mod.step2
## BP = 6.6874, df = 4, p-value = 0.1534
# Independencia
lmtest::dwtest(mod.step2)
##
## Durbin-Watson test
##
## data: mod.step2
## DW = 2.0018, p-value = 0.4911
## alternative hypothesis: true autocorrelation is greater than 0
Prueba t
Valor t : El valor t es −2.7106×10⁻¹⁶, lo que sugiere que la media de los residuos (los errores en las predicciones) está extremadamente cerca de cero, lo cual es una buena señal de que el modelo no está cometiendo errores sistemáticos.
Grados de libertad (df) : El número de grados de libertad en este caso es 39. Este valor se refiere a cuántos datos independientes se están utilizando para hacer el cálculo.
Valor p : El valor p es 1, lo que significa que no hay evidencia suficiente para rechazar la hipótesis de que la media de los residuos es igual a cero. En otras palabras, no podemos decir que los residuos tengan una media diferente de cero, lo que es esperado en un modelo bien ajustado.
Intervalo de confianza del 95% : El intervalo de confianza es [−0.2122981, 0.2122981], lo que significa que podemos estar un 95% seguros de que la media de los residuos está dentro de este rango cercano a cero.
Estimaciones de la muestra : La media de los residuos es −2.844947×10⁻¹⁷, un valor extremadamente pequeño, que refuerza la conclusión de que los residuos tienen una media prácticamente igual a cero.
Prueba de normalidad de Shapiro-Wilk
Estadístico W : El valor de 0.96066 indica que los residuos del modelo siguen bastante bien una distribución normal, lo cual es positivo porque las regresiones lineales suponen que los errores se distribuyen de manera normal.
Valor p : El valor p de 0.1764 es mayor que 0.05, lo que significa que no tenemos evidencia para rechazar la hipótesis de que los residuos siguen una distribución normal. En otras palabras, los residuos se distribuyen normalmente, como se espera.
Prueba de Breusch-Pagan estudiantizada
Estadístico BP : El valor de 2.3353 no indica problemas de heterocedasticidad, que es cuando la variabilidad de los residuos cambia de manera inconsistente en todo el modelo.
Grados de libertad (df) : El valor de 4 se refiere a la cantidad de variables independientes consideradas en el análisis.
Valor p : El valor p de 0.6744 nos indica que no hay evidencia de heterocedasticidad. Esto significa que los residuos tienen una variabilidad constante a lo largo de las predicciones.
Prueba de Durbin-Watson
Estadístico DW : El valor de 2.1851 sugiere que no hay autocorrelación significativa entre los residuos. La autocorrelación sería un problema si los residuos estuvieran correlacionados entre sí.
Valor p : El valor p de 0.6833 refuerza la conclusión de que no hay autocorrelación, ya que no hay suficiente evidencia para rechazar la hipótesis de que no hay autocorrelación entre los residuos.
En resumen, los resultados de todas las pruebas estadísticas indican que los residuos del modelo de regresión lineal cumplen con las condiciones necesarias para un buen ajuste. Están distribuidos normalmente, no muestran evidencia de heterocedasticidad (variabilidad inconsistente) ni autocorrelación significativa, y su medio está cerca de cero. Esto sugiere que el modelo se ajusta bien a los datos.
Al final, los dos modelos analizados parecen ser bastante similares en cuanto a los resultados de las pruebas estadísticas, y no hay diferencias significativas entre ellos. Sin embargo, debido a la evaluación observada entre la esperanza de vida y el analfabetismo, se decidió que el modelo sin datos atípicos sería la mejor opción para este análisis en particular.