1 Introducción

2 Enmienda a las categorías de alfabetismo

3 Enmienda a las categorías de países

4 Gráficos

5 Histogramas



1. Introducción

Recordemos que las variables que consideramos más relevantes y que por lo tanto utilizaremos son:

variable de ingreso
Ingreso total Ingreso autónomo Ingreso del trabajo Ingreso de la ocupación principal
año
2017 ytotcor yautcor ytrabajocor yoprcor
2015 ytotcor yautcor ytrabajocor yoprcor
2013 ytotcor yautcor ytrabajocor yoprcor
2011 ytotaj yautaj ytrabaj yopraj
2009 ytotaj yautaj ytrabaj yopraj
2006 ytotaj yautaj ytrabaj yopraj

En este artículo se hará una revisión a las tablas de contingencia generadas sobre el set de categorías: Comuna-Sexo-Migra-Alfabetismo, y en específico, se corregirá para homologar entre los años la categoría de respuesta a la pregunta: ¿Sabe Leer?

1.1 Leamos nuestras tablas de contingencias

var_ytotaj <- readRDS("variables_ingreso_migra/ytotaj_migra.rds")
var_yautaj <- readRDS("variables_ingreso_migra/yautaj_migra.rds")
var_yopraj <- readRDS("variables_ingreso_migra/yopraj_migra.rds")
var_ytrabaj <- readRDS("variables_ingreso_migra/ytrabaj_migra.rds")

2. Enmienda a las categorías de alfabetismo

A la respuesta de la pregunta ¿Sabe leer?, la Casen del 2011 entrega 4 categorías de respuesta. Éstas categorías no son constantes pues se le agregan otras o son modificadas en las Casen posteriores. En nuestra tabla de contingencia relacionada al ingreso YTOTAJ, éstas categorías se distribuyen en los siguientes porcentajes:

Primero veamos el contenido de la ttcc en cuestión.

head(var_ytotaj,5)%>%
kbl()%>%
kable_classic(full_width = F, html_font = "Cambria")
Comuna Alfabetismo Migración Sexo Promedio del Ingreso Desviación standard Gini Año Código
Alhué Sí, lee y escribe Perú Mujer 62120 NA 0.0000000 2011 13502
Alhué Sí, lee y escribe Ecuador Mujer 287965 NA 0.0000000 2011 13502
Alhué Sí, lee y escribe Argentina Mujer 214305 38855.52 0.0641026 2011 13502
Alhué Sí, lee y escribe Argentina Hombre 58535 72641.08 0.4387546 2011 13502
Alto Biobío Sí, lee y escribe Argentina Mujer 307720 NA 0.0000000 2011 08314

2.1 Categorías de respuesta y sus porcentajes para la pregunta ¿Sabe Leer? de la tabla de contingencia relativa al ingreso total (YTOTAJ)

alfa_gene <- function(n){
 x<-switch(n,"2011","2013","2015","2017")
  for(i in x){
  var <- filter(var_ytotaj, var_ytotaj$Año == x)
  a <- nrow(var)
  my_summary_data <- var %>%
    group_by(Alfabetismo) %>%
    summarise(Porcentaje = n()*100/a)
  print(my_summary_data)
  return(my_summary_data)
  }
}

Al revisar los porcentajes de las categorías presentes en la tabla de contingencia anterior, nos encontramos con que la totalidad estadistica pertenece a la categoría “Sí, lee y escribe”. Si bien esto no indica frecuencias de individuos sino que de categorías, de todas maneras revela que la población inmigrante es mas letrada que la nacional pues excluímos promedios de ingreso iguales a 0. La creación automática de categorías con R, que excluye los promedios iguales a 0 nos entrega sólo las categorías que existen, y estas categorias existentes revelan que casi la totalidad de la población inmigrante sabe leer y escribir.

Desplequemos las categorías de respuestas de la pregunta ¿Sabe Leer? de la tabla de contingencia relativa a ingresos totales:

for (n in 1:4){
  alfa_gene(n)
}
## `summarise()` ungrouping output (override with `.groups` argument)
## # A tibble: 4 x 2
##   Alfabetismo       Porcentaje
##   <fct>                  <dbl>
## 1 Sí, lee y escribe     95.3  
## 2 No, sólo lee           1.67 
## 3 No, sólo escribe       0.139
## 4 No, ninguno            2.92
## `summarise()` ungrouping output (override with `.groups` argument)
## # A tibble: 4 x 2
##   Alfabetismo       Porcentaje
##   <fct>                  <dbl>
## 1 Sí, lee y escribe     94.7  
## 2 No, sólo lee           2.53 
## 3 No, sólo escribe       0.267
## 4 No, ninguno            2.53
## `summarise()` ungrouping output (override with `.groups` argument)
## # A tibble: 3 x 2
##   Alfabetismo       Porcentaje
##   <fct>                  <dbl>
## 1 Sí, lee y escribe      97.3 
## 2 No, sólo lee            1.35
## 3 No, ninguno             1.35
## `summarise()` ungrouping output (override with `.groups` argument)
## # A tibble: 5 x 2
##   Alfabetismo       Porcentaje
##   <fct>                  <dbl>
## 1 Sí, lee y escribe     94.5  
## 2 No, sólo lee           1.75 
## 3 No, sólo escribe       0.973
## 4 No, ninguno            2.63 
## 5 No sabe/responde       0.195

2.2 Generación del diccionario.

Generemos a continuación la totalidad de categorías de respuesta a la pregunta en cuestión en la ttcc de ingresos totales:

unicos <- unique(var_ytotaj$Alfabetismo)
unicos <- as.data.frame(unicos)
unicos
##              unicos
## 1 Sí, lee y escribe
## 2       No, ninguno
## 3      No, sólo lee
## 4  No, sólo escribe
## 5  No sabe/responde

A continuación tenemos el diccionario que leeremos para hacer el merge con el que generaremos una nueva columna con nuestras categorías correctas. Luego podremos borrar el campo original.

alfabetismo <- read_xlsx("alfabetismo_unicos.xlsx")
head(alfabetismo,9)%>%
kbl()%>%
kable_classic(full_width = F, html_font = "Cambria")
Alfabetismo cat_alfa
No No
No sabe /Sin dato NS/NR
Sí, lee y escribe
No, sólo lee No
No, ninguno No
No, sólo escribe No
NS/NR NS/NR
No sabe/responde NS/NR

2.3 Corrección de las categorías de alfabetismo:

Ahora corregimos nuestras 4 ttcc relacionadas a los 4 tipos de ingreso fundamentales de la Casen:

2.3.1 Ingresos totales:

nuevas_cat = merge( x = var_ytotaj, y = alfabetismo, by = "Alfabetismo", all.x = TRUE)
ytotaj_mig_alf_corr <- nuevas_cat[,c(-1)]
head(ytotaj_mig_alf_corr,5)%>%
kbl()%>%
kable_classic(full_width = F, html_font = "Cambria")
Comuna Migración Sexo Promedio del Ingreso Desviación standard Gini Año Código cat_alfa
Iquique Bolivia Hombre 274167 NA 0 2017 01101 NS/NR
Antofagasta Bolivia Mujer 120000 NA 0 2017 02101 NS/NR
Aysén Argentina Mujer 105350 NA 0 2013 11201 No
Alto Hospicio Bolivia Mujer 150000 NA 0 2011 01107 No
Alto Hospicio Bolivia Hombre 290000 NA 0 2015 01107 No
# saveRDS(ytotaj_mig_alf_corr,"variables_ingreso_migra/ytotaj_mig_alf_corr.rds")

2.3.2 Ingresos autónomos:

nuevas_cat = merge( x = var_yautaj, y = alfabetismo, by = "Alfabetismo", all.x = TRUE)
yautaj_mig_alf_corr <- nuevas_cat[,c(-1)]
head(yautaj_mig_alf_corr,5)%>%
kbl()%>%
kable_classic(full_width = F, html_font = "Cambria")
Comuna Migración Sexo Promedio del Ingreso Desviación standard Gini Año Código cat_alfa
Antofagasta Bolivia Mujer 120000 NA 0 2017 02101 NS/NR
Iquique Bolivia Hombre 274167 NA 0 2017 01101 NS/NR
Yerbas Buenas Haití Hombre 300000 NA 0 2017 07408 No
Alto Hospicio Bolivia Mujer 150000 NA 0 2011 01107 No
Antofagasta España Mujer 160000 NA 0 2013 02101 No
# saveRDS(yautaj_mig_alf_corr,"variables_ingreso_migra/yautaj_mig_alf_corr.rds")

2.3.3 Ingresos de la ocupación principal:

nuevas_cat = merge( x = var_yopraj, y = alfabetismo, by = "Alfabetismo", all.x = TRUE)
yopraj_mig_alf_corr <- nuevas_cat[,c(-1)]
head(yopraj_mig_alf_corr,5)%>%
kbl()%>%
kable_classic(full_width = F, html_font = "Cambria")
Comuna Migración Sexo Promedio del Ingreso Desviación standard Gini Año Código cat_alfa
Antofagasta Bolivia Mujer 120000 NA 0.000 2017 02101 NS/NR
Iquique Bolivia Hombre 270000 NA 0.000 2017 01101 NS/NR
Cunco No contesta Hombre 64000 22627.42 0.125 2015 09103 No
Natales Argentina Hombre 197820 NA 0.000 2011 12401 No
Putre Israel Hombre 90000 NA 0.000 2013 15201 No
# saveRDS(yopraj_mig_alf_corr,"variables_ingreso_migra/yopraj_mig_alf_corr.rds")

2.3.4 Ingresos del trabajo:

nuevas_cat = merge( x = var_ytrabaj, y = alfabetismo, by = "Alfabetismo", all.x = TRUE)
ytrabaj_mig_alf_corr <- nuevas_cat[,c(-1)]
head(ytrabaj_mig_alf_corr,5)%>%
kbl()%>%
kable_classic(full_width = F, html_font = "Cambria")
Comuna Migración Sexo Promedio del Ingreso Desviación standard Gini Año Código cat_alfa
Iquique Bolivia Hombre 270000 NA 0 2017 01101 NS/NR
Antofagasta Bolivia Mujer 120000 NA 0 2017 02101 NS/NR
Putre Bolivia Mujer 220000 NA 0 2017 15201 No
Putre Israel Hombre 90000 NA 0 2013 15201 No
Graneros Bolivia Hombre 300000 NA 0 2017 06106 No
# saveRDS(ytrabaj_mig_alf_corr,"variables_ingreso_migra/ytrabaj_mig_alf_corr.rds")

3. Enmienda a las categorías de países

Promedio del ingreso total por país de origen del inmigrante:

Corregimos tres tipos de respuesta diferentes pero que hacen referencia a lo mismo.

3.1 Ingresos totales:

categorias <- read_xlsx("paises.xlsx")
paises_cat = merge( x = ytotaj_mig_alf_corr, y = categorias, by = "Migración", all.x = TRUE)
ytotaj_mig_alf_corr <- paises_cat[,c(-1)]
head(ytotaj_mig_alf_corr,5)
##       Comuna   Sexo Promedio del Ingreso Desviación standard        Gini  Año
## 1  Purranque Hombre             410200.0                  NA 0.000000000 2011
## 2  Coyhaique  Mujer             250000.0                  NA 0.000000000 2017
## 3    Copiapó Hombre             260000.0                  NA 0.000000000 2011
## 4 Las Condes  Mujer             446666.7            10137.66 0.009120896 2015
## 5  Cartagena  Mujer             121352.0                  NA 0.000000000 2011
##   Código cat_alfa cat_paises
## 1  10303       Sí   Alemania
## 2  11101       No   Alemania
## 3  03101       Sí   Alemania
## 4  13114       Sí   Alemania
## 5  05603       Sí   Alemania
saveRDS(ytotaj_mig_alf_corr,"variables_ingreso_migra/ytotaj_mig_alf_corr.rds")
write_xlsx(ytotaj_mig_alf_corr,"variables_ingreso_migra/ytotaj_mig_alf_corr.xlsx")

3.2 Ingresos autónomos:

categorias <- read_xlsx("paises.xlsx")
paises_cat = merge( x = yautaj_mig_alf_corr, y = categorias, by = "Migración", all.x = TRUE)
yautaj_mig_alf_corr <- paises_cat[,c(-1)]
head(yautaj_mig_alf_corr,5)
##        Comuna   Sexo Promedio del Ingreso Desviación standard Gini  Año Código
## 1       Pucón  Mujer               256667                  NA    0 2011  09115
## 2      Colbún Hombre               451220                  NA    0 2011  07402
## 3    Vitacura  Mujer               450000                  NA    0 2011  13132
## 4    Vitacura  Mujer               600000                  NA    0 2017  13132
## 5 Providencia  Mujer               500000                  NA    0 2011  13123
##   cat_alfa cat_paises
## 1       Sí   Alemania
## 2       Sí   Alemania
## 3       Sí   Alemania
## 4       Sí   Alemania
## 5       Sí   Alemania
saveRDS(yautaj_mig_alf_corr,"variables_ingreso_migra/yautaj_mig_alf_corr.rds")
write_xlsx(yautaj_mig_alf_corr,"variables_ingreso_migra/yautaj_mig_alf.xlsx")

3.3 Ingresos de la ocupación principal:

categorias <- read_xlsx("paises.xlsx")
paises_cat = merge( x = yopraj_mig_alf_corr, y = categorias, by = "Migración", all.x = TRUE)
yopraj_mig_alf_corr <- paises_cat[,c(-1)]
head(yopraj_mig_alf_corr,5)
##       Comuna   Sexo Promedio del Ingreso Desviación standard       Gini  Año
## 1    Coelemu  Mujer               500000                  NA 0.00000000 2017
## 2  Purranque  Mujer               512750                  NA 0.00000000 2011
## 3   Valdivia  Mujer               397425            18066.58 0.01607221 2011
## 4 Las Condes  Mujer               200000                  NA 0.00000000 2015
## 5 Villarrica Hombre               500000                  NA 0.00000000 2013
##   Código cat_alfa cat_paises
## 1  16203       Sí   Alemania
## 2  10303       Sí   Alemania
## 3  14101       Sí   Alemania
## 4  13114       Sí   Alemania
## 5  09120       Sí   Alemania
saveRDS(yopraj_mig_alf_corr,"variables_ingreso_migra/yopraj_mig_alf_corr.rds")
write_xlsx(yopraj_mig_alf_corr,"variables_ingreso_migra/yopraj_mig_alf_corr.xlsx")

3.4 Ingresos del trabajo:

categorias <- read_xlsx("paises.xlsx")
paises_cat = merge( x = ytrabaj_mig_alf_corr, y = categorias, by = "Migración", all.x = TRUE)
ytrabaj_mig_alf_corr <- paises_cat[,c(-1)]
head(ytrabaj_mig_alf_corr,5)
##         Comuna   Sexo Promedio del Ingreso Desviación standard Gini  Año Código
## 1       Colbún Hombre               451220                  NA    0 2011  07402
## 2      Coelemu  Mujer               500000                  NA    0 2017  16203
## 3 Viña del Mar  Mujer               500000                  NA    0 2013  05109
## 4   La Florida  Mujer                64000                  NA    0 2013  13110
## 5    Cartagena  Mujer               121352                  NA    0 2011  05603
##   cat_alfa cat_paises
## 1       Sí   Alemania
## 2       Sí   Alemania
## 3       Sí   Alemania
## 4       Sí   Alemania
## 5       Sí   Alemania
saveRDS(ytrabaj_mig_alf_corr,"variables_ingreso_migra/ytrabaj_mig_alf_corr.rds")
write_xlsx(ytrabaj_mig_alf_corr,"variables_ingreso_migra/ytrabaj_mig_alf_corr.xlsx")

Gráficos

Promedio del ingreso total

Promedio del ingreso total por año para los inmigrantes:

Se supone que los inmigrantes del primer mundo deben tener ingresos superiores a los que provienen de un país pobre del tercero.

Promedio de los ingresos totales por pais de origen del inmigrante para el 2011

ytotaj_filtro11 <- filter(ytotaj_mig_alf_corr, ytotaj_mig_alf_corr$Año == 2011)

Promedio de los ingresos totales por pais de origen del inmigrante para el 2013

ytotaj_filtro13 <- filter(yautaj_mig_alf_corr, yautaj_mig_alf_corr$Año == 2013)

Promedio de los ingresos totales por pais de origen del inmigrante para el 2015

ytotaj_filtro15 <- filter(yopraj_mig_alf_corr, yopraj_mig_alf_corr$Año == 2015)

Promedio de los ingresos totales por pais de origen del inmigrante para el 2017

ytotaj_filtro17 <- filter(ytrabaj_mig_alf_corr, ytrabaj_mig_alf_corr$Año == 2017)
eliminated<- ytotaj_mig_alf_corr
a <- eliminated$`Promedio del Ingreso`
b <- eliminated$Comuna
c <- eliminated$Año


promedios_ytotaj <-aggregate(a, by=list(b, c), FUN = mean , na.rm = TRUE)
fig <- plot_ly(promedios_ytotaj, x = ~promedios_ytotaj$Group.2, y = ~promedios_ytotaj$mean.a, color=  ~promedios_ytotaj$Group.1, type = 'scatter', mode = 'lines')%>%
  layout(title = "Evolución del ingreso total por año por comuna en la poblacion inmigrante",
         xaxis = list(title = "Año"), yaxis= list(title = "Ingreso total"))
fig
## Warning in RColorBrewer::brewer.pal(N, "Set2"): n too large, allowed maximum for palette Set2 is 8
## Returning the palette you asked for with that many colors

## Warning in RColorBrewer::brewer.pal(N, "Set2"): n too large, allowed maximum for palette Set2 is 8
## Returning the palette you asked for with that many colors
# promedios_ytotaj_comuna <- filter(promedios_ytotaj, promedios_ytotaj$Group.1=="Iquique")
# 
# fit <- lm(mean.a ~ Group.2, data = promedios_ytotaj_comuna)
# 
# promedios_ytotaj_comuna %>% plot_ly(x = ~Group.2) %>% add_markers(y = ~mean.a) %>% add_lines(x =~Group.2, y = fitted(fit))
# 
# # promedios_ytotaj_comuna%>%plot_ly(x= ~promedios_ytotaj_comuna$Group.2)%>%add_markers(y = ~Ozone)

Relación del promedio del ingreso autónomo con el alfabetismo para la población inmigrante para el conjunto de años 2011-2017

Evolución del promedio del ingreso autónomo para los inmigrantes en el rango de años 2011-2017

Relación del promedio del ingreso autónomo con el pais de origen del inmigrante para el conjunto de años 2011-2017

Ingresos autónomos de los inmigrantes por comuna en el rango de años 2011-2017

Ingresos autónomos de los inmigrantes por sexo en el rango de años 2011-2017

Si queremos graficar el promedio del ingreso para una comuna a lo largo de los años solo debemos tener un valor para ese año, por lo que debemos aplicar un promedio de los promedios de los ingresos

eliminated<- yautaj_mig_alf_corr
a <- eliminated$`Promedio del Ingreso`
b <- eliminated$Comuna
c <- eliminated$Año


promedios_yautaj <-aggregate(a, by=list(b, c), FUN = mean , na.rm = TRUE)
fig <- plot_ly(promedios_yautaj, x = ~promedios_yautaj$Group.2, y = ~promedios_yautaj$mean.a, color=  ~promedios_yautaj$Group.1, type = 'scatter', mode = 'lines')

fig
## Warning in RColorBrewer::brewer.pal(N, "Set2"): n too large, allowed maximum for palette Set2 is 8
## Returning the palette you asked for with that many colors

## Warning in RColorBrewer::brewer.pal(N, "Set2"): n too large, allowed maximum for palette Set2 is 8
## Returning the palette you asked for with that many colors

Promedio del ingreso de la ocupacion principal

Promedio del ingreso de la ocupacion principal por año

Promedio del ingreso de la ocupacion principal por migración

Si queremos graficar el promedio del ingreso para una comuna a lo largo de los años solo debemos tener un valor para ese año, por lo que debemos aplicar un promedio de los promedios de los ingresos

eliminated<- yopraj_mig_alf_corr
a <- eliminated$`Promedio del Ingreso`
b <- eliminated$Comuna
c <- eliminated$Año


promedios_yopraj <-aggregate(a, by=list(b, c), FUN = mean , na.rm = TRUE)
fig <- plot_ly(promedios_yopraj, x = ~promedios_yopraj$Group.2, y = ~promedios_yopraj$mean.a, color=  ~promedios_yopraj$Group.1, type = 'scatter', mode = 'lines')

fig
## Warning in RColorBrewer::brewer.pal(N, "Set2"): n too large, allowed maximum for palette Set2 is 8
## Returning the palette you asked for with that many colors

## Warning in RColorBrewer::brewer.pal(N, "Set2"): n too large, allowed maximum for palette Set2 is 8
## Returning the palette you asked for with that many colors

Promedio del ingreso del trabajo

Promedio del ingreso del trabajo por año

Promedio del ingreso del trabajo por migración

Si queremos graficar el promedio del ingreso para una comuna a lo largo de los años solo debemos tener un valor para ese año, por lo que debemos aplicar un promedio de los promedios de los ingresos

eliminated<- ytrabaj_mig_alf_corr
a <- eliminated$`Promedio del Ingreso`
b <- eliminated$Comuna
c <- eliminated$Año


promedios_ytrabaj <-aggregate(a, by=list(b, c), FUN = mean , na.rm = TRUE)
fig <- plot_ly(promedios_ytrabaj, x = ~promedios_ytrabaj$Group.2, y = ~promedios_ytrabaj$mean.a, color=  ~promedios_ytrabaj$Group.1, type = 'scatter', mode = 'lines')

fig
## Warning in RColorBrewer::brewer.pal(N, "Set2"): n too large, allowed maximum for palette Set2 is 8
## Returning the palette you asked for with that many colors

## Warning in RColorBrewer::brewer.pal(N, "Set2"): n too large, allowed maximum for palette Set2 is 8
## Returning the palette you asked for with that many colors

Histogramas

Histograma de la distribución de los ingresos

fig <- plot_ly(alpha = 0.6)
fig <- fig %>% add_histogram(x = ~promedios_ytotaj$mean.a, name = "ytotaj")
fig <- fig %>% add_histogram(x = ~promedios_yautaj$mean.a, name = "yautaj")
fig <- fig %>% add_histogram(x = ~promedios_yopraj$mean.a, name = "yopraj")
fig <- fig %>% add_histogram(x = ~promedios_ytrabaj$mean.a, name = "ytrabaj")
fig <- fig %>% layout(barmode = "overlay")
fig
# set1 <- readRDS("variables_ingreso_migra/ytotaj_mig_alf_corr.rds")
# set2 <- readRDS("variables_ingreso_migra/yautaj_mig_alf_corr.rds")
# set3 <- readRDS("variables_ingreso_migra/yopraj_mig_alf_corr.rds")
# set4 <- readRDS("variables_ingreso_migra/ytrabaj_mig_alf_corr.rds")
# write_xlsx(set1,"variables_ingreso_migra/ytotaj_mig_alf_corr.xlsx")
# write_xlsx(set2,"variables_ingreso_migra/yautaj_mig_alf_corr.xlsx")
# write_xlsx(set3,"variables_ingreso_migra/yopraj_mig_alf_corr.xlsx")
# write_xlsx(set4,"variables_ingreso_migra/ytrabaj_mig_alf_corr.xlsx")