Proyecto Final Diego Ramirez Arellano

El siguiente análisis se hace a partir de la estadística de defunciones obtenidas del INEGI del año 2020

Se analizan las causas de defunción por grupos de edad, sexo y estado de la república a través de los siguientes datos:

Atributo nombre del campo descripción
Causa de defunción
causa_def
En el catalogo de causas exiten 3966
Sexo
sexo

Rango de datos

1=Hombre

2=Mujer

9= No especificado

edad
edad_agru

Rango de Datos

01..30

Entidad de la defunción
ent_ocurr

Rango de las claves

01..32,99

En la siguiente figura se muestra la el modelo entidad-relación de donde fueron obtenidos los datos

Para tomar una muestra de los datos fue necesario la instalación de las librerías dplyr

Ya que los datos de defunción vienen expresados con claves es necesario cargar los catálogos de en dataFrames para que a partir de ellos crear uno solo con los datos a analizar y que sea más legible

####creo el dataframe con el archivo cvs del inegi
df=read.csv('C:/Users/Admin/OneDrive - Instituto Politecnico Nacional/Desktop/CURSO R/defunciones2020.csv')
###hago un nuevo dataframe con los unicos datos que voy a analizara partir de dataframe principal
datos=(data.frame(df['sexo'],df['edad_agru'],df['causa_def'],df['ent_ocurr']))

#creo un dataframe desde el catalogo de sexo 
dfsexo=read.csv('C:/Users/Admin/OneDrive - Instituto Politecnico Nacional/Desktop/CURSO R/sexo.csv')

#creo un dataframe desde el catalogo de edad
dfedad=read.csv('C:/Users/Admin/OneDrive - Instituto Politecnico Nacional/Desktop/CURSO R/edad_agrupada.csv')

#creo un dataframe desde el catalogo de entidad
dfentidad=read.csv('C:/Users/Admin/OneDrive - Instituto Politecnico Nacional/Desktop/CURSO R/entidades.csv')
dfentidad32=read.csv('C:/Users/Admin/OneDrive - Instituto Politecnico Nacional/Desktop/CURSO R/entidades32.csv')

#creo un dataframe desde el catalogo de causa de defuncion
dfcausa=read.csv('C:/Users/Admin/OneDrive - Instituto Politecnico Nacional/Desktop/CURSO R/causa.csv')

En el dataFrame siguiente se muestran los datos que se obtienen en bruto del archivo obtenido por el INEGI. como se peude observar la columna sexo, causa_def, ent_ocurr, y edad_agu se muestran con claves, ademas de que muestra un totoal de 1086743 registros

head(datos, 10)
dim(datos)
## [1] 1086743       4

Tomo una muestra aleatoria y significativa de 500000 del total de los datos,  la guardo en un archivo y muestro los nuevos datos y la dimensión del dataFrame

library(dplyr)
## 
## Adjuntando el paquete: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
datosmuestra=data.frame(arrange(datos,sample(datos$causa_def)))
datos=datosmuestra[1:500000,] #recortar el df a menos lineas y guardar en dfn

write.csv(datosmuestra,'C:/Users/Admin/OneDrive - Instituto Politecnico Nacional/Desktop/CURSO R/datos.csv')
write.csv(datos,'C:/Users/Admin/OneDrive - Instituto Politecnico Nacional/Desktop/CURSO R/muestra.csv')
head(datosmuestra,6)
dim.data.frame(datos)
## [1] 500000      4

A continuación con el siguiente código sustituyo los valor de dataFrame datos con los valores reales de los catálogos

# j=1
# cont=1
# for(cont in cont:3966){
#   datos$sexo[datos$sexo==cont]<-dfsexo$DESCRIP[cont]
#   datos$edad_agru[datos$edad_agru==cont]<-dfedad$DESCRIP[cont]
#   datos$ent_ocurr[datos$ent_ocurr==cont]<-dfentidad$NOMBRE.ENTIDAD[cont]
#   for (j in j:500000) {
#     if(datos$causa_def[j]==dfcausa$cve[cont]){
#       datos$causa_def[j]<-dfcausa$descrip[cont]
#     }
#     j=j+1  
#   }
#   j=1
#   cont=cont+1
# }
# 
# head(datos,10)
#Instalo libreria oa sacar la moda y sustituir los valores de defunciones no definidas por la moda
#install.packages("modeest")
library( modeest)

mlv(datosmuestra$ent_ocurr)# la moda es el estado 9
## [1] 9
datosmuestra$ent_ocurr[datosmuestra$ent_ocurr>=99]<-mlv(datosmuestra$ent_ocurr)
#df$edad_madn[df$edad_madn>=70]<-median(df$edad_madn)

 hist(datosmuestra$ent_ocurr,breaks = seq(min(datosmuestra$ent_ocurr), max(datosmuestra$ent_ocurr),1) ,
      main = "Estado con más defunciones", ylab = "frecuencia", xlab = "estados", col = "red")
 grid(nx = NA, ny = NULL, lty = 2, col = "red", lwd = 1)

El estado con más defunciones

mlv(datosmuestra$ent_ocurr)# la moda es el estado 9
## [1] 9

El grupo de edad con más defunciones

mlv(datos$edad_agru)# la moda es el grupo de edad 
## [1] 19

Enfermedad con más decesos en 2020

mlv(datos$causa_def)
## [1] "I219"

Estadisticos descriptivos

summary(datosmuestra)
##       sexo         edad_agru      causa_def           ent_ocurr    
##  Min.   :1.000   Min.   : 1.00   Length:1086743     Min.   : 1.00  
##  1st Qu.:1.000   1st Qu.:15.00   Class :character   1st Qu.: 9.00  
##  Median :1.000   Median :18.00   Mode  :character   Median :15.00  
##  Mean   :1.417   Mean   :17.48                      Mean   :16.15  
##  3rd Qu.:2.000   3rd Qu.:21.00                      3rd Qu.:22.00  
##  Max.   :9.000   Max.   :30.00                      Max.   :32.00
hist(datosmuestra$edad_agru,
  breaks = seq(min(datosmuestra$edad_agru), max(datosmuestra$edad_agru),1),
     main = "Edades con más defunciones", ylab = "frecuencia", xlab = "grupos de edad", col = "red" )
grid(nx = NA, ny = NULL, lty = 2, col = "red", lwd = 1)

datosmuestra <- mutate(datosmuestra, sexo_factor = factor(datosmuestra$sexo, 
                                        labels = c("Hombre", "Mujer","no especificado")))

plot(datosmuestra$sexo_factor, main = "Defunciones por Genero",
     xlab = "Género", ylab = "Frecuencia" , col = "red" )

pairs(datosmuestra[,1:2], pch=19, col=datosmuestra$sexo)

library(ggplot2)
#gra=(data.frame(datos['edad_agru'],datos['ent_ocurr']))

ggplot(datosmuestra, aes(x = edad_agru, y = ent_ocurr)) +
  geom_point(colour = 4)

Conclusiones:

De los datos enteriores podemos concluir los siguiente:

El estado con más defunciones es el Distrito Federal

Hay mas muertes registradas de Hombres que de mujeres

el Rango de edad con más muertes es 70 a 74 años

La causa de muerte mas cómun en 2022 fue :

"Infarto agudo del miocardio, sin otra especificación"

Fuente:

https://www.inegi.org.mx/app/descarga/ficha.html?tit=610186&ag=0&f=csv