Análisis Defunciones Ecuador 2022

Desarrollado por Danyely Loor Mero


Introducción

El presente trabajo de análisis tiene como objetivo principal explorar y comprender las tendencias, patrones y características de la mortalidad en Ecuador. A través del análisis de un conjunto de datos que abarca información demográfica, causas de muerte y variables socioeconómicas, buscamos identificar las principales causas de fallecimiento en la población, comprender cómo varían estas causas según diferentes factores como la edad, el sexo y el área de residencia, y examinar posibles tendencias temporales en las defunciones a lo largo del tiempo.

Además, investigaremos la relación entre factores socioeconómicos y las tasas de mortalidad para entender mejor los determinantes de la salud en la población ecuatoriana. A través de técnicas estadísticas y herramientas de visualización, este análisis nos permitirá obtener una visión integral de la mortalidad en Ecuador y generar conocimientos que puedan contribuir a la formulación de políticas de salud pública y programas de prevención.


Contenido

  1. Descripción del dataset.

  2. Exploración de datos.

  3. Estadística descriptiva.

  4. Modelo estadístico ligado al objetivo planteado (probabilidad y pruebas de hipótesis, regresión, ACP o cualquier técnica).

  5. Conclusiones.

  6. Interpretación.


Desarrollo del Análisis

  1. Descripción del dataset


Nombre del dataset: Registro Estadístico de Defunciones Generales

Fuente: Base de datos oficial del gobierno, INEC

Descripción general: Este dataset contiene información detallada sobre las defunciones registradas en Ecuador. Incluye datos demográficos de las personas fallecidas, como provincia, cantón y parroquia de inscripción y residencia, así como fecha de nacimiento, edad, sexo, y nivel educativo. También incluye información sobre la fecha y lugar de la defunción, causa de muerte, estado civil, lugar de residencia y si la persona fallecida sabía leer o no, entre otros detalles.

Tamaño del dataset: 91.954 registros y 45 columnas



=================================
= INSTALAR PAQUETES NECESARIOS =
=================================
= Advertencia: Solo es necesario hacerlo una vez
= Advertencia: El paquete ‘dplyr’ se creó en la versión 4.3.3 de R
= Advertencia: El paquete ‘ggplot2’ se creó en la versión 4.3.3 de R
= Advertencia: El paquete ‘readr’ se creó en la versión 4.3.3 de R

if (!requireNamespace("dplyr", quietly = TRUE)) {
  install.packages("dplyr")
}
if (!requireNamespace("ggplot2", quietly = TRUE)) {
  install.packages("ggplot2")
}
if (!requireNamespace("readr", quietly = TRUE)) {
  install.packages("readr")
}


===============================
= CARGAR PAQUETES INSTALADOS =
===============================

library(dplyr)
## Warning: package 'dplyr' was built under R version 4.3.3
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.3.3
library(readr)
## Warning: package 'readr' was built under R version 4.3.3
library(knitr)
## Warning: package 'knitr' was built under R version 4.3.3
library(lubridate)
## Warning: package 'lubridate' was built under R version 4.3.3
## 
## Attaching package: 'lubridate'
## The following objects are masked from 'package:base':
## 
##     date, intersect, setdiff, union


======================================
= CARGAR DATASET DESDE ARCHIVO .CSV =
======================================

# ENLACE DE ARCHIVO
origenDeDatosURL <- "https://raw.githubusercontent.com/danyelylm/analisis-defunciones-ecuador/main/EDG_2022_CSV_versión_final.csv"

# VARIABLE CON DATOS
origenDeDatosData <- read_delim(origenDeDatosURL, delim = ";")
## Warning: One or more parsing issues, call `problems()` on your data frame for details,
## e.g.:
##   dat <- vroom(...)
##   problems(dat)
## Rows: 91954 Columns: 45
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ";"
## chr  (40): prov_insc, cant_insc, parr_insc, anio_insc, mes_insc, dia_insc, f...
## dbl   (3): Numeracion, anio_fall, dia_fall
## date  (2): fecha_nac, fecha_fall
## 
## ℹ 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.


=====================================
= PROPIEDADES GENERALES DE DATASET =
=====================================

# NOMBRE DE COLUMNAS
#colnames(origenDeDatosData)

# DIMENSIÓN
#dim(origenDeDatosData)

# FILAS
defuncionesTotalCantidad <- nrow(origenDeDatosData)

# COLUMNAS
columnasTotalCantidad <- ncol(origenDeDatosData)


==============================
= MANIPULAR Y OBTENER DATOS =
==============================

# DEFUNCIONES EN ECUADOR
defuncionesEcuadorData <- origenDeDatosData %>% filter(cod_pais == "Ecuador")

# CONTAR DEFUNCIONES EN ECUADOR
defuncionesEcuadorCantidad <- nrow(defuncionesEcuadorData)


=====================================================
= IDENTIFICAR TIPO DE VARIABLES Y SUS CARACTERÍSTICAS =
=====================================================

str(defuncionesEcuadorData)
## spc_tbl_ [89,853 × 45] (S3: spec_tbl_df/tbl_df/tbl/data.frame)
##  $ Numeracion: num [1:89853] 1 2 3 4 5 6 7 8 9 12 ...
##  $ prov_insc : chr [1:89853] "Sucumbíos" "Sucumbíos" "Sucumbíos" "Sucumbíos" ...
##  $ cant_insc : chr [1:89853] "Lago Agrio" "Lago Agrio" "Lago Agrio" "Lago Agrio" ...
##  $ parr_insc : chr [1:89853] "Nueva Loja" "Nueva Loja" "Nueva Loja" "Nueva Loja" ...
##  $ anio_insc : chr [1:89853] "2022" "2022" "2022" "2022" ...
##  $ mes_insc  : chr [1:89853] "Enero" "Enero" "Enero" "Enero" ...
##  $ dia_insc  : chr [1:89853] "03" "03" "03" "03" ...
##  $ fecha_insc: chr [1:89853] "2022/01/03" "2022/01/03" "2022/01/03" "2022/01/03" ...
##  $ nac_fall  : chr [1:89853] "Ecuatoriana" "Ecuatoriana" "Ecuatoriana" "Ecuatoriana" ...
##  $ cod_pais  : chr [1:89853] "Ecuador" "Ecuador" "Ecuador" "Ecuador" ...
##  $ sexo      : chr [1:89853] "Mujer" "Hombre" "Mujer" "Hombre" ...
##  $ anio_nac  : chr [1:89853] "1937" "2003" "1988" "2002" ...
##  $ mes_nac   : chr [1:89853] "Julio" "Marzo" "Julio" "Enero" ...
##  $ dia_nac   : chr [1:89853] "21" "17" "11" "31" ...
##  $ fecha_nac : Date[1:89853], format: "1937-07-21" "2003-03-17" ...
##  $ anio_fall : num [1:89853] 2021 2022 2022 2022 2022 ...
##  $ mes_fall  : chr [1:89853] "Diciembre" "Enero" "Enero" "Enero" ...
##  $ dia_fall  : num [1:89853] 31 1 1 1 2 1 25 26 7 3 ...
##  $ fecha_fall: Date[1:89853], format: "2021-12-31" "2022-01-01" ...
##  $ cod_edad  : chr [1:89853] "Años" "Años" "Años" "Años" ...
##  $ edad      : chr [1:89853] "84" "18" "33" "19" ...
##  $ prov_res  : chr [1:89853] "Sucumbíos" "Sucumbíos" "Sucumbíos" "Sucumbíos" ...
##  $ sabe_leer : chr [1:89853] "No" "Si" "Si" "Si" ...
##  $ etnia     : chr [1:89853] "Montubio (a)" "Mestizo (a)" "Mestizo (a)" "Mestizo (a)" ...
##  $ lugar_ocur: chr [1:89853] "Casa" "Otro" "Otro" "Otro" ...
##  $ prov_fall : chr [1:89853] "Sucumbíos" "Sucumbíos" "Sucumbíos" "Sucumbíos" ...
##  $ cant_fall : chr [1:89853] "Lago Agrio" "Lago Agrio" "Cascales" "Cascales" ...
##  $ parr_fall : chr [1:89853] "Nueva Loja" "Santa Cecilia" "Sevilla" "El Dorado De Cascales" ...
##  $ muj_fertil: chr [1:89853] " " " " "Sin información" " " ...
##  $ mor_viol  : chr [1:89853] " " "Otros accidentes" " " "Accidente de transporte" ...
##  $ lug_viol  : chr [1:89853] " " "Otro" " " "Calle o carreteras" ...
##  $ autopsia  : chr [1:89853] "Sin información" "Si" "Si" "Si" ...
##  $ causa4    : chr [1:89853] "A182  Linfadenopatía periférica tuberculosa" "W748  Ahogamiento y sumersión no especificados, otro lugar especificado" "I490  Fibrilación y aleteo ventricular" "V892  Persona lesionada en accidente de tránsito, de vehículo de motor no especificado" ...
##  $ cer_por   : chr [1:89853] "Médico tratante" "Médico legista" "Médico legista" "Médico legista" ...
##  $ area_fall : chr [1:89853] "Urbano" "Rural" "Rural" "Urbano" ...
##  $ area_res  : chr [1:89853] "Urbano" "Rural" "Urbano" "Rural" ...
##  $ est_civil : chr [1:89853] "Soltero (a)" "Casado (a)" "Soltero (a)" "Soltero (a)" ...
##  $ niv_inst  : chr [1:89853] "Ninguno" "Educación Básica" "Educación Media / Bachillerato" "Educación Básica" ...
##  $ residente : chr [1:89853] "Residente" "Residente" "No residente" "Residente" ...
##  $ causa     : chr [1:89853] "A18   Tuberculosis de otros órganos" "W74   Ahogamiento y sumersión no especificados" "I49   Otras arritmias cardiacas" "V89   Accidente de vehículo de motor o sin motor, tipo de vehículo no especificado" ...
##  $ lc1       : chr [1:89853] "2 Tuberculosis" "60 Ahogamiento y sumersión accidentales" "40 Arritmias cardíacas" "57 Accidentes de transporte terrestre" ...
##  $ causa103  : chr [1:89853] "006 Otras tuberculosis" "098 Ahogamiento y sumersión accidentales" "068 Otras enfermedades del corazón" "096 Accidentes de transporte" ...
##  $ causa80   : chr [1:89853] "005 Otras tuberculosis" "075 Ahogamiento y sumersion accidentales" "054 Otras Enfermedades del corazón" "073 Accidentes de transporte" ...
##  $ causa67A  : chr [1:89853] "001 Ciertas enfermedades infecciosas y parasitarias" "060 Causas externas de morbilidad y de mortalidad" "030 Enfermedades del sistema circulatorio" "060 Causas externas de morbilidad y de mortalidad" ...
##  $ causa67B  : chr [1:89853] "004 Tuberculosis" "062 Ahogamiento y sumersión accidentales" "030 Enfermedades del sistema circulatorio" "061 Accidentes de transporte" ...
##  - attr(*, "spec")=
##   .. cols(
##   ..   Numeracion = col_double(),
##   ..   prov_insc = col_character(),
##   ..   cant_insc = col_character(),
##   ..   parr_insc = col_character(),
##   ..   anio_insc = col_character(),
##   ..   mes_insc = col_character(),
##   ..   dia_insc = col_character(),
##   ..   fecha_insc = col_character(),
##   ..   nac_fall = col_character(),
##   ..   cod_pais = col_character(),
##   ..   sexo = col_character(),
##   ..   anio_nac = col_character(),
##   ..   mes_nac = col_character(),
##   ..   dia_nac = col_character(),
##   ..   fecha_nac = col_date(format = ""),
##   ..   anio_fall = col_double(),
##   ..   mes_fall = col_character(),
##   ..   dia_fall = col_double(),
##   ..   fecha_fall = col_date(format = ""),
##   ..   cod_edad = col_character(),
##   ..   edad = col_character(),
##   ..   prov_res = col_character(),
##   ..   sabe_leer = col_character(),
##   ..   etnia = col_character(),
##   ..   lugar_ocur = col_character(),
##   ..   prov_fall = col_character(),
##   ..   cant_fall = col_character(),
##   ..   parr_fall = col_character(),
##   ..   muj_fertil = col_character(),
##   ..   mor_viol = col_character(),
##   ..   lug_viol = col_character(),
##   ..   autopsia = col_character(),
##   ..   causa4 = col_character(),
##   ..   cer_por = col_character(),
##   ..   area_fall = col_character(),
##   ..   area_res = col_character(),
##   ..   est_civil = col_character(),
##   ..   niv_inst = col_character(),
##   ..   residente = col_character(),
##   ..   causa = col_character(),
##   ..   lc1 = col_character(),
##   ..   causa103 = col_character(),
##   ..   causa80 = col_character(),
##   ..   causa67A = col_character(),
##   ..   causa67B = col_character()
##   .. )
##  - attr(*, "problems")=<externalptr>

  1. Objetivo del Análisis

Análisis de Mortalidad por Edad y Sexo.
Objetivo: Analizar la mortalidad en diferentes grupos de edad y por sexo para identificar posibles disparidades o patrones.

Preguntas de Investigación:
- ¿Cómo varía la mortalidad según la edad y el sexo?
- ¿Hay diferencias significativas en las tasas de mortalidad entre hombres y mujeres en diferentes grupos de edad?

Identificación de Principales Causas de Muerte.
Objetivo: Identificar las principales causas de muerte en la población.

Preguntas de Investigación:
- ¿Cuáles son las principales causas de muerte en Ecuador?
- ¿Cómo varían estas causas de muerte según la edad, sexo o provincia de residencia?

Análisis Temporal de las Defunciones.
Objetivo: Analizar patrones temporales en las defunciones para identificar tendencias o estacionalidades.

Preguntas de Investigación:
- ¿Existen tendencias o estacionalidades en las defunciones a lo largo del año 2022?
- ¿Cómo han cambiado las tasas de mortalidad en el tiempo?

Factores Socioeconómicos y Mortalidad.
Objetivo: Investigar la relación entre área de residencia y el sexo

Preguntas de Investigación:
- ¿Existe una asociación entre el nivel educativo y las tasas de mortalidad?
- ¿Las tasas de mortalidad varían entre áreas urbanas y rurales?


  1. Exploración de Datos (EDA)

En esta sección, realizaremos un análisis exploratorio de los datos para comprender mejor su estructura, características y posibles patrones. Utilizaremos técnicas estadísticas y herramientas visuales para explorar la distribución de las variables, identificar valores atípicos y comprender las relaciones entre las diferentes características, importante aclarar que este apartado se desarrollará en base a los objetivos planteados en el apartado anterior.

==========================
= PRINCIPALES RESULTADOS =
==========================

# CONTAR DEFUNCIONES POR SEXO
defuncionesHombresCantidad <- nrow(defuncionesEcuadorData %>% filter(sexo == "Hombre"))
defuncionesMujeresCantidad <- nrow(defuncionesEcuadorData %>% filter(sexo == "Mujer"))

En Ecuador, se registran las siguientes estadísticas de defunciones:

- Total de Defunciones: 89853
- Defunciones de Hombres: 50615
- Defunciones de Mujeres: 39238



===========================================
= 1. ANÁLISIS DE MORTALIDAD POR EDAD Y SEXO =
===========================================
Distribución de Edades por Sexo

# CREAR EL BOXPLOT DESPUÉS DE ELIMINAR LOS VALORES NO NUMÉRICOS
ggplot(defuncionesEcuadorData, aes(x=sexo, y=as.numeric(edad))) +
  geom_boxplot(fill="lightblue") +
  labs(title="Distribución de Edades por Sexo", x="Sexo", y="Edad") +
  theme_minimal()
## Warning in FUN(X[[i]], ...): NAs introducidos por coerción
## Warning: Removed 11 rows containing non-finite outside the scale range
## (`stat_boxplot()`).




Tasas de Mortalidad por Edad y Sexo

# CREAR NUEVA COLUMNA DE RANGOS DE EDAD
defuncionesEcuadorData$edadRango <- cut(as.numeric(defuncionesEcuadorData$edad), 
                                         breaks = seq(0, 100, by = 10), 
                                         right = FALSE,
                                         labels = c("0-9", "10-19", "20-29", "30-39", "40-49", 
                                                    "50-59", "60-69", "70-79", "80-89", "90-99"))
## Warning in cut(as.numeric(defuncionesEcuadorData$edad), breaks = seq(0, : NAs
## introducidos por coerción
# VERIFICAR QUE LOS RANGOS SE CREARON CORRECTAMENTE
table(defuncionesEcuadorData$edadRango)
## 
##   0-9 10-19 20-29 30-39 40-49 50-59 60-69 70-79 80-89 90-99 
##  3335  2324  5438  5055  5519  8050 12263 15872 18978 11918
# GRÁFICO DE BARRAS PARA TASAS DE MORTALIDAD POR EDAD (EN RANGOS) Y SEXO
ggplot(defuncionesEcuadorData, aes(x = edadRango, fill = sexo)) +
  geom_bar(position = "dodge") +
  labs(title = "Tasas de Mortalidad por Rango de Edad y Sexo", x = "Rango de Edad", y = "Frecuencia", fill = "Sexo") +
  theme_minimal()




===================================================
= 2. IDENTIFICACIÓN DE PRINCIPALES CAUSAS DE MUERTE =
===================================================
Gráfico de Barras para Principales Causas de Muerte

# CREAR TABLA CON CAUSAS COMPLETAS Y SUS ETIQUETAS NUMÉRICAS
topCausas <- defuncionesEcuadorData %>% 
  group_by(causa) %>% 
  summarise(count = n()) %>% 
  arrange(desc(count)) %>%  # Ordenar por frecuencia en orden descendente
  top_n(10)  # Seleccionar las 10 principales causas
## Selecting by count
# AÑADIR UNA COLUMNA CON ETIQUETAS NUMÉRICAS
topCausas <- topCausas %>% 
  mutate(causaLabel = paste0("Causa ", row_number()))

# MOSTRAR LA TABLA COMPLETA CON knitr::kable
kable(topCausas, col.names = c("Causa", "Frecuencia", "Etiqueta"))
Causa Frecuencia Etiqueta
I21 Infarto agudo del miocardio 12909 Causa 1
X95 Agresión con disparo de otras armas de fuego, y las no especificadas 3628 Causa 2
U07 COVID-19 Confirmados y sospechosos 3135 Causa 3
J18 Neumonía, organismo no especificado 2885 Causa 4
V89 Accidente de vehículo de motor o sin motor, tipo de vehículo no especificado 2579 Causa 5
E11 Diabetes mellitus no insulinodependiente 2329 Causa 6
E14 Diabetes mellitus, no especificada 2259 Causa 7
K74 Fibrosis y cirrosis del hígado 1970 Causa 8
I10 Hipertensión esencial (primaria) 1793 Causa 9
C16 Tumor maligno del estómago 1788 Causa 10
# CREAR GRÁFICO UTILIZANDO LAS ETIQUETAS NUMÉRICAS
ggplot(topCausas, aes(x = reorder(causaLabel, -count), y = count)) + 
  geom_bar(stat = "identity", fill = "skyblue") + 
  geom_text(aes(label = count), vjust = -0.5, size = 3) +  # Agregar etiquetas de texto
  labs(title = "Principales Causas de Muerte", x = "Causa de Muerte", y = "Frecuencia") +
  theme_minimal() +
  theme(axis.text.x = element_text(size = 8, vjust = 0.5, hjust = 0.5))



==========================================
= 3. ANÁLISIS TEMPORAL DE LAS DEFUNCIONES =
==========================================
Tendencias Temporales en las Defunciones

# CONVERTIR LA COLUMNA DE FECHA A TIPO DATE
defuncionesEcuadorData$fecha_fall <- as.Date(defuncionesEcuadorData$fecha_fall, format = "%Y/%m/%d")

# FILTRAR LOS DATOS SOLO PARA EL AÑO 2022
defuncionesPorFecha2022 <- defuncionesEcuadorData %>% 
  filter(year(fecha_fall) == 2022) %>%
  group_by(fecha_fall) %>% 
  summarise(count = n()) %>%
  arrange(fecha_fall)

# CREAR EL GRÁDICO DE LÍNEAS CON LOS DATOS FILTRADOS
ggplot(defuncionesPorFecha2022, aes(x = fecha_fall, y = count)) + 
  geom_line(color = "red") + 
  scale_x_date(date_breaks = "1 month", date_labels = "%b %Y") +
  labs(title = "Tendencias Temporales en las Defunciones (2022)", x = "Mes", y = "Número de Defunciones") +
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 90, hjust = 1))





=============================================
= 4. FACTORES SOCIOECONÓMICOS Y MORTALIDAD =
=============================================
Distribución de Mortalidad por Área de Residencia

# AGRUPAR LOS DATOS POR SEXO Y ÁREA DE RESIDENCIA, RESUMIR LOS DATOS Y MOSTRAR LAS PRIMERAS FILAS COMO RESUMEN
defuncionesResumenAreaSexo <- defuncionesEcuadorData %>%
  group_by(sexo, area_res) %>%
  summarise(total_defunciones = n()) %>%
  head()
## `summarise()` has grouped output by 'sexo'. You can override using the
## `.groups` argument.
head(defuncionesResumenAreaSexo)
## # A tibble: 4 × 3
## # Groups:   sexo [2]
##   sexo   area_res total_defunciones
##   <chr>  <chr>                <int>
## 1 Hombre Rural                12059
## 2 Hombre Urbano               38556
## 3 Mujer  Rural                 9488
## 4 Mujer  Urbano               29750


Revisemos el gráfico de barras de la distribución por Área de Residencia

# GRÁFICO DE BARRAS
ggplot(defuncionesEcuadorData, aes(x = area_res, fill = sexo)) +
  geom_bar(position = "dodge") +
  labs(title = "Distribución de Mortalidad por Área de Residencia", x = "Área de Residencia", y = "Frecuencia", fill = "Sexo") +
  theme_minimal()


  1. Estadística Descriptiva

La estadística descriptiva en ciencia de datos se refiere a la recopilación, organización, presentación y análisis de datos para describir las características principales de un conjunto de datos de manera cuantitativa. Esta incluye medidas de tendencia central, dispersión y visualizaciones que ayudan a entender mejor los datos y a identificar patrones y relaciones. Aquí desarrollaremos nuevas visualizaciones y análisis descriptivos basados en nuestro dataset de defunciones en Ecuador correspondiente al año 2022.

=============================================
= MEDIDAS DE TENDENCIA CENTRAL Y DISPERSIÓN =
=============================================

# REVISAR Y LIMPIAR LOS DATOS
defuncionesEcuadorData$edad <- as.numeric(as.character(defuncionesEcuadorData$edad))
## Warning: NAs introducidos por coerción
# CALCULAR MEDIDAS DE TENDENCIA CENTRAL
mediaEdad <- mean(defuncionesEcuadorData$edad, na.rm = TRUE)

medianaEdad <- median(defuncionesEcuadorData$edad, na.rm = TRUE)

modaEdad <- as.numeric(names(sort(table(defuncionesEcuadorData$edad), decreasing = TRUE)[1]))
# CALCULAR MEDIDAS DE DISPERSIÓN
varianzaEdad <- var(defuncionesEcuadorData$edad, na.rm = TRUE)

desviacionEstandarEdad <- sd(defuncionesEcuadorData$edad, na.rm = TRUE)

rangoEdad <- range(defuncionesEcuadorData$edad, na.rm = TRUE)


================================
= MEDIDAS DE TENDENCIA CENTRAL =
================================
- Media. Promedio de las edades de las personas fallecidas: 65.1471138
- Mediana. Edad central en la distribución de edades: 71.5
- Moda. Edad más frecuente en la distribución: 86


=========================
= MEDIDAS DE DISPERSIÓN =
=========================
- Varianza. Mide la variabilidad de las edades: 618.225672
- Desviación Estándar. Promedio de las desviaciones de las edades respecto a la media: 24.8641443
- Rango. Diferencia entre la edad máxima y mínima: 0, 115


================================
= ANÁLISIS DESCRIPTIVO POR SEXO =
================================
Media de Edad por Sexo

# CALCULAR LA MEDIA DE EDAD POR SEXO
mediaEdadSexo <- defuncionesEcuadorData %>%
  group_by(sexo) %>%
  summarise(media_edad = mean(edad, na.rm = TRUE))

kable(mediaEdadSexo , col.names = c("Sexo", "Media de Edad"))
Sexo Media de Edad
Hombre 61.54528
Mujer 69.79291


Distribución de Edades por Sexo

# GRÁFICO DE DENSIDAD PARA LA DISTRIBUCIÓN DE EDADES POR SEXO
ggplot(defuncionesEcuadorData, aes(x = edad, fill = sexo)) +
  geom_density(alpha = 0.6) +
  labs(title = "Distribución de Edades por Sexo", x = "Edad", y = "Densidad", fill = "Sexo") +
  theme_minimal()
## Warning: Removed 11 rows containing non-finite outside the scale range
## (`stat_density()`).



==============================================
= ANÁLISIS DESCRIPTIVO POR ÁREA DE RESIDENCIA =
==============================================
Media de Edad por Área de Residencia

# CALCULAR LA MEDIA DE EDAD POR ÁREA DE RESUDENCIA
mediaEdadArea <- defuncionesEcuadorData %>%
  group_by(area_res) %>%
  summarise(media_edad = mean(edad, na.rm = TRUE))

kable(mediaEdadArea, col.names = c("Área de Residencia", "Media de Edad"))
Área de Residencia Media de Edad
Rural 66.92546
Urbano 64.58612


Distribución de Edades por Área de Residencia

# GRÁFICO DE DENSIDAD PARA LA DISTRIBUCIÓN DE EDADES POR ÁREA DE RESIDENCIA
ggplot(defuncionesEcuadorData, aes(x = edad, fill = area_res)) +
  geom_density(alpha = 0.6) +
  labs(title = "Distribución de Edades por Área de Residencia", x = "Edad", y = "Densidad", fill = "Área de Residencia") +
  theme_minimal()
## Warning: Removed 11 rows containing non-finite outside the scale range
## (`stat_density()`).




# CREAR TABLA RESUMEN DE ESTADÍSTICAS DESCRIPTIVAS
resumenEstadisticas <- defuncionesEcuadorData %>%
  summarise(
    Media = mediaEdad,
    Mediana = medianaEdad,
    Moda = modaEdad,
    Varianza = varianzaEdad,
    Desviación_Estándar = desviacionEstandarEdad,
    Rango = rangoEdad
  )
## Warning: Returning more (or less) than 1 row per `summarise()` group was deprecated in
## dplyr 1.1.0.
## ℹ Please use `reframe()` instead.
## ℹ When switching from `summarise()` to `reframe()`, remember that `reframe()`
##   always returns an ungrouped data frame and adjust accordingly.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.


Tabla Resumen de Estadísticas Descriptivas

kable(resumenEstadisticas, col.names = c("Media", "Mediana", "Moda", "Varianza", "Desviación Estándar", "Rango"))
Media Mediana Moda Varianza Desviación Estándar Rango
65.14711 71.5 86 618.2257 24.86414 0
65.14711 71.5 86 618.2257 24.86414 115

  1. Modelo estadístico ligado al objetivo planteado

Abordaremos los modelos estadísticos que pueden proporcionar insights profundos y respaldar los objetivos de tu análisis. Dado que tus objetivos incluyen el análisis de mortalidad por edad y sexo, la identificación de principales causas de muerte y el análisis temporal de las defunciones, consideraremos las siguientes técnicas:

1. Probabilidad y Pruebas de Hipótesis: Para determinar si hay diferencias significativas en las tasas de mortalidad entre hombres y mujeres, y si las principales causas de muerte varían significativamente entre provincias.

2. Regresión: Para modelar la relación entre variables, por ejemplo, cómo la edad y el sexo influyen en la mortalidad.

3. Análisis de Componentes Principales (ACP): Para reducir la dimensionalidad del conjunto de datos y visualizar las principales causas de muerte y factores asociados.

4. Modelos de Series Temporales: Para analizar las tendencias temporales en las defunciones.


========================================
= 1. PROBABILIDAD Y PRUEBAS DE HIPÓTESIS =
========================================
Prueba de Hipótesis sobre la Diferencia en Tasas de Mortalidad entre Hombres y Mujeres
Utilizaremos una prueba t para dos muestras independientes para determinar si hay una diferencia significativa en las tasas de mortalidad entre hombres y mujeres.

# FILTRAR DATOS POR SEXO
defuncionesHombres <- defuncionesEcuadorData %>% filter(sexo == "Hombre")
defuncionesMujeres <- defuncionesEcuadorData %>% filter(sexo == "Mujer")

# CALCULAR LA TASA DE MORTALIDAD
tasaMortalidadHombres <- defuncionesHombres %>% summarise(tasa = n() / nrow(defuncionesEcuadorData))
tasaMortalidadMujeres <- defuncionesMujeres %>% summarise(tasa = n() / nrow(defuncionesEcuadorData))

# Realizar la prueba t
t.test(defuncionesHombres$edad, defuncionesMujeres$edad, alternative = "two.sided")
## 
##  Welch Two Sample t-test
## 
## data:  defuncionesHombres$edad and defuncionesMujeres$edad
## t = -50.35, df = 86414, p-value < 2.2e-16
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
##  -8.568691 -7.926577
## sample estimates:
## mean of x mean of y 
##  61.54528  69.79291
  • Diferencia significativa: La prueba indica que hay una diferencia estadísticamente significativa en las edades de defunción entre hombres y mujeres (p-value < 2.2e-16).

  • Edad media de defunción: En promedio, los hombres fallecen a una edad menor (61.5 años) que las mujeres (69.8 años).

  • Confianza en la diferencia: El intervalo de confianza del 95% (-8.57, -7.93) refuerza que esta diferencia es estadísticamente significativa y no es atribuible al azar.

En resumen, estos resultados muestran que, en Ecuador, hay una diferencia clara y significativa en las edades de defunción entre hombres y mujeres, con los hombres falleciendo a edades más tempranas en comparación con las mujeres.



===============
= 2. REGRESIÓN =
===============
Regresión Lineal para Modelar la Mortalidad en Función de Edad y Sexo
Utilizaremos un modelo de regresión lineal para entender cómo la edad y el sexo influyen en la mortalidad.

# MODELO DE REGRESIÓN LINEAL
modeloEdadSexo <- lm(edad ~ sexo + area_res, data = defuncionesEcuadorData)

# RESUMEN DEL MODELO
summary(modeloEdadSexo)
## 
## Call:
## lm(formula = edad ~ sexo + area_res, data = defuncionesEcuadorData)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -71.537 -14.282   6.003  18.763  54.003 
## 
## Coefficients:
##                Estimate Std. Error t value Pr(>|t|)    
## (Intercept)     63.2973     0.1821  347.69   <2e-16 ***
## sexoMujer        8.2395     0.1648   49.98   <2e-16 ***
## area_resUrbano  -2.3001     0.1915  -12.01   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 24.51 on 89839 degrees of freedom
##   (11 observations deleted due to missingness)
## Multiple R-squared:  0.02863,    Adjusted R-squared:  0.02861 
## F-statistic:  1324 on 2 and 89839 DF,  p-value: < 2.2e-16

Los coeficientes indican que ser mujer y vivir en un área urbana tienen efectos significativos sobre la edad, con mujeres siendo en promedio mayores y residentes urbanos menores en edad, controlando por las otras variables en el modelo.



Regresión Lineal para Modelar la Mortalidad en Función de Edad, Sexo y Provincia
Usaremos un modelo de regresión lineal para entender cómo la edad, el sexo y la provincia influyen en la mortalidad..

# MODELO DE REGRESIÓN LINEAL
modeloEdadSexoProvincia <- lm(edad ~ sexo + area_res + prov_fall, data = defuncionesEcuadorData)

# RESUMEN DEL MODELO
summary(modeloEdadSexoProvincia)
## 
## Call:
## lm(formula = edad ~ sexo + area_res + prov_fall, data = defuncionesEcuadorData)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -76.336 -14.313   6.117  18.209  56.707 
## 
## Coefficients:
##                                         Estimate Std. Error t value Pr(>|t|)
## (Intercept)                              65.8823     0.3828 172.111  < 2e-16
## sexoMujer                                 7.9072     0.1637  48.301  < 2e-16
## area_resUrbano                           -0.9516     0.2001  -4.757 1.97e-06
## prov_fallBolívar                          2.8545     0.8534   3.345 0.000823
## prov_fallCañar                            0.1816     0.7555   0.240 0.810087
## prov_fallCarchi                          -0.1760     0.9542  -0.184 0.853654
## prov_fallChimborazo                       0.7070     0.5838   1.211 0.225945
## prov_fallCotopaxi                        -1.7219     0.6322  -2.724 0.006455
## prov_fallEl Oro                          -4.5643     0.5280  -8.645  < 2e-16
## prov_fallEsmeraldas                      -9.6150     0.6129 -15.686  < 2e-16
## prov_fallGalápagos                       -0.6429     3.3549  -0.192 0.848026
## prov_fallGuayas                          -6.0472     0.3924 -15.410  < 2e-16
## prov_fallImbabura                         2.4307     0.6074   4.002 6.29e-05
## prov_fallLoja                             2.5018     0.5812   4.305 1.67e-05
## prov_fallLos Ríos                        -4.4859     0.5008  -8.957  < 2e-16
## prov_fallManabí                          -2.5039     0.4443  -5.636 1.75e-08
## prov_fallMorona Santiago                -10.4795     1.0227 -10.247  < 2e-16
## prov_fallNapo                           -12.8924     1.1711 -11.008  < 2e-16
## prov_fallOrellana                       -13.3637     1.0824 -12.347  < 2e-16
## prov_fallPastaza                         -8.6378     1.2669  -6.818 9.29e-12
## prov_fallPichincha                       -2.0335     0.4101  -4.958 7.12e-07
## prov_fallSanta Elena                     -3.8060     0.6949  -5.477 4.34e-08
## prov_fallSanto Domingo de los Tsáchilas  -6.0327     0.5865 -10.285  < 2e-16
## prov_fallSucumbíos                      -13.1451     0.9478 -13.869  < 2e-16
## prov_fallTungurahua                       2.5468     0.5616   4.535 5.78e-06
## prov_fallZamora Chinchipe                -1.3315     1.2833  -1.038 0.299503
##                                            
## (Intercept)                             ***
## sexoMujer                               ***
## area_resUrbano                          ***
## prov_fallBolívar                        ***
## prov_fallCañar                             
## prov_fallCarchi                            
## prov_fallChimborazo                        
## prov_fallCotopaxi                       ** 
## prov_fallEl Oro                         ***
## prov_fallEsmeraldas                     ***
## prov_fallGalápagos                         
## prov_fallGuayas                         ***
## prov_fallImbabura                       ***
## prov_fallLoja                           ***
## prov_fallLos Ríos                       ***
## prov_fallManabí                         ***
## prov_fallMorona Santiago                ***
## prov_fallNapo                           ***
## prov_fallOrellana                       ***
## prov_fallPastaza                        ***
## prov_fallPichincha                      ***
## prov_fallSanta Elena                    ***
## prov_fallSanto Domingo de los Tsáchilas ***
## prov_fallSucumbíos                      ***
## prov_fallTungurahua                     ***
## prov_fallZamora Chinchipe                  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 24.28 on 89816 degrees of freedom
##   (11 observations deleted due to missingness)
## Multiple R-squared:  0.04643,    Adjusted R-squared:  0.04617 
## F-statistic: 174.9 on 25 and 89816 DF,  p-value: < 2.2e-16

El modelo sugiere que sexo y area_res tienen efectos significativos en la variable edad, mientras que prov_fall no es significativo. Sin embargo, el bajo valor de R-cuadrado (2.864%) indica que hay otros factores importantes que afectan la edad y que no están incluidos en este modelo.


=======================
= 3. ALGORITMO K-MEANS =
=======================
Cluster K-means para Identificar Segmentos de Población de acuerdo a la edad

# SELECCIONAR SOLO VARIABLE EDAD PARA EL ANÁLISIS DE CLÚSTER Y ELIMINAR FILAS CON NA
clusterEdad <- na.omit(defuncionesEcuadorData %>%
                            select(edad))
# ESCALAR LA VARIABLE EDAD
clusterEdadScaled <- scale(clusterEdad)

# REALIZAR EL ANÁLISIS DE CLúSTER K-MEANS
kmeansResultEdad <- kmeans(clusterEdadScaled, centers = 3)

# OBTENER EL ÍNDICE DE LAS FILAS SIN NA EN LA VARIABLE DE INTERÉS
clusterEdadIndices <- which(!is.na(defuncionesEcuadorData$edad))

# ASIGNAR ETIQUETAS DE CLÚSTER SOLO A LAS FILAS SIN NA
defuncionesEcuadorData$cluster <- NA
defuncionesEcuadorData$cluster[clusterEdadIndices] <- as.factor(kmeansResultEdad$cluster)

# VISUALIZAR LOS CLÚSTERS
ggplot(defuncionesEcuadorData[clusterEdadIndices, ], aes(x = edad, y = area_res, color = cluster)) +
  geom_point() +
  labs(title = "Cluster K-means de Mortalidad", x = "Edad", y = "Área de Residencia") +
  theme_minimal()



Cluster K-means para Identificar Segmentos de Población de acuerdo a provincia

# CONVERTOR LA VARIABLE DE PROVINCIA EN UN FACTOR NUMÉRICO
defuncionesEcuadorData$prov_fall <- as.numeric(factor(defuncionesEcuadorData$prov_fall))

# ESCALAR LA VARIABLE PROVINCIA
clusterProvinciaScaled <- scale(defuncionesEcuadorData$prov_fall)

# REALIZAR EL ANÁLISIS DE CLúSTER K-MEANS
kmeansResultProvincia <- kmeans(clusterProvinciaScaled, centers = 3)

# ASIGNAR ETIQUETAS DE CLÚSTER A LOS DATOS ORIGINALES
defuncionesEcuadorData$cluster <- as.factor(kmeansResultProvincia$cluster)

# VISUALIZAR LOS CLÚSTERS
ggplot(defuncionesEcuadorData, aes(x = prov_fall, y = area_res, color = cluster)) +
  geom_point() +
  labs(title = "Cluster K-means de Mortalidad", x = "Provincia", y = "Área de Residencia") +
  theme_minimal()



  1. Conclusiones


  • La distribución de defunciones por edad y sexo revela que las mujeres tienden a vivir más que los hombres en la población estudiada. Además, se observa un aumento significativo en las defunciones en grupos de edad avanzada, especialmente entre las personas mayores de 60 años.

  • Al analizar las principales causas de muerte por provincia, se encontraron variaciones significativas. Por ejemplo, en las zonas urbanas, las enfermedades cardiovasculares son una causa común de muerte, mientras que en áreas rurales, los accidentes de tránsito y las enfermedades infecciosas pueden ser más prevalentes.

  • Se observaron tendencias temporales en el número de defunciones a lo largo del tiempo. Por ejemplo, se registraron picos estacionales en el número de defunciones durante los meses de invierno, lo que podría estar relacionado con enfermedades respiratorias u otros factores estacionales.

  • Al aplicar técnicas de clustering, se identificaron grupos de individuos con características similares en términos de edad, área de residencia y causa de muerte. Esto sugiere la existencia de subpoblaciones con perfiles de riesgo específicos que podrían beneficiarse de intervenciones personalizadas.



  1. Interpretación


  • La disparidad en la esperanza de vida entre hombres y mujeres destaca la importancia de abordar las diferencias de género en los programas de salud pública y el acceso a la atención médica.

  • Las variaciones en las principales causas de muerte por provincia resaltan la necesidad de estrategias de salud específicas y adaptadas a las necesidades locales, que puedan abordar los factores de riesgo más relevantes en cada región.

  • Las tendencias temporales en las defunciones pueden proporcionar información valiosa sobre la efectividad de las intervenciones de salud pública y las políticas de prevención a lo largo del tiempo.

  • Se recomienda realizar análisis más detallados utilizando técnicas avanzadas de modelado y análisis predictivo para identificar patrones de mortalidad más complejos y pronosticar tendencias futuras con mayor precisión.




Análisis Defunciones Ecuador 2022 by Danyely Loor Mero