Índice

II Tablas de contingencia sobre la variable de ingreso total personal

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

1. Introducción

Generaremos una tabla de contingencia para la casen 2017 sobre la variable ytotcor, con las categorias comuna, alfabetismo, sexo y etnia(inmigración).

Obtendremos el valor del promedio de tal ingreso para las categorías en cuestion, su desviación standard y coeficiente de Gini.

dataset_2006 <- readRDS(file = "casen_2006_c.rds")
dataset_2009 <- readRDS(file = "casen_2009_c.rds")
dataset_2011 <- readRDS(file = "casen_2011_c.rds")
dataset_2013 <- readRDS(file = "casen_2013_c.rds")
dataset_2015 <- readRDS(file = "casen_2015_c.rds")
dataset_2017 <- readRDS(file = "casen_2017_c.rds")

Vamos a desplegar tablas de contingencia sobre la variable de ingreso total, que para los años del 2013 al 2017 se llama ytotcor y del 2006 al 2011 ytotaj

INGRESO TOTAL: ytotcor-ytotaj

2017

Verifiquemos que la variable ytotcor este presente en nuestros 6 datasets

z<-dataset_2017$ytotcor
head(z,7)
## [1] 272000 159667 786932 301000 220000 200000     NA

2015

z<-dataset_2015$ytotcor
head(z,7)
## [1] 700000     NA     NA 250000 315199     NA 221805

2013

z<-dataset_2013$ytotcor
head(z,7)
## [1]  82058 401250 377000     NA     NA 300000 212584

2011

z<-dataset_2011$ytotcor
head(z,7)
## NULL

2009

z<-dataset_2009$ytotcor
head(z,7)
## NULL

2006

z<-dataset_2006$ytotcor
head(z,7)
## NULL

generación de la tabla de contingencia para el 2017

# dataset <- readRDS(file = "casen_2017_c.rds")
ab_2017 <- readRDS(file = "casen_2017_c.rds")

1.Excluimos los outliers:

ab_2017 <- ab_2017[!is.na(ab_2017$ytotcor),]

Q <- quantile(ab_2017$ytotcor, probs=c(.25, .75), na.rm = FALSE)
iqr <- IQR(ab_2017$ytotcor)

eliminated <- subset(ab_2017, ab_2017$ytotcor > (Q[1] - 1.5*iqr) & ab_2017$ytotcor < (Q[2]+1.5*iqr))
#eliminated

2. Generamos los promedios grupales

a <- eliminated$ytotcor
b <- eliminated$comuna
c <- eliminated$e1 #alfabetismo
d <- eliminated$r3 #etnia
e <- eliminated$sexo

promedios_grupales <-aggregate(a, by=list(b, c, d, e), FUN = mean , na.rm = TRUE)

head(promedios_grupales,5)

3.Generamos las desviaciones standard asociados a los rangos de ingresos por comuna

promedios_grupales_sd <-aggregate(a, by=list(b, c, d, e), FUN = sd , na.rm = TRUE)
head(promedios_grupales_sd,3)

4.Generamos los coeficientes de Gini asociados a los rangos de ingresos por comuna

promedios_grupales_gini <-aggregate(a, by=list(b, c, d, e), FUN = gini , na.rm = TRUE)
head(promedios_grupales_gini,3)
##         Group.1           Group.2 Group.3 Group.4   gini.a
## 1       Iquique Sí, lee y escribe  Aimara  Hombre 0.331560
## 2 Alto Hospicio Sí, lee y escribe  Aimara  Hombre 0.419981
## 3  Pozo Almonte Sí, lee y escribe  Aimara  Hombre 0.227497

5.Adjuntamos en una misma tabla los valores de promedio, desviación standard y Gini y generamos una nueva columna con el valor del año:

promedios_grupales$sd = promedios_grupales_sd$sd.a
promedios_grupales$gini = promedios_grupales_gini$gini.a
d<-promedios_grupales
d$Año <- "2017"
head(d,5)

6. Asignamos los nombres correctos a las cabeceras

names(d)[1] <- "Comuna"
names(d)[2] <- "Alfabetismo"
names(d)[3] <- "Etnia"
names(d)[4] <- "Sexo"
names(d)[5] <- "Promedio del Ingreso"
names(d)[6] <- "Desviación standard"
names(d)[7] <- "Gini"
names(d)[8] <- "Año"
head(d,3)

7.Asociamos a los nombres de las comunas sus códigos en una nueva columna:

codigos_comunales <- readRDS(file = "codigos_comunales_2011-2017.rds")
names(codigos_comunales)[1] <- "Código"
names(codigos_comunales)[2] <- "Comuna"
# codigos_comunales

df_2017 = merge( x = d, y = codigos_comunales, by = "Comuna", all.x = TRUE)
df_2017 <-df_2017[!(df_2017$Promedio == 0),]
head(df_2017,5)

generación de la tabla de contingencia para el 2015

# dataset <- readRDS(file = "casen_2015_c.rds")
ab_2015 <- readRDS(file = "casen_2015_c.rds")
ab_2015 <- ab_2015[!is.na(ab_2015$ytotcor),]

Q <- quantile(ab_2015$ytotcor, probs=c(.25, .75), na.rm = FALSE)
iqr <- IQR(ab_2015$ytotcor)

eliminated <- subset(ab_2015, ab_2015$ytotcor > (Q[1] - 1.5*iqr) & ab_2015$ytotcor < (Q[2]+1.5*iqr))
#eliminated
a <- eliminated$ytotcor
b <- eliminated$comuna
c <- eliminated$e1 #alfabetismo
d <- eliminated$r3 #etnia
e <- eliminated$sexo

promedios_grupales <-aggregate(a, by=list(b, c, d, e), FUN = mean , na.rm = TRUE)

head(promedios_grupales,5)
promedios_grupales_sd <-aggregate(a, by=list(b, c, d, e), FUN = sd , na.rm = TRUE)
head(promedios_grupales_sd,3)
promedios_grupales_gini <-aggregate(a, by=list(b, c, d, e), FUN = gini , na.rm = TRUE)
head(promedios_grupales_gini,3)
##         Group.1           Group.2 Group.3 Group.4    gini.a
## 1       Iquique Sí, lee y escribe  Aimara  Hombre 0.2979720
## 2 Alto Hospicio Sí, lee y escribe  Aimara  Hombre 0.3072664
## 3  Pozo Almonte Sí, lee y escribe  Aimara  Hombre 0.3189767
promedios_grupales$sd = promedios_grupales_sd$sd.a
promedios_grupales$gini = promedios_grupales_gini$gini.a
d<-promedios_grupales
d$Año <- "2015"
head(d,5)
names(d)[1] <- "Comuna"
names(d)[2] <- "Alfabetismo"
names(d)[3] <- "Etnia"
names(d)[4] <- "Sexo"
names(d)[5] <- "Promedio del Ingreso"
names(d)[6] <- "Desviación standard"
names(d)[7] <- "Gini"
names(d)[8] <- "Año"
head(d,3)
codigos_comunales <- readRDS(file = "codigos_comunales_2011-2017.rds")
names(codigos_comunales)[1] <- "Código"
names(codigos_comunales)[2] <- "Comuna"
# codigos_comunales

df_2015 = merge( x = d, y = codigos_comunales, by = "Comuna", all.x = TRUE)
df_2015 <-df_2015[!(df_2015$Promedio == 0),]
head(df_2015,5)

generación de la tabla de contingencia para el 2013

# dataset <- readRDS(file = "casen_2017_c.rds")
ab_2013 <- readRDS(file = "casen_2013_c.rds")

1.Excluimos los outliers:

ab_2013 <- ab_2013[!is.na(ab_2013$ytotcor),]

Q <- quantile(ab_2013$ytotcor, probs=c(.25, .75), na.rm = FALSE)
iqr <- IQR(ab_2013$ytotcor)

eliminated <- subset(ab_2013, ab_2013$ytotcor > (Q[1] - 1.5*iqr) & ab_2013$ytotcor < (Q[2]+1.5*iqr))
#eliminated

2. Generamos los promedios grupales dentro de tablas de contingencia sobre la variable ytotcor, comsiderando las categorias comuna, alfabetismo, etnia y sexo

a <- eliminated$ytotcor
b <- eliminated$comuna
c <- eliminated$e1 #alfabetismo
d <- eliminated$r6 #etnia
e <- eliminated$sexo

promedios_grupales <-aggregate(a, by=list(b, c, d, e), FUN = mean , na.rm = TRUE)

head(promedios_grupales,5)

3.Generamos las desviaciones standard asociados a los rangos de ingresos por comuna

promedios_grupales_sd <-aggregate(a, by=list(b, c, d, e), FUN = sd , na.rm = TRUE)
head(promedios_grupales_sd,3)

4.Generamos los coeficientes de Gini asociados a los rangos de ingresos por comuna

promedios_grupales_gini <-aggregate(a, by=list(b, c, d, e), FUN = gini , na.rm = TRUE)
head(promedios_grupales_gini,3)
##         Group.1           Group.2 Group.3 Group.4    gini.a
## 1       Iquique Sí, lee y escribe  Aymara  Hombre 0.2898126
## 2 Alto Hospicio Sí, lee y escribe  Aymara  Hombre 0.3578542
## 3  Pozo Almonte Sí, lee y escribe  Aymara  Hombre 0.4218036
promedios_grupales$sd = promedios_grupales_sd$sd.a
promedios_grupales$gini = promedios_grupales_gini$gini.a
d<-promedios_grupales
d$Año <- "2013"
head(d,5)

6. Asignamos los nombres correctos a las cabeceras

names(d)[1] <- "Comuna"
names(d)[2] <- "Alfabetismo"
names(d)[3] <- "Etnia"
names(d)[4] <- "Sexo"
names(d)[5] <- "Promedio del Ingreso"
names(d)[6] <- "Desviación standard"
names(d)[7] <- "Gini"
names(d)[8] <- "Año"
head(d,3)

7.Asociamos a los nombres de las comunas sus códigos en una nueva columna:

codigos_comunales <- readRDS(file = "codigos_comunales_2011-2017.rds")
names(codigos_comunales)[1] <- "Código"
names(codigos_comunales)[2] <- "Comuna"
# codigos_comunales

df_2013 = merge( x = d, y = codigos_comunales, by = "Comuna", all.x = TRUE)
df_2013 <-df_2013[!(df_2013$Promedio == 0),]
head(df_2013,5)

generación de la tabla de contingencia para el 2011

# dataset <- readRDS(file = "casen_2011_c.rds")
ab_2011 <- readRDS(file = "casen_2011_c.rds")

1.Excluimos los outliers:

ab_2011 <- ab_2011[!is.na(ab_2011$ytotaj),]

Q <- quantile(ab_2011$ytotaj, probs=c(.25, .75), na.rm = FALSE)
iqr <- IQR(ab_2011$ytotaj)

eliminated <- subset(ab_2011, ab_2011$ytotaj > (Q[1] - 1.5*iqr) & ab_2011$ytotaj < (Q[2]+1.5*iqr))
#eliminated

2. Generamos los promedios grupales

a <- eliminated$ytotaj
b <- eliminated$comuna
c <- eliminated$e1 #alfabetismo
d <- eliminated$r1p_cod #etnia
e <- eliminated$sexo

promedios_grupales <-aggregate(a, by=list(b, c, d, e), FUN = mean , na.rm = TRUE)

head(promedios_grupales,5)

3.Generamos las desviaciones standard asociados a los rangos de ingresos por comuna

promedios_grupales_sd <-aggregate(a, by=list(b, c, d, e), FUN = sd , na.rm = TRUE)
head(promedios_grupales_sd,3)

4.Generamos los coeficientes de Gini asociados a los rangos de ingresos por comuna

promedios_grupales_gini <-aggregate(a, by=list(b, c, d, e), FUN = gini , na.rm = TRUE)
head(promedios_grupales_gini,3)
##    Group.1           Group.2  Group.3 Group.4 gini.a
## 1  Copiapó Sí, lee y escribe Alemania  Hombre      0
## 2 Putaendo Sí, lee y escribe Alemania  Hombre      0
## 3   Colbún Sí, lee y escribe Alemania  Hombre      0

5.Adjuntamos en una misma tabla los valores de promedio, desviación standard y Gini y generamos una nueva columna con el valor del año:

promedios_grupales$sd = promedios_grupales_sd$sd.a
promedios_grupales$gini = promedios_grupales_gini$gini.a
d<-promedios_grupales
d$Año <- "2011"
head(d,5)

6. Asignamos los nombres correctos a las cabeceras

names(d)[1] <- "Comuna"
names(d)[2] <- "Alfabetismo"
names(d)[3] <- "Etnia"
names(d)[4] <- "Sexo"
names(d)[5] <- "Promedio del Ingreso"
names(d)[6] <- "Desviación standard"
names(d)[7] <- "Gini"
names(d)[8] <- "Año"
head(d,3)

7.Asociamos a los nombres de las comunas sus códigos en una nueva columna:

codigos_comunales <- readRDS(file = "codigos_comunales_2011-2017.rds")
names(codigos_comunales)[1] <- "Código"
names(codigos_comunales)[2] <- "Comuna"
# codigos_comunales

df_2011 = merge( x = d, y = codigos_comunales, by = "Comuna", all.x = TRUE)
df_2011 <-df_2011[!(df_2011$Promedio == 0),]
head(df_2011,5)

A PARTIR DE AQUI TERMINA EL TRABAJO SOBRE MIGRACIÓN EN VEZ DE ETNIA ############################################### ############################################### ###############################################

generación de la tabla de contingencia para el 2009

# dataset <- readRDS(file = "casen_2009_c.rds")
ab_2009 <- readRDS(file = "casen_2009_c.rds")

1.Excluimos los outliers:

ab_2009 <- ab_2009[!is.na(ab_2009$YTOTAJ),]

Q <- quantile(ab_2009$YTOTAJ, probs=c(.25, .75), na.rm = FALSE)
iqr <- IQR(ab_2009$YTOTAJ)

eliminated <- subset(ab_2009, ab_2009$YTOTAJ > (Q[1] - 1.5*iqr) & ab_2009$YTOTAJ < (Q[2]+1.5*iqr))

2. Generamos los promedios grupales

a <- eliminated$YTOTAJ
b <- eliminated$COMUNA
c <- eliminated$E1 #alfabetismo
d <- eliminated$T5 #etnia
e <- eliminated$SEXO

promedios_grupales <-aggregate(a, by=list(b, c, d, e), FUN = mean , na.rm = TRUE)

head(promedios_grupales,5)

3.Generamos las desviaciones standard asociados a los rangos de ingresos por comuna

promedios_grupales_sd <-aggregate(a, by=list(b, c, d, e), FUN = sd , na.rm = TRUE)
head(promedios_grupales_sd,3)

4.Generamos los coeficientes de Gini asociados a los rangos de ingresos por comuna

promedios_grupales_gini <-aggregate(a, by=list(b, c, d, e), FUN = gini , na.rm = TRUE)
head(promedios_grupales_gini,3)
##         Group.1 Group.2 Group.3 Group.4    gini.a
## 1       Iquique      Sí  Aymara  Hombre 0.4778100
## 2 Alto Hospicio      Sí  Aymara  Hombre 0.2559381
## 3  Pozo Almonte      Sí  Aymara  Hombre 0.2997865

5.Adjuntamos en una misma tabla los valores de promedio, desviación standard y Gini y generamos una nueva columna con el valor del año:

promedios_grupales$sd = promedios_grupales_sd$sd.a
promedios_grupales$gini = promedios_grupales_gini$gini.a
d<-promedios_grupales
d$Año <- "2009"
head(d,5)

6. Asignamos los nombres correctos a las cabeceras

names(d)[1] <- "Comuna"
names(d)[2] <- "Alfabetismo"
names(d)[3] <- "Etnia"
names(d)[4] <- "Sexo"
names(d)[5] <- "Promedio del Ingreso"
names(d)[6] <- "Desviación standard"
names(d)[7] <- "Gini"
names(d)[8] <- "Año"
head(d,3)

7.Asociamos a los nombres de las comunas sus códigos en una nueva columna:

codigos_comunales <- readRDS(file = "codigos_comunales_2009.rds")
names(codigos_comunales)[1] <- "Código"
names(codigos_comunales)[2] <- "Comuna"
# codigos_comunales

df_2009 = merge( x = d, y = codigos_comunales, by = "Comuna", all.x = TRUE)
df_2009 <-df_2009[!(df_2009$Promedio == 0),]
head(df_2009,5)

generación de la tabla de contingencia para el 2006

# dataset <- readRDS(file = "casen_2006_c.rds")
ab_2006 <- readRDS(file = "casen_2006_c.rds")

1.Excluimos los outliers:

ab_2006 <- ab_2006[!is.na(ab_2006$YTOTAJ),]

Q <- quantile(ab_2006$YTOTAJ, probs=c(.25, .75), na.rm = FALSE)
iqr <- IQR(ab_2006$YTOTAJ)

eliminated <- subset(ab_2006, ab_2006$YTOTAJ > (Q[1] - 1.5*iqr) & ab_2006$YTOTAJ < (Q[2]+1.5*iqr))

2. Generamos los promedios grupales

a <- eliminated$YTOTAJ
b <- eliminated$COMUNA
c <- eliminated$E1 #alfabetismo
d <- eliminated$T4 #etnia
e <- eliminated$SEXO

promedios_grupales <-aggregate(a, by=list(b, c, d, e), FUN = mean , na.rm = TRUE)

head(promedios_grupales,5)

3.Generamos las desviaciones standard asociados a los rangos de ingresos por comuna

promedios_grupales_sd <-aggregate(a, by=list(b, c, d, e), FUN = sd , na.rm = TRUE)
head(promedios_grupales_sd,3)

4.Generamos los coeficientes de Gini asociados a los rangos de ingresos por comuna

promedios_grupales_gini <-aggregate(a, by=list(b, c, d, e), FUN = gini , na.rm = TRUE)
head(promedios_grupales_gini,3)
##    Group.1 Group.2 Group.3 Group.4    gini.a
## 1  Iquique      Sí  Aymara  Hombre 0.3516928
## 2   Camiña      Sí  Aymara  Hombre 0.3511544
## 3 Colchane      Sí  Aymara  Hombre 0.4907693

5.Adjuntamos en una misma tabla los valores de promedio, desviación standard y Gini y generamos una nueva columna con el valor del año:

promedios_grupales$sd = promedios_grupales_sd$sd.a
promedios_grupales$gini = promedios_grupales_gini$gini.a
d<-promedios_grupales
d$Año <- "2006"
head(d,5)

6. Asignamos los nombres correctos a las cabeceras

names(d)[1] <- "Comuna"
names(d)[2] <- "Alfabetismo"
names(d)[3] <- "Etnia"
names(d)[4] <- "Sexo"
names(d)[5] <- "Promedio del Ingreso"
names(d)[6] <- "Desviación standard"
names(d)[7] <- "Gini"
names(d)[8] <- "Año"
head(d,3)

7.Asociamos a los nombres de las comunas sus códigos en una nueva columna:

codigos_comunales <- readRDS(file = "codigos_comunales_2006.rds")
names(codigos_comunales)[1] <- "Código"
names(codigos_comunales)[2] <- "Comuna"
# codigos_comunales

df_2006 = merge( x = d, y = codigos_comunales, by = "Comuna", all.x = TRUE)
df_2006 <-df_2006[!(df_2006$Promedio == 0),]
head(df_2006,5)
options(scipen=999)
uni_parcial <- rbind(df_2006,df_2009,df_2011,df_2013,df_2015,df_2017)
head(uni_parcial,5)
##   Comuna Alfabetismo                                 Etnia   Sexo
## 1  Aisén          Sí                              Kawaskar Hombre
## 2  Aisén          Sí                               Mapuche Hombre
## 3  Aisén          Sí No pertenece a ningún pueblo indígena  Mujer
## 4  Aisén          No No pertenece a ningún pueblo indígena  Mujer
## 5  Aisén          Sí No pertenece a ningún pueblo indígena Hombre
##   Promedio del Ingreso Desviación standard      Gini  Año Código
## 1              47386.0                  NA 0.0000000 2006  11201
## 2             206218.9           103383.51 0.2792730 2006  11201
## 3             141209.0           101011.54 0.4004693 2006  11201
## 4              64652.2            41793.76 0.2441928 2006  11201
## 5             221528.5           120760.74 0.3104046 2006  11201
saveRDS(uni_parcial,"uni_parcial.rds")
uni_parcial_leido <- readRDS("uni_parcial.rds")
head(uni_parcial_leido,5)
##   Comuna Alfabetismo                                 Etnia   Sexo
## 1  Aisén          Sí                              Kawaskar Hombre
## 2  Aisén          Sí                               Mapuche Hombre
## 3  Aisén          Sí No pertenece a ningún pueblo indígena  Mujer
## 4  Aisén          No No pertenece a ningún pueblo indígena  Mujer
## 5  Aisén          Sí No pertenece a ningún pueblo indígena Hombre
##   Promedio del Ingreso Desviación standard      Gini  Año Código
## 1              47386.0                  NA 0.0000000 2006  11201
## 2             206218.9           103383.51 0.2792730 2006  11201
## 3             141209.0           101011.54 0.4004693 2006  11201
## 4              64652.2            41793.76 0.2441928 2006  11201
## 5             221528.5           120760.74 0.3104046 2006  11201
write_xlsx(uni_parcial,"uni_parcial.xlsx")
objeto_leido <- read_excel("uni_parcial.xlsx")
head(objeto_leido,5)
## # A tibble: 5 x 9
##   Comuna Alfabetismo Etnia Sexo  `Promedio del I~ `Desviación sta~  Gini Año  
##   <chr>  <chr>       <chr> <chr>            <dbl>            <dbl> <dbl> <chr>
## 1 Aisén  Sí          Kawa~ Homb~           47386               NA  0     2006 
## 2 Aisén  Sí          Mapu~ Homb~          206219.          103384. 0.279 2006 
## 3 Aisén  Sí          No p~ Mujer          141209.          101012. 0.400 2006 
## 4 Aisén  No          No p~ Mujer           64652.           41794. 0.244 2006 
## 5 Aisén  Sí          No p~ Homb~          221528.          120761. 0.310 2006 
## # ... with 1 more variable: Código <chr>