Abstract
Supuestos de una tabla de mortalidad.
Como modelo estático, la tabla de mortalidad involucra en su construcción los siguientes supuestos:
No hay migración Las personas mueren siempre en la misma proporción
al pasar de una edad a otra. Al llegar a la edad x todos los integrantes
de la cohorte inicial han fallecido. Se parte de un número estándar de
nacimientos que es de 10 000 o 100 000 personas.
¿Qué es una tabla de mortalidad?
También conocida como tabla de vida o tabla actuarial, la tabla de mortalidad muestra la tasa de muertes que ocurren en una población definida durante un intervalo de tiempo seleccionado, o las tasas de supervivencia desde el nacimiento hasta la muerte. Una tabla de mortalidad generalmente muestra la probabilidad general de muerte de una persona antes de su próximo cumpleaños, según su edad actual. Estas tablas se utilizan normalmente para informar la construcción de pólizas de seguro y otras formas de gestión de responsabilidad.
#La práctica
La siguiente tabla nos muestra un ejemplo de tabla de mortalidad:
Desde una
aplicación del INE2 podemos obtener la información de la
cantidad de muertes que se producen en cada año vivido. Tratamos el
resultado obtenido para obtener una tabla original sobre la cual empezar
a trabajar para un año específico el 2010:
def_comunas <- read_xlsx("Insumos/defunciones_comunas_2010.xlsx")
fila <- seq(1,nrow(def_comunas),1)
def_comunas <- cbind(def_comunas,fila)
f_area <- data.frame(filter(def_comunas,grepl("AREA #",...2)))$fila
vacio <- data.frame(filter(def_comunas,grepl("Tabla vacía",...2)))$fila
f_total <- data.frame(filter(def_comunas,grepl("Total",...2)))$fila
f_total <- c(f_total,vacio)
f_total <- sort(f_total)
lim <- length(f_total)-1
tabla_comunas <- data.frame()
for (i in 1:lim) {
m_comunas <- def_comunas[c(f_area[i]:f_total[i]),2:3]
m_comunas$cod_com <- str_replace_all(paste0(m_comunas[1,1]),"AREA # ","")
m_comunas$comuna <- paste0(m_comunas[1,2])
colnames(m_comunas) <- c("Edad","Casos","cod_com","comuna")
m_comunas <- m_comunas[-c(1:3,nrow(m_comunas)),]
tabla_comunas <- rbind(tabla_comunas,m_comunas)
}
tabla_comunas$Casos <- as.numeric(tabla_comunas$Casos)
tabla_comunas <- tabla_comunas[,c(3,4,1,2)]
tabla_comunas$fila <- seq(1,nrow(tabla_comunas))
tabla_comunas$año <- "2010"
head(tabla_comunas)
## cod_com comuna Edad Casos fila año
## 16 01101 IQUIQUE 1 hora 2 1 2010
## 17 01101 IQUIQUE 3 horas 2 2 2010
## 18 01101 IQUIQUE 4 horas 1 3 2010
## 19 01101 IQUIQUE 6 horas 1 4 2010
## 20 01101 IQUIQUE 13 horas 1 5 2010
## 21 01101 IQUIQUE 1 día 3 6 2010
tabla_comunas$cod_com <- as.numeric(tabla_comunas$cod_com)
head(tabla_comunas)
## cod_com comuna Edad Casos fila año
## 16 1101 IQUIQUE 1 hora 2 1 2010
## 17 1101 IQUIQUE 3 horas 2 2 2010
## 18 1101 IQUIQUE 4 horas 1 3 2010
## 19 1101 IQUIQUE 6 horas 1 4 2010
## 20 1101 IQUIQUE 13 horas 1 5 2010
## 21 1101 IQUIQUE 1 día 3 6 2010
unique(tabla_comunas$año)
## [1] "2010"
def_comunas2 <- read.csv2("Insumos/DEFUNCIONES_FUENTE_DEIS_2018_2022.csv")
names(def_comunas2)[1] <- "Año"
names(def_comunas2)[2] <- "Fecha de muerte"
names(def_comunas2)[3] <- "Sexo"
names(def_comunas2)[4] <- "Casos"
names(def_comunas2)[5] <- "Edad"
names(def_comunas2)[6] <- "cod_com"
def_comunas2 <- def_comunas2[,-c(3)]
head(def_comunas2)
## Año Fecha de muerte Casos Edad cod_com
## 1 2022 44607 1 89 13111
## 2 2022 44562 1 102 5109
## 3 2022 44612 1 91 8101
## 4 2022 44568 1 90 13116
## 5 2022 44603 1 94 8202
## 6 2022 44566 1 98 4302
unique(def_comunas2$Edad)
## [1] 89 102 91 90 94 98 81 96 104 103 95 100 86 111 88 101 107 105
## [19] 84 109 78 83 106 97 92 87 99 93 82 85 80 79 121 75 77 76
## [37] 74 68 73 72 67 64 71 66 70 63 69 62 65 58 57 61 56 59
## [55] 52 60 51 55 53 50 49 54 47 48 45 46 43 44 42 41 40 25
## [73] 36 37 39 38 33 32 35 34 31 29 30 28 27 26 24 17 23 22
## [91] 21 19 20 18 16 15 14 13 12 11 10 9 8 7 6 5 4 3
## [109] 2 1 108 110 116 123 114 117 112 115 118 126
Agrupamos por año la cantidad de muertes:
# aggregate(def_comunas["Casos"], by=def_comunas["Año"], sum)
agrupacion <- aggregate(cbind(Casos) ~ Edad + cod_com + Año, def_comunas2, FUN = sum, na.rm = TRUE)
head(agrupacion)
## Edad cod_com Año Casos
## 1 1 1101 2018 9
## 2 2 1101 2018 12
## 3 3 1101 2018 12
## 4 4 1101 2018 4
## 5 5 1101 2018 6
## 6 6 1101 2018 2
Expliquemos la forma en la que se calcula la esperanza de vida en términos utilizando un año en Chile -2010-:
comunas <- unique(tabla_comunas$comuna)
tabla2 <- data.frame()
for (i in comunas[1:346]) {
tabla <- filter(tabla_comunas, comuna == i)
suma <- filter(tabla_comunas, comuna == i)
if(nrow(filter(tabla, Edad == "1 año")) == 0){
}else{
tabla_1 <- filter(tabla, Edad == "1 año")
tabla_1$Edad <- "1 años"
tabla <- rbind(tabla_1,tabla)
tabla <- filter(tabla, Edad != "1 año")
}
tabla <- filter(tabla, grepl("año",Edad))
anio_0 <- tabla[1,]
anio_0$Edad <- "0 años"
anio_0$Casos <- sum(filter(suma, !grepl("año",Edad))[4])
tabla <- rbind(anio_0,tabla)
tabla <- filter(tabla, !grepl("más",Edad))
tabla2 <- rbind(tabla2,tabla)
}
head(tabla2, 5)
## cod_com comuna Edad Casos fila año
## 1 1101 IQUIQUE 0 años 19 16 2010
## 2 1101 IQUIQUE 1 años 1 16 2010
## 3 1101 IQUIQUE 3 años 2 17 2010
## 4 1101 IQUIQUE 5 años 2 18 2010
## 5 1101 IQUIQUE 9 años 1 19 2010
Recordemos que agregamos el registro de “año 0” sumando las defunciones que ocurrieron antes de cumplir un año. También agregamos como registro un valor de 0 en las edades en los que no hubo decesos para cada comuna.
De ésta manera los registros pasan a ser de 18529 a 35595
l.x. es sólo una columna vacía representante de un valor hipotético inicial de 10000 personas vivas decreciente en el tiempo que utilizaremos más adelante.
x son los años de vida y m.x. es la probabilidad de morir a esa edad, calculado con las personas muertas a la edad n dividido por la cantidad de personas vivas a esa misma edad.
Agregamos en la columna Edad, el registro “0 años”, que suma las defunciones que ocurrieron antes de cumplir un año. También agregamos como registro un valor de 0 en las edades en los que no hubo decesos para cada comuna.
tabla3 <- data.frame()
for (j in comunas) {
filtro <- filter(tabla2, comuna == j)
n_edades <- data.frame()
for (i in 0:104) {
seq_años <- paste(i," años")
n_edades <- rbind(n_edades,seq_años)
}
names(n_edades)[1] <- "Edad"
tablaf = merge(x = n_edades, y = filtro, by = "Edad", all.x = TRUE)
tablaf <- mutate_all(tablaf, ~replace(., is.na(.), 0))
tablaf$comuna <- j
tabla3 <- rbind(tabla3,tablaf)
}
tabla_f <- tabla3
# tabla3
for (i in 1:104) {
tabla_f$tasa_m[i] <- (tabla_f$Casos[i]/sum(tabla_f$Casos))
}
tabla_de_muerte <- data.frame(
x = seq(0,104,1),
"l(x)" = round(0,0),
"m(x)" = tabla_f$tasa_m
)
head(tabla_de_muerte)
## x l.x. m.x.
## 1 0 0 1.787344e-04
## 2 1 0 9.407072e-06
## 3 2 0 0.000000e+00
## 4 3 0 2.822122e-05
## 5 4 0 0.000000e+00
## 6 5 0 3.762829e-05
Paso siguiente es la construcción de la función de supervivencia, que es la gente que va quedando viva con el transcurso de los años. Empezamos con l(0) = 100000 siguiendo la convención.
tabla_de_muerte$l.x.[1] <- 100000
mx <- tabla_de_muerte$m.x.
for (j in 2:length(mx)) {
tabla_de_muerte$l.x.[j] <- ceiling(tabla_de_muerte$l.x.[j-1]*exp(-tabla_de_muerte$m.x.[j-1]))
}
head(tabla_de_muerte,5)
## x l.x. m.x.
## 1 0 100000 1.787344e-04
## 2 1 99983 9.407072e-06
## 3 2 99983 0.000000e+00
## 4 3 99983 2.822122e-05
## 5 4 99981 0.000000e+00
Añadimos el numero de muertes en la columna d(x).
tabla_de_muerte$d.x. <- 0
for (j in 1:105) {
tabla_de_muerte$d.x.[j] <- tabla_de_muerte$l.x.[j]-tabla_de_muerte$l.x.[j+1]
}
tabla_de_muerte <- tabla_de_muerte[,c(1,2,4,3)]
head(tabla_de_muerte,5)
## x l.x. d.x. m.x.
## 1 0 100000 17 1.787344e-04
## 2 1 99983 0 9.407072e-06
## 3 2 99983 0 0.000000e+00
## 4 3 99983 2 2.822122e-05
## 5 4 99981 0 0.000000e+00
Este es el número de años-persona vividos entre la edad x y (x+1)
Agregamos el número de persona vivas entre las edades exactas x y x + 1. Se toma el valor medio pues una persona puede morir a mitad de de su cumpleaños:
tabla_de_muerte$L.x. <- 0
for (j in 1:105) {
tabla_de_muerte$L.x.[j] <- (tabla_de_muerte$l.x.[j+1])+(0.5*tabla_de_muerte$d.x.[j] )
}
head(tabla_de_muerte,5)
## x l.x. d.x. m.x. L.x.
## 1 0 100000 17 1.787344e-04 99991.5
## 2 1 99983 0 9.407072e-06 99983.0
## 3 2 99983 0 0.000000e+00 99983.0
## 4 3 99983 2 2.822122e-05 99982.0
## 5 4 99981 0 0.000000e+00 99981.0
Este es el número de años-persona vividos desde la edad x hasta la edad más avanzada.
tabla_de_muerte$T.x. <- 0
tabla_de_muerte <- tabla_de_muerte[1:104,]
for (j in 1:104) {
tabla_de_muerte$T.x.[j] <- sum( tabla_de_muerte$L.x.[j:104] )
}
head(tabla_de_muerte,5)
## x l.x. d.x. m.x. L.x. T.x.
## 1 0 100000 17 1.787344e-04 99991.5 10372836
## 2 1 99983 0 9.407072e-06 99983.0 10272845
## 3 2 99983 0 0.000000e+00 99983.0 10172862
## 4 3 99983 2 2.822122e-05 99982.0 10072879
## 5 4 99981 0 0.000000e+00 99981.0 9972897
Calculamos el número medio de años de vida que quedan a la edad exacta x.
tabla_de_muerte$e.x. <- 0
for (j in 1:104) {
tabla_de_muerte$e.x.[j] <- tabla_de_muerte$T.x.[j]/tabla_de_muerte$l.x.[j]
}
head(tabla_de_muerte,5)
## x l.x. d.x. m.x. L.x. T.x. e.x.
## 1 0 100000 17 1.787344e-04 99991.5 10372836 103.72836
## 2 1 99983 0 9.407072e-06 99983.0 10272845 102.74591
## 3 2 99983 0 0.000000e+00 99983.0 10172862 101.74591
## 4 3 99983 2 2.822122e-05 99982.0 10072879 100.74591
## 5 4 99981 0 0.000000e+00 99981.0 9972897 99.74792
comunas <- unique(tabla_comunas$cod_com)
tabla2 <- data.frame()
for (i in comunas[1:lim]) {
tabla <- filter(tabla_comunas, cod_com == i)
suma <- filter(tabla_comunas, cod_com == i)
if(nrow(filter(tabla, Edad == "1 año")) == 0){
}else{
tabla_1 <- filter(tabla, Edad == "1 año")
tabla_1$Edad <- "1 años"
tabla <- rbind(tabla_1,tabla)
tabla <- filter(tabla, Edad != "1 año")
}
tabla <- filter(tabla, grepl("año",Edad))
anio_0 <- tabla[1,]
anio_0$Edad <- "0 años"
anio_0$Casos <- sum(filter(suma, !grepl("año",Edad))[4])
tabla <- rbind(anio_0,tabla)
tabla <- filter(tabla, !grepl("más",Edad))
tabla2 <- rbind(tabla2,tabla)
}
tabla3 <- data.frame()
for (j in comunas) {
filtro <- filter(tabla2, cod_com == j)
n_edades <- data.frame()
for (i in 0:104) {
seq_años <- paste(i," años")
n_edades <- rbind(n_edades,seq_años)
}
names(n_edades)[1] <- "Edad"
tablaf = merge(x = n_edades, y = filtro, by = "Edad", all.x = TRUE)
tablaf <- mutate_all(tablaf, ~replace(., is.na(.), 0))
tablaf$cod_com <- j
tabla3 <- rbind(tabla3,tablaf)
}
head(tabla3)
## Edad cod_com comuna Casos fila año
## 1 0 años 1101 IQUIQUE 19 16 2010
## 2 1 años 1101 IQUIQUE 1 16 2010
## 3 10 años 1101 0 0 0 0
## 4 100 años 1101 IQUIQUE 3 102 2010
## 5 101 años 1101 0 0 0 0
## 6 102 años 1101 IQUIQUE 4 103 2010
esp_d_vida_def <- tibble("n"=339)
esperanza <- tibble()
for (a in seq(2010,2017,1)) {
direccion <- paste0("Insumos/defunciones_comunas_",a,".xlsx")
def_comunas <- read_xlsx(direccion)
fila <- seq(1,nrow(def_comunas),1)
def_comunas <- cbind(def_comunas,fila)
f_area <- data.frame(filter(def_comunas,grepl("AREA #",...2)))$fila
vacio <- data.frame(filter(def_comunas,grepl("Tabla vacía",...2)))$fila
f_total <- data.frame(filter(def_comunas,grepl("Total",...2)))$fila
f_total <- c(f_total,vacio)
f_total <- sort(f_total)
lim <- length(f_total)-1
tabla_comunas <- data.frame()
for (i in 1:lim) {#length(f_area)
m_comunas <- def_comunas[c(f_area[i]:f_total[i]),2:3]
m_comunas$cod_com <- str_replace_all(paste0(m_comunas[1,1]),"AREA # ","")
m_comunas$comuna <- paste0(m_comunas[1,2])
colnames(m_comunas) <- c("Edad","Casos","cod_com","comuna")
m_comunas <- m_comunas[-c(1:3,nrow(m_comunas)),]
tabla_comunas <- rbind(tabla_comunas,m_comunas)
}
tabla_comunas$Casos <- as.numeric(tabla_comunas$Casos)
tabla_comunas <- tabla_comunas[,c(3,4,1,2)]
tabla_comunas$fila <- seq(1,nrow(tabla_comunas))
##################################################################################################################################################
comunas <- unique(tabla_comunas$cod_com)
tabla2 <- data.frame()
for (i in comunas[1:lim]) {
tabla <- filter(tabla_comunas, cod_com == i)
suma <- filter(tabla_comunas, cod_com == i)
if(nrow(filter(tabla, Edad == "1 año")) == 0){
}else{
tabla_1 <- filter(tabla, Edad == "1 año")
tabla_1$Edad <- "1 años"
tabla <- rbind(tabla_1,tabla)
tabla <- filter(tabla, Edad != "1 año")
}
tabla <- filter(tabla, grepl("año",Edad))
anio_0 <- tabla[1,]
anio_0$Edad <- "0 años"
anio_0$Casos <- sum(filter(suma, !grepl("año",Edad))[4])
tabla <- rbind(anio_0,tabla)
tabla <- filter(tabla, !grepl("más",Edad))
tabla2 <- rbind(tabla2,tabla)
}
tabla3 <- data.frame()
for (j in comunas) {
filtro <- filter(tabla2, cod_com == j)
n_edades <- data.frame()
for (i in 0:104) {
seq_años <- paste(i," años")
n_edades <- rbind(n_edades,seq_años)
}
names(n_edades)[1] <- "Edad"
tablaf = merge(x = n_edades, y = filtro, by = "Edad", all.x = TRUE)
tablaf <- mutate_all(tablaf, ~replace(., is.na(.), 0))
tablaf$cod_com <- j
tabla3 <- rbind(tabla3,tablaf)
}
#############################################################################################################################################
comunas <- unique(tabla3$cod_com)
esp_d_vid <- data.frame()
fn_esperanza <- function(i){
mortalidad <- filter(tabla3, cod_com == comunas[i])
for (j in 1:105) {
mortalidad$tasa_m[j] <- (mortalidad$Casos[j]/sum(mortalidad$Casos))
}
tabla_de_muerte <- data.frame(
cod_com = comunas[i],
x = seq(0,104,1),
"l(x)" = round(0,0),
"m(x)" = mortalidad$tasa_m
)
tabla_de_muerte$l.x.[1] <- 100000
tabla_de_muerte$l.x.[2] <- ceiling(tabla_de_muerte$l.x.[1]*exp(-tabla_de_muerte$m.x.[1]))
mx <- tabla_de_muerte$m.x.
for (j in 3:length(mx)) {
tabla_de_muerte$l.x.[j] <- ceiling(tabla_de_muerte$l.x.[j-1]*exp(-tabla_de_muerte$m.x.[j-1]))
}
tabla_de_muerte$d.x. <- 0
for (j in 1:105) {
tabla_de_muerte$d.x.[j] <- tabla_de_muerte$l.x.[j]-tabla_de_muerte$l.x.[j+1]
}
tabla_de_muerte <- tabla_de_muerte[,c(1,2,3,5,4)]
tabla_de_muerte$q.x. <- 0
for (j in 1:105) {
# tabla_de_muerte$q.x.[j] <- (tabla_de_muerte$d.x.[j]/tabla_de_muerte$l.x.[j])
tabla_de_muerte$q.x.[j] <- 1- exp(-tabla_de_muerte$m.x.[j])
}
tabla_de_muerte <- tabla_de_muerte[,c(1,2,3,4,6,5)]
tabla_de_muerte$L.x. <- 0
for (j in 1:105) {
tabla_de_muerte$L.x.[j] <- tabla_de_muerte$l.x.[j+1]+(0.5*tabla_de_muerte$d.x.[j] )
}
tabla_de_muerte$T.x. <- 0
tabla_de_muerte <- tabla_de_muerte[1:104,]
for (j in 1:104) {
tabla_de_muerte$T.x.[j] <- sum( tabla_de_muerte$L.x.[j:104] )
}
tabla_de_muerte$e.x. <- 0
for (j in 1:104) {
tabla_de_muerte$e.x.[j] <- tabla_de_muerte$T.x.[j]/tabla_de_muerte$l.x.[j]
}
tabla_de_muerte2 <<- tabla_de_muerte
}
for (i in 1:339) {
fn_esperanza(i)
esp_d_vid <- rbind(esp_d_vid,tabla_de_muerte2)
}
esp_d_vida <- filter(esp_d_vid, x == 0)
esp_d_vida <- esp_d_vida[!is.na(esp_d_vida[,c("e.x.")]),]
esp_d_vida <- filter(esp_d_vida, x == 0 )
maximo_ex <- max(esp_d_vid$e.x.)
minimo_ex <- min(esp_d_vid$e.x.)
esp_d_vida$año <- a
esperanza <- rbind(esperanza,esp_d_vida)
esp_d_vida$LEI <- (esp_d_vida$e.x. - minimo_ex)/(maximo_ex-minimo_ex)
esp_d_vida <- esp_d_vida[,c("cod_com","LEI")]
colnames(esp_d_vida) <- c("cod_com",paste0("LEI_",a))
esp_d_vida_def <- cbind(esp_d_vida_def,esp_d_vida)
}
esp_d_vida_def <- esp_d_vida_def[,c(2,3,5,7,9,11,13,15,17)]
esperanza2<- esperanza[,c(1,9,10)]
write_xlsx(esperanza2,"Productos/esperanza_de_vida.xlsx")
head(esperanza2)
## cod_com e.x. año
## 1 01101 80.24305 2010
## 2 01107 75.21345 2010
## 3 01401 74.06982 2010
## 4 01402 82.63309 2010
## 5 01403 88.08749 2010
## 6 01404 78.36736 2010
cod_com <- readxl::read_xlsx("codigos_comunales.xlsx")
names(cod_com)[6] <- "cod_com"
unique(esperanza2$año)
## [1] 2010 2011 2012 2013 2014 2015 2016 2017
length(unique(esperanza2))
## [1] 3
LEI
# esp_d_vida_def
# demografia <- read_xls("C:/Users/chris/Desktop/GitHub/ds_IDH/Insumos/IDH_la_esperanza_de_vida_al_nacer/codigos_comunales.xls")
names(cod_com)[6] <- "cod_com"
esp_d_vida_def <- merge(esp_d_vida_def,cod_com,by="cod_com", )
head(esp_d_vida_def)
## cod_com LEI_2010 LEI_2011 LEI_2012 LEI_2013 LEI_2014 LEI_2015 LEI_2016
## 1 01101 0.7994470 0.7963122 0.7730945 0.7978304 0.7661035 0.7999674 0.8035349
## 2 01107 0.7487250 0.7525055 0.7192448 0.7352667 0.7088602 0.7625116 0.7451099
## 3 01401 0.7371918 0.7129457 0.7034099 0.7086529 0.7548170 0.7371852 0.7685620
## 4 01402 0.8235498 0.8264383 0.8648978 0.8348666 0.8053658 0.8362848 0.7944870
## 5 01403 0.8785556 0.9803521 0.8996743 0.9485513 0.7315273 0.7544867 0.7752094
## 6 01404 0.7805312 0.8197431 0.7385400 0.7663773 0.8780702 0.8234916 0.7293193
## LEI_2017 Código Región Nombre Región Abreviatura Región Código Provincia
## 1 0.7994470 01 Tarapacá TPCA 011
## 2 0.7487250 01 Tarapacá TPCA 011
## 3 0.7371918 01 Tarapacá TPCA 014
## 4 0.8235498 01 Tarapacá TPCA 014
## 5 0.8785556 01 Tarapacá TPCA 014
## 6 0.7805312 01 Tarapacá TPCA 014
## Nombre Provincia comuna
## 1 Iquique Iquique
## 2 Iquique Alto Hospicio
## 3 Tamarugal Pozo Almonte
## 4 Tamarugal Camiña
## 5 Tamarugal Colchane
## 6 Tamarugal Huara
esp_d_vida_def2 <- esp_d_vida_def[c(1,10,2,3,4,5,6,7,8,9)]
head(esp_d_vida_def2)
## cod_com Código Región LEI_2010 LEI_2011 LEI_2012 LEI_2013 LEI_2014
## 1 01101 01 0.7994470 0.7963122 0.7730945 0.7978304 0.7661035
## 2 01107 01 0.7487250 0.7525055 0.7192448 0.7352667 0.7088602
## 3 01401 01 0.7371918 0.7129457 0.7034099 0.7086529 0.7548170
## 4 01402 01 0.8235498 0.8264383 0.8648978 0.8348666 0.8053658
## 5 01403 01 0.8785556 0.9803521 0.8996743 0.9485513 0.7315273
## 6 01404 01 0.7805312 0.8197431 0.7385400 0.7663773 0.8780702
## LEI_2015 LEI_2016 LEI_2017
## 1 0.7999674 0.8035349 0.7994470
## 2 0.7625116 0.7451099 0.7487250
## 3 0.7371852 0.7685620 0.7371918
## 4 0.8362848 0.7944870 0.8235498
## 5 0.7544867 0.7752094 0.8785556
## 6 0.8234916 0.7293193 0.7805312
write_xlsx(esp_d_vida_def2,"Productos/LEI.xlsx")
http://www.scielo.org.mx/scielo.php?script=sci_arttext&pid=S1405-74252009000300004