1 Introducción
Por alguna razón, la Casen del año 2020 no contiene la categoría “sabe leer y escribir?”, por lo que tuvimos que desarrollar una metodología que nos permitiera estimarla. La información que necesitamos es que a nivel de individuo cada uno de ellos responda si o no sabe leer y escribir, pero esto es imposible. solo podemos hacer una estimación con una regresión lineal a nivel de comunas, lo que no nos sirve para lanzar tablas de contingencia.
1.1 Lectura de bases de datos Casen
<<- readRDS("C:/Users/enamo/Desktop/Shiny-R/Casen_en_pandemia_2020/casen/casen_2006_c.rds")
dataset_06 <- mutate_if(dataset_06, is.factor, as.character)
dataset_06 <<- readRDS("C:/Users/enamo/Desktop/Shiny-R/Casen_en_pandemia_2020/casen/casen_2009_c.rds")
dataset_09 <- mutate_if(dataset_09, is.factor, as.character)
dataset_09 <<- readRDS("C:/Users/enamo/Desktop/Shiny-R/Casen_en_pandemia_2020/casen/casen_2011_c.rds")
dataset_11 <- mutate_if(dataset_11, is.factor, as.character)
dataset_11 <<- readRDS("C:/Users/enamo/Desktop/Shiny-R/Casen_en_pandemia_2020/casen/casen_2013_c.rds")
dataset_13 <- mutate_if(dataset_13, is.factor, as.character)
dataset_13 <<- readRDS("C:/Users/enamo/Desktop/Shiny-R/Casen_en_pandemia_2020/casen/casen_2015_c.rds")
dataset_15 <- mutate_if(dataset_15, is.factor, as.character)
dataset_15 <<- readRDS("C:/Users/enamo/Desktop/Shiny-R/Casen_en_pandemia_2020/casen/casen_2017_c.rds")
dataset_17 <- mutate_if(dataset_17, is.factor, as.character)
dataset_17 <<- readRDS("C:/Users/enamo/Desktop/Shiny-R/Casen_en_pandemia_2020/casen/casen_2020.rds")
dataset_20 <- mutate_if(dataset_20, is.factor, as.character) dataset_20
1.1.1 Homologación de alfabetismo
$E1[dataset_06$E1 == "No sabe /Sin dato"] <- NA
dataset_06
$e1[dataset_11$e1 == "Sí, lee y escribe"] <- "Sí"
dataset_11$e1[dataset_11$e1 == "No, sólo lee"] <- "No"
dataset_11$e1[dataset_11$e1 == "No, ninguno"] <- "No"
dataset_11$e1[dataset_11$e1 == "No, sólo escribe"] <- "No"
dataset_11
$e1[dataset_13$e1 == "Sí, lee y escribe"] <- "Sí"
dataset_13$e1[dataset_13$e1 == "No, ninguno"] <- "No"
dataset_13$e1[dataset_13$e1 == "No, sólo lee"] <- "No"
dataset_13$e1[dataset_13$e1 == "No, sólo escribe"] <- "No"
dataset_13$e1[dataset_13$e1 == "NS/NR"] <- NA
dataset_13
$e1[dataset_15$e1 == "Sí, lee y escribe"] <- "Sí"
dataset_15$e1[dataset_15$e1 == "No, ninguno"] <- "No"
dataset_15$e1[dataset_15$e1 == "No, sólo lee"] <- "No"
dataset_15$e1[dataset_15$e1 == "No, sólo escribe"] <- "No"
dataset_15
$e1[dataset_17$e1 == "Sí, lee y escribe"] <- "Sí"
dataset_17$e1[dataset_17$e1 == "No, sólo lee"] <- "No"
dataset_17$e1[dataset_17$e1 == "No, ninguno"] <- "No"
dataset_17$e1[dataset_17$e1 == "No sabe/responde"] <- NA
dataset_17$e1[dataset_17$e1 == "No, sólo escribe"] <- "No" dataset_17
1.1.2 Generacion de frecuencias para la variable de alfabetismo
<-xtabs(dataset_06$EXPC ~COMUNA+E1, data = dataset_06)
tabla_matp1 <-xtabs(dataset_09$EXPC ~COMUNA+E1, data = dataset_09)
tabla_matp2 <-xtabs(dataset_11$expc_full ~comuna+e1, data = dataset_11)
tabla_matp3 <-xtabs(dataset_13$expc ~comuna+e1, data = dataset_13)
tabla_matp4 <-xtabs(dataset_15$expc_todas ~comuna+e1, data = dataset_15)
tabla_matp5 <-xtabs(dataset_17$expc ~comuna+e1, data = dataset_17) tabla_matp6
1.1.3 Converimos las matrices en dataframe
<- as.data.frame(tabla_matp1)
tabla_matp1 $anio <- 2006
tabla_matp1names(tabla_matp1)[1] <- "comuna"
names(tabla_matp1)[2] <- "e1"
<- as.data.frame(tabla_matp2)
tabla_matp2 $anio <- 2009
tabla_matp2names(tabla_matp2)[1] <- "comuna"
names(tabla_matp2)[2] <- "e1"
<- as.data.frame(tabla_matp3)
tabla_matp3 $anio <- 2011
tabla_matp3<- as.data.frame(tabla_matp4)
tabla_matp4 $anio <- 2013
tabla_matp4<- as.data.frame(tabla_matp5)
tabla_matp5 $anio <- 2015
tabla_matp5<- as.data.frame(tabla_matp6)
tabla_matp6 $anio <- 2017
tabla_matp6
<- tabla_matp1
alfabestismo_06 <- tabla_matp2
alfabestismo_09 <- tabla_matp3
alfabestismo_11 <- tabla_matp4
alfabestismo_13 <- tabla_matp5
alfabestismo_15 <- tabla_matp6 alfabestismo_17
1.1.4 Se obtiene el total de poblacion comunal por año
<- readRDS("union_pob_2.rds")
union_pob
<- union_pob[,c("Poblacion_2006","sum.poblacion$`Poblacion 2006`")]
p06 <- union_pob[,c("Poblacion_2009","sum.poblacion$`Poblacion 2009`")]
p09 <- union_pob[,c("Poblacion_2011","sum.poblacion$`Poblacion 2011`")]
p11 <- union_pob[,c("Poblacion_2013","sum.poblacion$`Poblacion 2013`")]
p13 <- union_pob[,c("Poblacion_2015","sum.poblacion$`Poblacion 2015`")]
p15 <- union_pob[,c("Poblacion_2017","sum.poblacion$`Poblacion 2017`")]
p17 <- union_pob[,c("Poblacion_2020","sum.poblacion$`Poblacion 2020`")]
p20
colnames(p06) <- c("codigo Comuna", "poblacion total")
colnames(p09) <- c("codigo Comuna", "poblacion total")
colnames(p11) <- c("codigo Comuna", "poblacion total")
colnames(p13) <- c("codigo Comuna", "poblacion total")
colnames(p15) <- c("codigo Comuna", "poblacion total")
colnames(p17) <- c("codigo Comuna", "poblacion total")
colnames(p20) <- c("codigo Comuna", "poblacion total")
$año <- 2006
p06$año <- 2009
p09$año <- 2011
p11$año <- 2013
p13$año <- 2015
p15$año <- 2017
p17$año <- 2020
p20
<- rbind(p06,p09,p11,p13,p15,p17) tabla_pob
1.1.5 Se agrega el nombre de comuna a los códigos
<- readRDS(file = "C:/Users/enamo/Desktop/Shiny-R/Casen_en_pandemia_2020/codigos_comunales_2006.rds")
codigos_comunales names(codigos_comunales)[1] <- "codigo Comuna"
names(codigos_comunales)[2] <- "comuna"
= merge(x = alfabestismo_06, y = codigos_comunales, by="comuna" )
b1
= merge(x = b1, y = p06, by = "codigo Comuna", all.x = TRUE)
tabla_06
<- readRDS(file = "C:/Users/enamo/Desktop/Shiny-R/Casen_en_pandemia_2020/codigos_comunales_2009.rds")
codigos_comunales names(codigos_comunales)[1] <- "codigo Comuna"
names(codigos_comunales)[2] <- "comuna"
= merge(x = alfabestismo_09, y = codigos_comunales, by="comuna" )
b2
= merge(x = b2, y = p09, by = "codigo Comuna", all.x = TRUE)
tabla_09
<- readRDS(file = "C:/Users/enamo/Desktop/Shiny-R/Casen_en_pandemia_2020/codigos_comunales_2011-2017.rds")
codigos_comunales names(codigos_comunales)[1] <- "codigo Comuna"
names(codigos_comunales)[2] <- "comuna"
= merge(x = alfabestismo_11, y = codigos_comunales, by="comuna" )
b3 = merge(x = alfabestismo_13, y = codigos_comunales, by="comuna" )
b4 = merge(x = alfabestismo_15, y = codigos_comunales, by="comuna" )
b5 = merge(x = alfabestismo_17, y = codigos_comunales, by="comuna" )
b6
= merge(x = b3, y = p11, by = "codigo Comuna", all.x = TRUE)
tabla_11 = merge(x = b4, y = p13, by = "codigo Comuna", all.x = TRUE)
tabla_13 = merge(x = b5, y = p15, by = "codigo Comuna", all.x = TRUE)
tabla_15 = merge(x = b6, y = p17, by = "codigo Comuna", all.x = TRUE) tabla_17
1.1.6 Calculamos el porcentaje poblacional de las comunas
<- rbind(tabla_06,tabla_09,tabla_11,tabla_13,tabla_15,tabla_17)
tabla_u <- mutate_if(tabla_u, is.factor, as.character)
tabla_u $porcentaje <- tabla_u$Freq*100/(tabla_u$`poblacion total`)
tabla_udatatable(tabla_u, extensions = 'Buttons', escape = FALSE, rownames = FALSE,
options = list(dom = 'Bfrtip',
buttons = list('colvis', list(extend = 'collection',
buttons = list(
list(extend='copy'),
list(extend='excel',
filename = 'hitStats'),
list(extend='pdf',
filename= 'hitStats')),
text = 'Download')), scrollX = TRUE))
1.1.7 Se aplica la regresion lineal para poder calcular el porcentaje de alfabetismo con categoria de respuesta Sí para la Casen de 2020
<- data.frame()
df_2020_si for (jj in unique(tabla_u$`codigo Comuna`)) {
<- filter(tabla_u,tabla_u$`codigo Comuna`== jj )
tabla_u_f <- filter(tabla_u_f,tabla_u_f$e1 =="Sí")
tabla_u_f <- lm(porcentaje ~ anio, data=tabla_u_f)
mod1 <- mod1$coefficients[1] + mod1$coefficients[2]*2020
e1_2020 <- data.frame(
df_e1_2020 "codigo Comuna" = jj,
"e1" = "Sí",
"porcentaje" = as.numeric(e1_2020)
) <- rbind(df_2020_si,df_e1_2020)
df_2020_si
}datatable(df_2020_si, extensions = 'Buttons', escape = FALSE, rownames = FALSE,
options = list(dom = 'Bfrtip',
buttons = list('colvis', list(extend = 'collection',
buttons = list(
list(extend='copy'),
list(extend='excel',
filename = 'hitStats'),
list(extend='pdf',
filename= 'hitStats')),
text = 'Download')), scrollX = TRUE))
1.1.8 Se aplica la regresion lineal para poder calcular el porcentaje de alfabetismo con categoria de respuesta NO para la Casen de 2020
<- data.frame()
df_2020_no for (jj in unique(tabla_u$`codigo Comuna`)) {
<- filter(tabla_u,tabla_u$`codigo Comuna`== jj )
tabla_u_f <- filter(tabla_u_f,tabla_u_f$e1 =="No")
tabla_u_f <- lm(porcentaje ~ anio, data=tabla_u_f)
mod1 <- mod1$coefficients[1] + mod1$coefficients[2]*2020
e1_2020 <- data.frame(
df_e1_2020 "codigo Comuna" = jj,
"e1" = "No",
"porcentaje" = as.numeric(e1_2020)
) <- rbind(df_2020_no,df_e1_2020)
df_2020_no
}datatable(df_2020_no, extensions = 'Buttons', escape = FALSE, rownames = FALSE,
options = list(dom = 'Bfrtip',
buttons = list('colvis', list(extend = 'collection',
buttons = list(
list(extend='copy'),
list(extend='excel',
filename = 'hitStats'),
list(extend='pdf',
filename= 'hitStats')),
text = 'Download')), scrollX = TRUE))
1.1.9 Se agrega la poblacion total a la tabla de porcentajes de alfabetismo del 2020
<- rbind(df_2020_si,df_2020_no)
df_2020_si_no names(df_2020_si_no)[1] <- "codigo Comuna"
= merge(x=df_2020_si_no, y=p20, by="codigo Comuna")
df_2020_si_no2
datatable(df_2020_si_no2, extensions = 'Buttons', escape = FALSE, rownames = FALSE,
options = list(dom = 'Bfrtip',
buttons = list('colvis', list(extend = 'collection',
buttons = list(
list(extend='copy'),
list(extend='excel',
filename = 'hitStats'),
list(extend='pdf',
filename= 'hitStats')),
text = 'Download')), scrollX = TRUE))
Las tablas de contingencia las hacemos considerendo un registro por persona de la muestra, pero nuestro metodo que nos permite estimar el alfabetismo solo lo alcanzamos al nivel de comuna.
Nosotros al aplicar las tablas de contingencia la aplicamos a los registros totales de la Casen por lo que la estimacion del parametro e1 en 2020 lo tenemos que aplicar por igual en todas las comunas
datatable(tabla_u, extensions = 'Buttons', escape = FALSE, rownames = FALSE,
options = list(dom = 'Bfrtip',
buttons = list('colvis', list(extend = 'collection',
buttons = list(
list(extend='copy'),
list(extend='excel',
filename = 'hitStats'),
list(extend='pdf',
filename= 'hitStats')),
text = 'Download')), scrollX = TRUE))