1 Introducción
Éste trabajo pertenece a una serie de demostraciones en las que queremos verificar que los datos obtenidos por cuenta propia coincidan con los publicados oficialmente por el gobierno de Chile. Como lo demostraremos esto será así.
No esta demás repetir los problemas con los que nos enfrentamos al estudiar la Casen, que no fueron de codificación, sino de su estructura y de una “corrección” que el gobierno de Chile hizo para el cálculo de la pobreza entre el año 2006 y 2011. Nuestros cálculos originales consideraron las 3 Casens oficiales del 2006, 2009 y 2011, que ni siquiera se aproximaba a las cifras oficiales publicadas por el gobierno. Al considerar las bases de datos “corregidas” el problema fue solucionado.
Si bien en el cálculo de la pobreza, las bases de datos eran consistentes, es decir, tenían el mismo tipo donde debían estar en el cálculo de los ingresos, tuvimos problemas que al principio atribuimos a errores de nuestro propio código pero que resultaron ser error de consistencia en la base de datos del 2020: la única Casen que en vez de contener NA contiene 0. En ninguna parte existe registro de esta situación por lo que lo descubrimos analizando exhaustivamente la Casen del 2020.
Para calcular las cifras de pobreza entre las casen se utilizo interpolación con la función approx de R, con lo que podemos extraer información mas rica que con lo que se podria extraer con una simple regresión lieneal.
Pobreza Nueva Metodología
<- switch(2,"C:/Users/enamo/Desktop/Shiny-R/Casen_en_pandemia_2020/casen/","C:/Users/enamo/Desktop/Shiny-R/Casen_en_pandemia_2020/casen/")
direccion
<<- readRDS(paste0(direccion,"casen_2006_c.rds"))
dataset_06 <- mutate_if(dataset_06, is.factor, as.character)
dataset_06 <<- readRDS(paste0(direccion,"casen_2009_c.rds"))
dataset_09 <- mutate_if(dataset_09, is.factor, as.character)
dataset_09 <<- readRDS(paste0(direccion,"casen_2011_c.rds"))
dataset_11 <- mutate_if(dataset_11, is.factor, as.character)
dataset_11 <<- readRDS(paste0(direccion,"casen_2013_c.rds"))
dataset_13 <- mutate_if(dataset_13, is.factor, as.character)
dataset_13 <<- readRDS(paste0(direccion,"casen_2015_c.rds"))
dataset_15 <- mutate_if(dataset_15, is.factor, as.character)
dataset_15 <<- readRDS(paste0(direccion,"casen_2017_c.rds"))
dataset_17 <- mutate_if(dataset_17, is.factor, as.character)
dataset_17 <<- readRDS(paste0(direccion,"casen_2020_c.rds"))
dataset_20 <- mutate_if(dataset_20, is.factor, as.character) dataset_20
2 Cálculo de la pobreza oficial del gobierno de Chile
La siguiente gráfica muestra la distribución de la pobreza en Chile entre 2006 y 2020 según las cifras oficiales del gobierno de Chile, incluyendo la “corrección” del 2006, 2009 y 2011.
El presente trabajo demostrara que nuestros propios cálculos coinciden con la cifra de la siguiente gráfica:
Pobreza Nueva Metodología
La gráfica se presta para una ligera confusión: el número que se sitúa en la parte superior de cada barra es la suma de pobres y de pobres extremos. los gráficos construídos con nuestras propias bases de datos en flourish coinciden casi exactamente con los calculados por nosotros, la diferencia en flourish es que la categoria pobre es exactamente lo que significa: pobres exclusivamente sin sumarles la pobreza extrema
3 2006
Base de datos Complementaria de Ingresos Nueva Metodología Casen 2006 SPSS
$clave <- paste0(dataset_06$SEG,dataset_06$O,dataset_06$F)
dataset_06<- read.spss("C:/Users/enamo/Desktop/Shiny-R/comprobacion_Abner/Ingresos MN 2006.sav", to.data.frame = TRUE)
MN_2006 $clave <- paste0(MN_2006$seg,MN_2006$o,MN_2006$f)
MN_2006
<- MN_2006[,c("clave","pobreza_MN")]
MN_2006_2 <- merge(x= dataset_06, y= MN_2006_2, by="clave")
dataset_06 <- mutate_if(dataset_06, is.factor, as.character) dataset_06
3.1 Frecuencias
<- xtabs(dataset_06$EXPC~pobreza_MN, data = dataset_06)
ttcc ttcc
## pobreza_MN
## No pobres Pobres extremos Pobres no extremos
## 11424554 2027451 2663366
3.2 Porcentajes
print(c("Pobres extremos",as.numeric(ttcc[2]*100/(ttcc[1]+ttcc[2]+ttcc[3]))))
## [1] "Pobres extremos" "12.5808521566149"
print(c("Pobres",as.numeric((ttcc[3]+ttcc[2])*100/(ttcc[1]+ttcc[2]+ttcc[3]))))
## [1] "Pobres" "29.107719580269"
4 2009
Base de datos Complementaria de Ingresos Nueva Metodología Casen 2009 SPSS
$clave <- paste0(dataset_09$SEGMENTO,dataset_09$IDVIV,dataset_09$HOGAR,dataset_09$O)
dataset_09<- read.spss("C:/Users/enamo/Desktop/Shiny-R/comprobacion_Abner/Ingresos MN 2009.sav", to.data.frame = TRUE)
MN_2009 $clave <- paste0(MN_2009$SEGMENTO,MN_2009$IDVIV,MN_2009$HOGAR,MN_2009$O)
MN_2009
<- MN_2009[,c("clave","pobreza_MN")]
MN_2009_2 <- merge(x= dataset_09, y= MN_2009_2, by="clave")
dataset_09 <- mutate_if(dataset_09, is.factor, as.character) dataset_09
4.1 Frecuencias
<- xtabs(dataset_09$EXPC~pobreza_MN, data = dataset_09)
ttcc ttcc
## pobreza_MN
## No pobres Pobres extremos Pobres no extremos
## 12398130 1630581 2555810
4.2 Porcentajes
print(c("Pobres extremos",as.numeric(ttcc[2]*100/(ttcc[1]+ttcc[2]+ttcc[3]))))
## [1] "Pobres extremos" "9.83194510109758"
print(c("Pobres",as.numeric((ttcc[2]+ttcc[3])*100/(ttcc[1]+ttcc[2]+ttcc[3]))))
## [1] "Pobres" "25.2427610058801"
5 2011
Base Complementaria Ingresos Nueva Metodología Casen 2011 (submuestra noviembre 2011-enero 2012) (Base 2011 utilizada para estimaciones de serie Casen) SPSS
$clave <- paste0(dataset_11$folio,dataset_11$o)
dataset_11<- read.spss("C:/Users/enamo/Desktop/Shiny-R/comprobacion_Abner/Ingresos MN 2011.sav", to.data.frame = TRUE)
MN_2011 $clave <- paste0(MN_2011$folio,MN_2011$o )
MN_2011
<- MN_2011[,c("clave","pobreza_MN")]
MN_2011_2 <- merge(x= dataset_11, y= MN_2011_2, by="clave")
dataset_11 <- mutate_if(dataset_11, is.factor, as.character) dataset_11
5.1 Frecuencias
<- xtabs(dataset_11$expc_full~pobreza_MN, data = dataset_11)
ttcc ttcc
## pobreza_MN
## No pobres Pobres extremos Pobres no extremos
## 8713093 910164 1598941
5.2 Porcentajes
print(c("Pobres extremos",as.numeric(ttcc[2]*100/(ttcc[1]+ttcc[2]+ttcc[3]))))
## [1] "Pobres extremos" "8.11038978282151"
print(c("Pobres",as.numeric((ttcc[2]+ttcc[3])*100/(ttcc[1]+ttcc[2]+ttcc[3]))))
## [1] "Pobres" "22.3584096448842"
6 2013
Para 2013 la pobreza con la nueva metodología ya esta incluida en la base de datos oficial
6.1 Frecuencias
<- xtabs(dataset_13$expc~pobreza_MN, data = dataset_13)
ttcc ttcc
## pobreza_MN
## No pobres Pobres extremos Pobres no extremos
## 14745682 776164 1696553
6.2 Porcentajes
print(c("Pobres extremos",as.numeric(ttcc[2]*100/(ttcc[1]+ttcc[2]+ttcc[3]))))
## [1] "Pobres extremos" "4.50775940318261"
print(c("Pobres",as.numeric((ttcc[2]+ttcc[3])*100/(ttcc[1]+ttcc[2]+ttcc[3]))))
## [1] "Pobres" "14.3608996399723"
7 2015
Para 2015 la pobreza con la nueva metodología ya esta incluida en la base de datos oficial
7.1 Frecuencias
<- xtabs(dataset_15$expc_todas ~pobreza, data = dataset_15)
ttcc ttcc
## pobreza
## No pobres Pobres extremos Pobres no extremos
## 15466212 616619 1407558
7.2 Porcentajes
print(c("Pobres extremos",as.numeric(ttcc[2]*100/(ttcc[1]+ttcc[2]+ttcc[3]))))
## [1] "Pobres extremos" "3.52547333281152"
print(c("Pobres",as.numeric((ttcc[2]+ttcc[3])*100/(ttcc[1]+ttcc[2]+ttcc[3]))))
## [1] "Pobres" "11.5730816507283"
8 2017
Para 2017 la pobreza con la nueva metodología ya esta incluida en la base de datos oficial
8.1 Frecuencias
<- xtabs(dataset_17$expc~pobreza, data = dataset_17)
ttcc ttcc
## pobreza
## No pobres Pobres extremos Pobres no extremos
## 16241747 407536 1099747
8.2 Porcentajes
print(c("Pobres extremos",as.numeric(ttcc[2]*100/(ttcc[1]+ttcc[2]+ttcc[3]))))
## [1] "Pobres extremos" "2.29610294196359"
print(c("Pobres",as.numeric((ttcc[2]+ttcc[3])*100/(ttcc[1]+ttcc[2]+ttcc[3]))))
## [1] "Pobres" "8.49219929201765"
9 2020
Para 2020 la pobreza con la nueva metodología ya esta incluida en la base de datos oficial
9.1 Frecuencias
<- xtabs(dataset_20$expc~pobreza, data = dataset_20)
ttcc ttcc
## pobreza
## No pobres Pobres extremos Pobres no extremos
## 17360850 848169 1278243
9.2 Porcentajes
print(c("Pobres extremos",as.numeric(ttcc[2]*100/(ttcc[1]+ttcc[2]+ttcc[3]))))
## [1] "Pobres extremos" "4.35242775511511"
print(c("Pobres",as.numeric((ttcc[2]+ttcc[3])*100/(ttcc[1]+ttcc[2]+ttcc[3]))))
## [1] "Pobres" "10.9118048497526"
El porcentaje de pobreza que se calculó coincide con los datos publicados de Casen y también con el gráfico flourish con la diferencia de que en este último los valores están calculados de forma independiente, pero al sumarse coinciden con los datos oficiales de Casen
Pobreza (%) Escala Nacional
10 Tabla madre
En esta tabla se calcula la frecuencia y porcentaje de porcentaje a nivel de comuna
<- readRDS("tabla_madre.rds")
tabla_madre datatable(tabla_madre, 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))%>%
formatRound(c("porcentaje_pobreza1","porcentaje_pobreza2","porcentaje_pobreza3","porcentaje_pobreza4","porcentaje_pobreza5","porcentaje_pobreza6","porcentaje_pobreza7"), mark = "", digits = 2)
<- tabla_madre[,c(3,4)]
tabla2
<- filter(tabla2, Pobreza == "No pobre")
No_pobre <- sum(No_pobre$Freq1)
np
<- filter(tabla2, Pobreza == "Pobre")
Pobre <- sum(Pobre$Freq1)
p
<- filter(tabla2, Pobreza == "Pobre extremo")
Pobre_extremo <- sum(Pobre_extremo$Freq1) pe
print(c("Pobres extremos",as.numeric(pe*100/(np+p+pe))))
## [1] "Pobres extremos" "11.9416905261062"
print(c("Pobres",as.numeric((p+pe)*100/(np+p+pe))))
## [1] "Pobres" "28.4461393499999"
11 Tabla interpolación
Calculamos la interpolación del porcentaje de pobreza a nivel de comuna para los años que no están en la Casen
<- readRDS("tabla_final.rds")
tabla_final
datatable(tabla_final, 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))%>%
formatRound(c("p2006","p2007","p2008","p2009","p2010","p2011","p2012","p2013","p2014","p2015","p2016","p2017","p2018","p2019","p2020"), mark = "", digits = 2)
12 Tabla con interpolación y frecuencia
Unimos la frecuencia de los años que tenemos en la tabla madre con la tabla de interpolación
<- cbind(tabla_final, tabla_madre[,c("Freq1","Freq2","Freq3","Freq4","Freq5","Freq6","Freq7")])
tabla_final_2 <- tabla_final_2[,c("Comuna","Código","Pobreza","Freq1","p2006","p2007","p2008","Freq2","p2009","p2010","Freq3","p2011","p2012","Freq4","p2013","p2014","Freq5","p2015","p2016","Freq6","p2017","p2018","p2019","Freq7","p2020" )]
tabla_final_2
colnames(tabla_final_2) <- c("Comuna","Código","Pobreza","freq_2006","p2006","p2007","p2008","freq_2009","p2009","p2010","freq_2011","p2011","p2012","freq_2013","p2013","p2014","freq_2015","p2015","p2016","freq_2017","p2017","p2018","p2019","freq_2020","p2020")
datatable(tabla_final_2, 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))%>%
formatRound(c("freq_2006","p2006","p2007","p2008","freq_2009","p2009","p2010","freq_2011","p2011","p2012","freq_2013","p2013","p2014","freq_2015","p2015","p2016","freq_2017","p2017","p2018","p2019","freq_2020","p2020"), mark = "", digits = 2)
Cálculo de pobreza(frecuencias)
<- tabla_final_2[,c(3,4,5)]
tabla2
<- filter(tabla2, Pobreza == "No pobre")
No_pobre <- sum(No_pobre$freq_2006)
np
<- filter(tabla2, Pobreza == "Pobre")
Pobre <- sum(Pobre$freq_2006)
p
<- filter(tabla2, Pobreza == "Pobre extremo")
Pobre_extremo <- sum(Pobre_extremo$freq_2006) pe
print(c("Pobres extremos",as.numeric(pe*100/(np+p+pe))))
## [1] "Pobres extremos" "11.9416905261062"
print(c("Pobres",as.numeric((p+pe)*100/(np+p+pe))))
## [1] "Pobres" "28.4461393499999"
13 Tabla interpolacion nivel nacional
<- read_xlsx("pobreza_nacional.xlsx")
pob_n datatable(pob_n, 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))
Los porcentajes que calculamos los obtuvimos de la tabla anterior, coinciden con los datos publicados por la Casen y la tabla también con los datos del Flourish
Pobreza Escala Nacional
Pobreza Escala Nacional
<- filter(pob_n, categorias == "No pobre")[,2]
np <- filter(pob_n, categorias == "Pobre")[,2]
p <- filter(pob_n, categorias == "Pobre extremo")[,2] pe
print(c("Pobres extremos",as.numeric(pe*100/(np+p+pe))))
## [1] "Pobres extremos" "12.5808521566149"
print(c("Pobres",as.numeric((p+pe)*100/(np+p+pe))))
## [1] "Pobres" "29.107719580269"
14 Conclusión
Damos la revisión por concluida. Ya no tenemos más meétodos que implementar ni bases de datos que analizar. Se cumplió el objetivo de la coincidencia del cálculo propio con el oficial.
La casen es un instrumento academico, por lo que solo lo pueden abordar profesionales de las ciencias sociales y programadores, lo que limita su relevancia al desarrollo y evaluación de programas y políticas sociales que los gobiernos de turno decidan implementar.