Caso de Estudio
Esperanza de Vida en EU, en el presente documento se analizarán datos estadísticos sobre información relacionada en entorno al caso de estudio, en las ciudades de Estados Unidos y entre los años 1970-1980.
Esperanza de Vida
Objetivo
Con el presente estudio se busca generar un modelo que nos permita predecir la esperanza de vida media de los habitantes de una ciudad en función de diferentes variables; para la creación de este modelo se utilizará la Regresión Lineal Múltiple
Concepto de Regresión Lineal Múltiple
La regresión lineal múltiple nos permite generar un modelo lineal dónde el valor de la variable dependiente es determinado a partir de un conjunto de variables independientes llamadas predictores (esto último se debe que analizar con cautela para no malinterpretar causa-efecto).
Los modelos lineales múltiples siguen la siguiente ecuación:
\[ Y_{i}=(\beta_{0}+\beta_{1}X_{1i}+\beta_{2}X_{2i}+\cdots+\beta_{n}X_{ni})+e_{i} \]
\(\beta_{0}\) : es la ordenada en el origen, el valor de la variable dependiente Y cuando todos los predictores son cero.
\(\beta_{i}\) : es el efecto promedio que tiene el incremento en una unidad de la variable predictora Xi sobre la variable dependiente Y manteniéndose constantes el resto de las variables. Se conocen como coeficientes parciales de regresión.
\(e_{i}\) : es el residuo o error, la diferencia entre el valor observado y el estimado por el modelo.
Esperanza de Vida
Introducción
La esperanza de vida es un término utilizado para referirnos al indicador utilizado en la rama de las matemáticas con el fin de medir el promedio de años que se esperaría que una persona o grupo de personas viva desde su nacimiento hasta su muerte. Esto puede ser medido a nivel local, estatal, nacional y global, sin embargo, el análisis de la esperanza de vida de una población es conveniente notar las diferentes variables que afecten este problema, con el fin de conseguir una mayor certeza de lo que se realizara.
Ciudadanos
Concepto
La definición formal de este término es la siguiente: “Años que un recién nacido puede esperar vivir si los patrones de mortalidad por edades imperantes en el momento de su nacimiento siguieran siendo los mismos a lo largo de toda su vida”.
Significado Real de “Esperanza de Vida”
Si un niño nace hoy en un país donde la esperanza de vida es de 75 años, puede esperar vivir hasta los 75… ¿verdad?
No exactamente.
El indicador sobre “Esperanza de vida” en realidad se refiere a la cantidad de años que viviría un recién nacido si los patrones de mortalidad vigentes al momento de su nacimiento no cambian a lo largo de la vida del infante.
Importancia
La esperanza de vida es una medida que resume la mortalidad de un país; permitiéndonos comparar por generaciones y analizar tendencias. Su interpretación y significado es aún mucho más rica y puede aportarnos información clave sobre el nivel de desarrollo del estado de bienestar de un país.
Este indicador resulta tan importante para describir las condiciones de una población que, junto con el índice de educación y el índice del Producto Interior Bruto (PIB) conforma el Índice de Desarrollo Humano que utiliza el Programa de las Naciones Unidas para el Desarrollo (PNUD). Y es que tener una vida larga y saludable es el mejor indicativo del desarrollo social de un país.
Factores que influyen en la esperanza de vida
La esperanza de vida depende de muchos factores, de entre los cuales la Organización Mundial de la Salud (OMS) destaca:
- Abuso del alcohol.
- Potabilidad del agua.
- Desnutrición infantil.
- Hipertensión arterial.
- Mejorías de la higiene.
- Prácticas sexuales de riesgo.
- Acceso a servicios sanitarios.
- Diabetes mellitus.
- Obesidad y sobrepeso.
- Catástrofes naturales.
- Conflictos bélicos.
- Contaminación y polución del aire.
Análisis de los Datos
Para la elaboración del presente análisis y modelo, es necesario desde primera instancia cargar los paquetes a utilizar, librerías, datos, con el fin de desarrollar los modelos y analis de una manera mas eficiente.
Paquetes
Para la creación del presente documento se utilizaron las siguientes librerías
setwd("~/Estadistica aplicada/Trabajos")
library(pacman)
p_load("prettydoc", "DT", "xfun", "dplyr", "psych", "GGally", "ggplot2","readr","stringr","vembedr", "xfun","gridExtra","corrplot")
Datos
Los datos utilizados ya se encuentran dentro de las librerías de R(state.x77).
Se dispone de información de cada estado de EU sobre:
Habitantes: Población estimada a 1 de Julio de 1975
Ingresos: Ingreso per capita (1974)
Analfabetismo: Analfabetismo (1970, Porcentaje de la población)
Esperanza de Vida: Esperanza de vida en los años (1969–71)
Asesinatos: Ratio de asesinatos por cada 100,000 habitantes (1976)
Universitarios: Porcentaje de universitarios (1970)
Heladas: Media de días con temperaturas mínimas menores a 0°C (1930-1960) en la Capital o Ciudad más Grande
Área: Territorio en millas cuadradas
Para una mejor representación de los datos estos se procederán a visualizar en la siguiente tabla. La cual nos muestra de una forma más ordenada estos datos, organizados por ciudades.
datos <- as.data.frame(state.x77)
datatable(datos)
Renombrando las variables
Con el fin de trabajar con datos más entendibles, se renombrarán las variables a español, además, se establecerá la densidad poblacional utilizando la siguiente fórmula: densidad_pobl = habitantes * 1000 / area.
datos <- rename(habitantes = Population, analfabetismo = Illiteracy,
ingresos = Income, esp_vida = `Life Exp`, asesinatos = Murder,universitarios = `HS Grad`, heladas = Frost, area = Area,.data = datos)
datos <- mutate(.data=datos, densidad_pobl = habitantes * 1000 / area)
Análisis de Correlación
El análisis de correlación es utilizado para determinar la relación entre las variables en estudio, a continuación se realizará el análisis de correlación utilizando el método “Pearson”.
round(cor(x = datos, method="pearson"), 3)
## habitantes ingresos analfabetismo esp_vida asesinatos
## habitantes 1.000 0.208 0.108 -0.068 0.344
## ingresos 0.208 1.000 -0.437 0.340 -0.230
## analfabetismo 0.108 -0.437 1.000 -0.588 0.703
## esp_vida -0.068 0.340 -0.588 1.000 -0.781
## asesinatos 0.344 -0.230 0.703 -0.781 1.000
## universitarios -0.098 0.620 -0.657 0.582 -0.488
## heladas -0.332 0.226 -0.672 0.262 -0.539
## area 0.023 0.363 0.077 -0.107 0.228
## densidad_pobl 0.246 0.330 0.009 0.091 -0.185
## universitarios heladas area densidad_pobl
## habitantes -0.098 -0.332 0.023 0.246
## ingresos 0.620 0.226 0.363 0.330
## analfabetismo -0.657 -0.672 0.077 0.009
## esp_vida 0.582 0.262 -0.107 0.091
## asesinatos -0.488 -0.539 0.228 -0.185
## universitarios 1.000 0.367 0.334 -0.088
## heladas 0.367 1.000 0.059 0.002
## area 0.334 0.059 1.000 -0.341
## densidad_pobl -0.088 0.002 -0.341 1.000
Para tener un enfoque más dinámico de las distribuciones y dispersiones de los datos se procederá a realizar un Análisis con histogramas y un Análisis de dispersión con ggplot y ggally.
Análisis con histogramas
multi.hist( x = datos, dcol = c("red","green"), dlty = c("dotted", "solid")
)
Análisis de Dispersión de los datos con ggplot y ggally
ggpairs(datos, lower = list(continuous ="smooth"),
diag = list (continuos = "barDiag"), axisLabels = "none")
Representación de los datos con graficas de dispersión de puntos con su línea de tendencia con la cual se compara que tan lejos están los datos del promedio, gráficos de dispersión para poder comprender la deviación de los datos y su correlación de estos mismos.
Con los análisis realizados por medio de las gráficas, podemos llegar o establecer unas conclusiones preliminares.
Las variables que tienen una mayor relación lineal con la esperanza de vida son: asesinatos (r= -0.78), analfabetismo (r= -0.59) y universitarios (r= 0.58).
Asesinatos y analfabetismo están correlacionados (r = 0.7), por lo que no sera útil utilizar ambos .
Las variables habitantes, área y densidad poblacional muestran una distribución exponencial, una transformación logarítmica posiblemente haría más normal su distribución.
Modelo general de correalación
Ahora, vamos a revisar la relación entre la esperanza de vida y una de sus variables predictoras con el fin de ver que tanto influye la variable, en este caso el número de asesinatos.
modelo <- lm(esp_vida ~ asesinatos, data=datos)
summary(modelo)
##
## Call:
## lm(formula = esp_vida ~ asesinatos, data = datos)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1.81690 -0.48139 0.09591 0.39769 2.38691
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 72.97356 0.26997 270.30 < 2e-16 ***
## asesinatos -0.28395 0.03279 -8.66 2.26e-11 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.8473 on 48 degrees of freedom
## Multiple R-squared: 0.6097, Adjusted R-squared: 0.6016
## F-statistic: 74.99 on 1 and 48 DF, p-value: 2.26e-11
La ecuación de la recta de los mínimos cuadrados, para la evaluación del modelo quedaría de la siguiente manera:
\[ y=72.97356−0.28395x \]
Ahora se procederá a evaluar el modelo, de acuerdo con la formula anteriormente realizada.
y = 72.97356 - (0.28395*11.5)
y
## [1] 69.70814
Para conocer el residuo según este modelo, solamente se procederá a realizar una resta utilizando el valor dado por el modelo y uno real.
y - 69.03
## [1] 0.678135
En este caso al modelo solamente le faltan 0.678135 para llegar a el valor de 69.03, por lo tanto se está subestimando.
Ahora se procederá a evaluar el modelo gráficamente.
plot(datos$asesinatos, datos$esp_vida)
abline(modelo)
Primer modelo de regresión lineal múltiple
Ahora se procederán a evaluar las múltiples variables predictoras (X), con el fin de conocer cuales son lás mas significaivas para establecer la esperanza de vida.
modelo2 <- (lm(formula = esp_vida ~ habitantes +ingresos+analfabetismo+ asesinatos + universitarios + heladas+area+densidad_pobl, data = datos))
summary(modelo2)
##
## Call:
## lm(formula = esp_vida ~ habitantes + ingresos + analfabetismo +
## asesinatos + universitarios + heladas + area + densidad_pobl,
## data = datos)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1.47514 -0.45887 -0.06352 0.59362 1.21823
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 6.995e+01 1.843e+00 37.956 < 2e-16 ***
## habitantes 6.480e-05 3.001e-05 2.159 0.0367 *
## ingresos 2.701e-04 3.087e-04 0.875 0.3867
## analfabetismo 3.029e-01 4.024e-01 0.753 0.4559
## asesinatos -3.286e-01 4.941e-02 -6.652 5.12e-08 ***
## universitarios 4.291e-02 2.332e-02 1.840 0.0730 .
## heladas -4.580e-03 3.189e-03 -1.436 0.1585
## area -1.558e-06 1.914e-06 -0.814 0.4205
## densidad_pobl -1.105e-03 7.312e-04 -1.511 0.1385
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.7337 on 41 degrees of freedom
## Multiple R-squared: 0.7501, Adjusted R-squared: 0.7013
## F-statistic: 15.38 on 8 and 41 DF, p-value: 3.787e-10
Podemos observar que nuestro modelo con todas sus variables puede describir con un 70% de exactitud la esperanza de vida con un error de 0.733.
Evaluacion General del modelo(AIC)
El criterio de información de Akaike (AIC) es una medida de la calidad relativa de un modelo estadístico, para un conjunto dado de datos. Como tal, el AIC proporciona un medio para la selección del modelo. AIC maneja un trade-off entre la bondad de ajuste del modelo y la complejidad del modelo. Por lo tanto se procederá a evaluar el modelo anteriormente realizado, con el fin de que este nos proporcione cuales serían las mejores variables para la realización de un nuevo modelo.
step(object = modelo2, direction = "both", trace = 1)
## Start: AIC=-22.89
## esp_vida ~ habitantes + ingresos + analfabetismo + asesinatos +
## universitarios + heladas + area + densidad_pobl
##
## Df Sum of Sq RSS AIC
## - analfabetismo 1 0.3050 22.373 -24.208
## - area 1 0.3564 22.425 -24.093
## - ingresos 1 0.4120 22.480 -23.969
## <none> 22.068 -22.894
## - heladas 1 1.1102 23.178 -22.440
## - densidad_pobl 1 1.2288 23.297 -22.185
## - universitarios 1 1.8225 23.891 -20.926
## - habitantes 1 2.5095 24.578 -19.509
## - asesinatos 1 23.8173 45.886 11.707
##
## Step: AIC=-24.21
## esp_vida ~ habitantes + ingresos + asesinatos + universitarios +
## heladas + area + densidad_pobl
##
## Df Sum of Sq RSS AIC
## - area 1 0.1427 22.516 -25.890
## - ingresos 1 0.2316 22.605 -25.693
## <none> 22.373 -24.208
## - densidad_pobl 1 0.9286 23.302 -24.174
## - universitarios 1 1.5218 23.895 -22.918
## + analfabetismo 1 0.3050 22.068 -22.894
## - habitantes 1 2.2047 24.578 -21.509
## - heladas 1 3.1324 25.506 -19.656
## - asesinatos 1 26.7071 49.080 13.072
##
## Step: AIC=-25.89
## esp_vida ~ habitantes + ingresos + asesinatos + universitarios +
## heladas + densidad_pobl
##
## Df Sum of Sq RSS AIC
## - ingresos 1 0.132 22.648 -27.598
## - densidad_pobl 1 0.786 23.302 -26.174
## <none> 22.516 -25.890
## - universitarios 1 1.424 23.940 -24.824
## + area 1 0.143 22.373 -24.208
## + analfabetismo 1 0.091 22.425 -24.093
## - habitantes 1 2.332 24.848 -22.962
## - heladas 1 3.304 25.820 -21.043
## - asesinatos 1 32.779 55.295 17.033
##
## Step: AIC=-27.6
## esp_vida ~ habitantes + asesinatos + universitarios + heladas +
## densidad_pobl
##
## Df Sum of Sq RSS AIC
## - densidad_pobl 1 0.660 23.308 -28.161
## <none> 22.648 -27.598
## + ingresos 1 0.132 22.516 -25.890
## + analfabetismo 1 0.061 22.587 -25.732
## + area 1 0.043 22.605 -25.693
## - habitantes 1 2.659 25.307 -24.046
## - heladas 1 3.179 25.827 -23.030
## - universitarios 1 3.966 26.614 -21.529
## - asesinatos 1 33.626 56.274 15.910
##
## Step: AIC=-28.16
## esp_vida ~ habitantes + asesinatos + universitarios + heladas
##
## Df Sum of Sq RSS AIC
## <none> 23.308 -28.161
## + densidad_pobl 1 0.660 22.648 -27.598
## + ingresos 1 0.006 23.302 -26.174
## + analfabetismo 1 0.004 23.304 -26.170
## + area 1 0.001 23.307 -26.163
## - habitantes 1 2.064 25.372 -25.920
## - heladas 1 3.122 26.430 -23.877
## - universitarios 1 5.112 28.420 -20.246
## - asesinatos 1 34.816 58.124 15.528
##
## Call:
## lm(formula = esp_vida ~ habitantes + asesinatos + universitarios +
## heladas, data = datos)
##
## Coefficients:
## (Intercept) habitantes asesinatos universitarios heladas
## 7.103e+01 5.014e-05 -3.001e-01 4.658e-02 -5.943e-03
Modelo Ajustado
Como resultado del proceso AIC nos muestra el modelo ajustado que quita la variable Área, Analfabetismo y Ingreso del modelo.
modelo3 <- (lm(formula = esp_vida ~ habitantes + asesinatos + universitarios + heladas, data = datos))
summary(modelo3)
##
## Call:
## lm(formula = esp_vida ~ habitantes + asesinatos + universitarios +
## heladas, data = datos)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1.47095 -0.53464 -0.03701 0.57621 1.50683
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 7.103e+01 9.529e-01 74.542 < 2e-16 ***
## habitantes 5.014e-05 2.512e-05 1.996 0.05201 .
## asesinatos -3.001e-01 3.661e-02 -8.199 1.77e-10 ***
## universitarios 4.658e-02 1.483e-02 3.142 0.00297 **
## heladas -5.943e-03 2.421e-03 -2.455 0.01802 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.7197 on 45 degrees of freedom
## Multiple R-squared: 0.736, Adjusted R-squared: 0.7126
## F-statistic: 31.37 on 4 and 45 DF, p-value: 1.696e-12
Como podemos observar, el nuevo modelo ajustado es capaz de describir la esperanza de vida con un 71% de exactitud, esto supone una mejora del 1% con respecto al modelo en el que se utilizaban todas las variables.
Intervalo de Confianza de los coeficientes
El intervalo de confianza para los coeficientes parciales de regresión se puede observar en la siguiente tabla:
confint(lm(formula = esp_vida ~ habitantes + asesinatos + universitarios +
heladas, data = datos))
## 2.5 % 97.5 %
## (Intercept) 6.910798e+01 72.9462729104
## habitantes -4.543308e-07 0.0001007343
## asesinatos -3.738840e-01 -0.2264135705
## universitarios 1.671901e-02 0.0764454870
## heladas -1.081918e-02 -0.0010673977
Análisis de residuales
plot1 <- ggplot(data = datos, aes(habitantes, modelo$residuals)) +
geom_point() + geom_smooth(color = "firebrick") + geom_hline(yintercept = 0) +
theme_bw()
plot2 <- ggplot(data = datos, aes(asesinatos, modelo$residuals)) +
geom_point() + geom_smooth(color = "firebrick") + geom_hline(yintercept = 0) +
theme_bw()
plot3 <- ggplot(data = datos, aes(universitarios, modelo$residuals)) +
geom_point() + geom_smooth(color = "firebrick") + geom_hline(yintercept = 0) +
theme_bw()
plot4 <- ggplot(data = datos, aes(heladas, modelo$residuals)) +
geom_point() + geom_smooth(color = "firebrick") + geom_hline(yintercept = 0) +
theme_bw()
grid.arrange(plot1, plot2, plot3, plot4)
## `geom_smooth()` using method = 'loess' and formula 'y ~ x'
## `geom_smooth()` using method = 'loess' and formula 'y ~ x'
## `geom_smooth()` using method = 'loess' and formula 'y ~ x'
## `geom_smooth()` using method = 'loess' and formula 'y ~ x'
Grafica 1: existe una gran concentración de los datos entre 0 y 7500, por lo cual no se tomarán los otros datos ya que pueden generar un mayor margen de error, con lo cual nos dice la zona de estudio es principal de una población de entre 0 a 7500 habitantes por ciudad.
Grafica 2: al tener los datos muy concentrados entre -1 y 1 nos dice que la tendencia de los asesinatos de las ciudades de EU en 1970 – 1980, era que los fenómenos donde se llevara un asesinato, solo fuera un evento aislado, además de donde se disminuía el fenómeno es el mismo caso, son eventos asilados a excepción de unos pocos, haciendo que los eventos fueran algo constante.
Grafica 3: esta nos dice que la población de universitarios fue en incremento de 1970 – 1980, lo cual nos dice que en esos 10 años se generó un interés mayor por estudio entre la población.
Grafica 4: Los datos están dispersos, pero siguen un orden en común que la tendencia a disminuir entre más tiempo pasa
Distribución normal de los residuos
qqnorm(modelo3$residuals)
qqline(modelo3$residuals)
Prueba de normalidad de Shapiro-wilk
Se hizo un análisis de Shapiro-wilk con los valores teóricos vs los valores de las muestras, con lo que se pude llegar a observar que la mayoría de los datos si están tocando la línea de tendencia, lo que nos dice la teoría que se maneja es correcta con respecto a los datos recolectados.
shapiro.test(modelo3$residuals)
##
## Shapiro-Wilk normality test
##
## data: modelo3$residuals
## W = 0.97935, p-value = 0.525
ggplot(data = datos, aes(modelo$fitted.values, modelo$residuals)) +
geom_point() +
geom_smooth(color = "firebrick", se = FALSE) +
geom_hline(yintercept = 0) +
theme_bw()
## `geom_smooth()` using method = 'loess' and formula 'y ~ x'
Grafica de comparación de los valores ajustados vs los valores residuales, que es requerido no tomar en cuenta los valores extremos, con lo que nos dice que los valores ajustados y los residuales, contienen un nivel de dispersión no muy grande, teniendo un buen porcentaje de aceptabilidad de la realidad en base a la teoría.
Variabilidad constante de los residuos (homocedasticidad):
corrplot(cor(dplyr::select(datos, habitantes,asesinatos,universitarios,heladas)),
method = "number", tl.col = "black")
Conclusion
En conclusión y según nuestro modelo ajustado de regresión lineal múltiple podemos decir que la esperanza de vida se puede predecir por medio de la cantidad de habitantes, el número de asesintatos por cada 100,000 habitantes, el porcentaje de universitarios y el promedio de heladas en una ciudad.
La fórmula del modelo sería la siguiente:
\[ Esperanza Vida = (7.103e + 5.014e^-5 * Habitantes -3.001e^-1 * Asesinatos + 4.658e^-2 * Universitarios -5.943e^-3 * Heladas)+0.7197 \]