Índice:

Introducción

1. Recordemos que las cuatro preguntas cualitativas de la generación de los ingresos (PCGI) son:

¿Cuál es su ocupación u oficio? o9a
¿Qué hace usted en su trabajo o negocio principal? o9b
¿A qué se dedica o qué hace el negocio, empresa o institución que le paga? o21
¿A qué se dedica o qué hace el negocio, empresa o institución donde trabaja? o22

2. Las variables de ingreso a utilizar serán:

Tipo
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

3. Variables de tipo de empleo existentes y faltantes:

La variable o9a de la pregunta ¿Cuál es su ocupación u oficio?, se encuentra presente en los años 2013, 2015 y 2017, mientras que en el año 2006 se encuentra la variable C_O12 y en el año 2009 se encuentra la variable C_O11, pero en el año 2011 falta variable.

La variable o9b de la pregunta ¿Qué hace usted en su trabajo o negocio principal?, se encuentra presente en los años 2013, 2015 y 2017, mientras que en el año 2006 se encuentra la variable C_O13 y en el año 2009 se encuentra la variable C_O12, pero en el año 2011 falta variable.

La variable o21 de la pregunta ¿A qué se dedica o qué hace el negocio, empresa o institución que le paga?, se encuentra presente en los años 2015 y 2017, pero en los años 2006, 2009, 2011 y 2013 falta variable.

La variable o22 de la pregunta ¿A qué se dedica o qué hace el negocio, empresa o institución donde trabaja?, se encuentra presente en los años 2015 y 2017, mientras que en el año 2013 se encuentra la variable o23, pero en los años 2006, 2009 y 2011 falta variable.


Tabla 1: ¿Cuál es su ocupación u oficio? o9a

Generación de la tabla de contingencia para el 2017.

1. Leemos la base de datos del 2017:

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

2. Excluimos los outliers:

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

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

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

3. Generamos los promedios grupales dentro de tablas de contingencia sobre la variable ytrabajocor, considerando las categorías comuna, alfabetismo, etnia, sexo y o9a(¿Cuál es su ocupación u oficio?):

a <- eliminated$ytrabajocor
b <- eliminated$comuna
c <- eliminated$o9a #¿Cuál es su ocupación u oficio?
d <- eliminated$e1 #alfabetismo
e <- eliminated$r3 #etnia
f <- eliminated$sexo

promedios_grupales <-aggregate(a, by=list(b, c, d, e, f), FUN = mean , na.rm = TRUE)
promedios_grupales <- promedios_grupales[!(is.na(promedios_grupales$"Group.2") | promedios_grupales$"Group.2"==""), ]
head(promedios_grupales,5)
##      Group.1                   Group.2           Group.3 Group.4 Group.5 mean.a
## 14     Arica    ACOMODADOR DE CAMIONES Sí, lee y escribe  Aimara  Hombre 413000
## 15   Iquique             ADMINISTRADOR Sí, lee y escribe  Aimara  Hombre 276000
## 16 La Serena             ADMINISTRADOR Sí, lee y escribe  Aimara  Hombre 600000
## 17     Arica ADMINISTRADOR AMASANDERÍA Sí, lee y escribe  Aimara  Hombre 304167
## 18     Arica    ADMINISTRADOR CULTIVOS Sí, lee y escribe  Aimara  Hombre 645834

4. Generamos las desviaciones standard asociadas a los rangos de ingresos por comuna:

promedios_grupales_sd <-aggregate(a, by=list(b, c, d, e, f), FUN = sd , na.rm = TRUE)
promedios_grupales_sd <- promedios_grupales_sd[!(is.na(promedios_grupales_sd$"Group.2") | promedios_grupales_sd$"Group.2"==""), ]
head(promedios_grupales_sd,5)

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

promedios_grupales_gini <-aggregate(a, by=list(b, c, d, e, f), FUN = gini , na.rm = TRUE)
promedios_grupales_gini <- promedios_grupales_gini[!(is.na(promedios_grupales_gini$"Group.2") | promedios_grupales_gini$"Group.2"==""), ]
head(promedios_grupales_gini,3)
##      Group.1                Group.2           Group.3 Group.4 Group.5 gini.a
## 14     Arica ACOMODADOR DE CAMIONES Sí, lee y escribe  Aimara  Hombre      0
## 15   Iquique          ADMINISTRADOR Sí, lee y escribe  Aimara  Hombre      0
## 16 La Serena          ADMINISTRADOR Sí, lee y escribe  Aimara  Hombre      0

6. 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)

7. Asignamos los nombres correctos a las cabeceras:

names(d)[1] <- "Comuna"
names(d)[2] <- "¿Cuál es su ocupación u oficio?"
names(d)[3] <- "Alfabetismo"
names(d)[4] <- "Etnia"
names(d)[5] <- "Sexo"
names(d)[6] <- "Promedio del Ingreso"
names(d)[7] <- "Desviación standard"
names(d)[8] <- "Gini"
names(d)[9] <- "Año"

head(d,3)

8. 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.

1. Leemos la base de datos del 2015:

# dataset <- readRDS(file = "casen_2015_c.rds")
ab_2015 <- readRDS(file = "casen_2015_c.rds")

2. Excluimos los outliers:

ab_2015 <- ab_2015[!is.na(ab_2015$ytrabajoCor),]

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

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

3. Generamos los promedios grupales dentro de tablas de contingencia sobre la variable ytrabajoCor, considerando las categorías comuna, alfabetismo, etnia, sexo y o9a(¿Cuál es su ocupación u oficio?):

a <- eliminated$ytrabajoCor
b <- eliminated$comuna
c <- eliminated$o9a #¿Cuál es su ocupación u oficio?
d <- eliminated$e1 #alfabetismo
e <- eliminated$r3 #etnia
f <- eliminated$sexo

promedios_grupales <-aggregate(a, by=list(b, c, d, e, f), FUN = mean , na.rm = TRUE)
promedios_grupales <- promedios_grupales[!(is.na(promedios_grupales$"Group.2") | promedios_grupales$"Group.2"==""), ]
head(promedios_grupales,5)
##          Group.1                            Group.2           Group.3 Group.4
## 14  Pozo Almonte             Operario eléctrico WIN Sí, lee y escribe  Aimara
## 15  Pozo Almonte           Administrador(a) de casa Sí, lee y escribe  Aimara
## 16      Coquimbo    Administrador(a) de una empresa Sí, lee y escribe  Aimara
## 17 Alto Hospicio Administrador(a) en empresa puerto Sí, lee y escribe  Aimara
## 18  Pozo Almonte             Administrador(a) hotel Sí, lee y escribe  Aimara
##    Group.5 mean.a
## 14  Hombre 161667
## 15  Hombre 350000
## 16  Hombre 410000
## 17  Hombre 400000
## 18  Hombre 480000

4. Generamos las desviaciones standard asociadas a los rangos de ingresos por comuna:

promedios_grupales_sd <-aggregate(a, by=list(b, c, d, e, f), FUN = sd , na.rm = TRUE)
promedios_grupales_sd <- promedios_grupales_sd[!(is.na(promedios_grupales_sd$"Group.2") | promedios_grupales_sd$"Group.2"==""), ]
head(promedios_grupales_sd,5)

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

promedios_grupales_gini <-aggregate(a, by=list(b, c, d, e, f), FUN = gini , na.rm = TRUE)
promedios_grupales_gini <- promedios_grupales_gini[!(is.na(promedios_grupales_gini$"Group.2") | promedios_grupales_gini$"Group.2"==""), ]
head(promedios_grupales_gini,3)
##         Group.1                         Group.2           Group.3 Group.4
## 14 Pozo Almonte          Operario eléctrico WIN Sí, lee y escribe  Aimara
## 15 Pozo Almonte        Administrador(a) de casa Sí, lee y escribe  Aimara
## 16     Coquimbo Administrador(a) de una empresa Sí, lee y escribe  Aimara
##    Group.5 gini.a
## 14  Hombre      0
## 15  Hombre      0
## 16  Hombre      0

6. 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 <- "2015"
head(d,5)

7. Asignamos los nombres correctos a las cabeceras:

names(d)[1] <- "Comuna"
names(d)[2] <- "¿Cuál es su ocupación u oficio?"
names(d)[3] <- "Alfabetismo"
names(d)[4] <- "Etnia"
names(d)[5] <- "Sexo"
names(d)[6] <- "Promedio del Ingreso"
names(d)[7] <- "Desviación standard"
names(d)[8] <- "Gini"
names(d)[9] <- "Año"

head(d,3)

8. 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_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.

1. Leemos la base de datos del 2013:

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

2. Excluimos los outliers:

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

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

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

3. Generamos los promedios grupales dentro de tablas de contingencia sobre la variable ytrabajoCor, considerando las categorías comuna, alfabetismo, etnia, sexo y o9a(¿Cuál es su ocupación u oficio?):

a <- eliminated$ytrabajoCor
b <- eliminated$comuna
c <- eliminated$o9a #¿Cuál es su ocupación u oficio?
d <- eliminated$e1 #alfabetismo
e <- eliminated$r6 #etnia
f <- eliminated$sexo

promedios_grupales <-aggregate(a, by=list(b, c, d, e, f), FUN = mean , na.rm = TRUE)
promedios_grupales <- promedios_grupales[!(is.na(promedios_grupales$"Group.2") | promedios_grupales$"Group.2"==""), ]
head(promedios_grupales,5)
##          Group.1           Group.2           Group.3 Group.4 Group.5   mean.a
## 10         Arica ADMINISTRA CAMION Sí, lee y escribe  Aymara  Hombre 200000.0
## 11         Arica     ADMINISTRADOR Sí, lee y escribe  Aymara  Hombre 615833.5
## 12         Arica    ADMINISTRATIVA Sí, lee y escribe  Aymara  Hombre 450000.0
## 13 Alto Hospicio    ADMINISTRATIVO Sí, lee y escribe  Aymara  Hombre 500000.0
## 14         Arica    ADMINISTRATIVO Sí, lee y escribe  Aymara  Hombre 437821.8

4. Generamos las desviaciones standard asociadas a los rangos de ingresos por comuna:

promedios_grupales_sd <-aggregate(a, by=list(b, c, d, e, f), FUN = sd , na.rm = TRUE)
promedios_grupales_sd <- promedios_grupales_sd[!(is.na(promedios_grupales_sd$"Group.2") | promedios_grupales_sd$"Group.2"==""), ]
head(promedios_grupales_sd,5)

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

promedios_grupales_gini <-aggregate(a, by=list(b, c, d, e, f), FUN = gini , na.rm = TRUE)
promedios_grupales_gini <- promedios_grupales_gini[!(is.na(promedios_grupales_gini$"Group.2") | promedios_grupales_gini$"Group.2"==""), ]
head(promedios_grupales_gini,3)
##    Group.1           Group.2           Group.3 Group.4 Group.5     gini.a
## 10   Arica ADMINISTRA CAMION Sí, lee y escribe  Aymara  Hombre 0.00000000
## 11   Arica     ADMINISTRADOR Sí, lee y escribe  Aymara  Hombre 0.04262475
## 12   Arica    ADMINISTRATIVA Sí, lee y escribe  Aymara  Hombre 0.16666667

6. 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 <- "2013"
head(d,5)

7. Asignamos los nombres correctos a las cabeceras:

names(d)[1] <- "Comuna"
names(d)[2] <- "¿Cuál es su ocupación u oficio?"
names(d)[3] <- "Alfabetismo"
names(d)[4] <- "Etnia"
names(d)[5] <- "Sexo"
names(d)[6] <- "Promedio del Ingreso"
names(d)[7] <- "Desviación standard"
names(d)[8] <- "Gini"
names(d)[9] <- "Año"

head(d,3)

8. 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 2009.

1. Leemos la base de datos del 2009:

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

2. Excluimos los outliers:

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

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

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

3. Generamos los promedios grupales dentro de tablas de contingencia sobre la variable YTRABAJ, considerando las categorías comuna, alfabetismo, etnia, sexo y o9a(¿Cuál es su ocupación u oficio?):

a <- eliminated$YTRABAJ
b <- eliminated$COMUNA
c <- eliminated$C_O12 #¿Cuál es su ocupación u oficio?
d <- eliminated$E1 #alfabetismo
e <- eliminated$T5 #etnia
f <- eliminated$SEXO

promedios_grupales <-aggregate(a, by=list(b, c, d, e, f), FUN = mean , na.rm = TRUE)
promedios_grupales <- promedios_grupales[!(is.na(promedios_grupales$"Group.2") | promedios_grupales$"Group.2"==""), ]
head(promedios_grupales,5)
##        Group.1                                                      Group.2
## 1        Putre      Directores de departamentos de venta y comercialización
## 2 Pozo Almonte Gerentes de empresa de agricultura, caza, silvicultura y pes
## 3  San Nicolás                                           Ingenieros civiles
## 4   Concepción                                Profesionales de la enseñanza
## 5 Pozo Almonte          Maestros de nivel superior de la enseñanza primaria
##   Group.3 Group.4 Group.5 mean.a
## 1      Sí  Aymara  Hombre 515667
## 2      Sí  Aymara  Hombre 200265
## 3      Sí  Aymara  Hombre 542638
## 4      Sí  Aymara  Hombre 575120
## 5      Sí  Aymara  Hombre 276250

4. Generamos las desviaciones standard asociadas a los rangos de ingresos por comuna:

promedios_grupales_sd <-aggregate(a, by=list(b, c, d, e, f), FUN = sd , na.rm = TRUE)
promedios_grupales_sd <- promedios_grupales_sd[!(is.na(promedios_grupales_sd$"Group.2") | promedios_grupales_sd$"Group.2"==""), ]
head(promedios_grupales_sd,5)

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

promedios_grupales_gini <-aggregate(a, by=list(b, c, d, e, f), FUN = gini , na.rm = TRUE)
promedios_grupales_gini <- promedios_grupales_gini[!(is.na(promedios_grupales_gini$"Group.2") | promedios_grupales_gini$"Group.2"==""), ]
head(promedios_grupales_gini,3)
##        Group.1                                                      Group.2
## 1        Putre      Directores de departamentos de venta y comercialización
## 2 Pozo Almonte Gerentes de empresa de agricultura, caza, silvicultura y pes
## 3  San Nicolás                                           Ingenieros civiles
##   Group.3 Group.4 Group.5    gini.a
## 1      Sí  Aymara  Hombre 0.0000000
## 2      Sí  Aymara  Hombre 0.3974359
## 3      Sí  Aymara  Hombre 0.0000000

6. 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)

7. Asignamos los nombres correctos a las cabeceras:

names(d)[1] <- "Comuna"
names(d)[2] <- "¿Cuál es su ocupación u oficio?"
names(d)[3] <- "Alfabetismo"
names(d)[4] <- "Etnia"
names(d)[5] <- "Sexo"
names(d)[6] <- "Promedio del Ingreso"
names(d)[7] <- "Desviación standard"
names(d)[8] <- "Gini"
names(d)[9] <- "Año"

head(d,3)

8. 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.

1. Leemos la base de datos del 2006:

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

2. Excluimos los outliers:

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

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

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

3. Generamos los promedios grupales dentro de tablas de contingencia sobre la variable YTRABAJ, considerando las categorías comuna, alfabetismo, etnia, sexo y o9a(¿Cuál es su ocupación u oficio?):

a <- eliminated$YTRABAJ
b <- eliminated$COMUNA
c <- eliminated$C_O11 #¿Cuál es su ocupación u oficio?
d <- eliminated$E1 #alfabetismo
e <- eliminated$T4 #etnia
f <- eliminated$SEXO

promedios_grupales <-aggregate(a, by=list(b, c, d, e, f), FUN = mean , na.rm = TRUE)
promedios_grupales <- promedios_grupales[!(is.na(promedios_grupales$"Group.2") | promedios_grupales$"Group.2"==""), ]
head(promedios_grupales,5)
##    Group.1 Group.2 Group.3 Group.4 Group.5 mean.a
## 1   Camiña    1311      Sí  Aymara  Hombre 286520
## 2 Colchane    1311      Sí  Aymara  Hombre 218183
## 3    Arica    1311      Sí  Aymara  Hombre 347447
## 4    Putre    1311      Sí  Aymara  Hombre 371322
## 5   Camiña    1314      Sí  Aymara  Hombre 395200

4. Generamos las desviaciones standard asociadas a los rangos de ingresos por comuna:

promedios_grupales_sd <-aggregate(a, by=list(b, c, d, e, f), FUN = sd , na.rm = TRUE)
promedios_grupales_sd <- promedios_grupales_sd[!(is.na(promedios_grupales_sd$"Group.2") | promedios_grupales_sd$"Group.2"==""), ]
head(promedios_grupales_sd,5)

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

promedios_grupales_gini <-aggregate(a, by=list(b, c, d, e, f), FUN = gini , na.rm = TRUE)
promedios_grupales_gini <- promedios_grupales_gini[!(is.na(promedios_grupales_gini$"Group.2") | promedios_grupales_gini$"Group.2"==""), ]
head(promedios_grupales_gini,3)
##    Group.1 Group.2 Group.3 Group.4 Group.5    gini.a
## 1   Camiña    1311      Sí  Aymara  Hombre 0.0000000
## 2 Colchane    1311      Sí  Aymara  Hombre 0.4207546
## 3    Arica    1311      Sí  Aymara  Hombre 0.1421814

6. 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)

7. Asignamos los nombres correctos a las cabeceras:

names(d)[1] <- "Comuna"
names(d)[2] <- "¿Cuál es su ocupación u oficio?"
names(d)[3] <- "Alfabetismo"
names(d)[4] <- "Etnia"
names(d)[5] <- "Sexo"
names(d)[6] <- "Promedio del Ingreso"
names(d)[7] <- "Desviación standard"
names(d)[8] <- "Gini"
names(d)[9] <- "Año"

head(d,3)

8. 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_2013, df_2015, df_2017)
head(uni_parcial,5)
##   Comuna ¿Cuál es su ocupación u oficio? Alfabetismo
## 1  Aisén                            7436          Sí
## 2  Aisén                            3211          Sí
## 3  Aisén                            6111          Sí
## 4  Aisén                            8273          Sí
## 5  Aisén                            8290          Sí
##                                   Etnia   Sexo Promedio del Ingreso
## 1 No pertenece a ningún pueblo indígena  Mujer                98800
## 2 No pertenece a ningún pueblo indígena  Mujer               162441
## 3 No pertenece a ningún pueblo indígena Hombre               303650
## 4 No pertenece a ningún pueblo indígena Hombre               200485
## 5 No pertenece a ningún pueblo indígena  Mujer               245430
##   Desviación standard      Gini  Año Código
## 1                  NA 0.0000000 2006  11201
## 2                  NA 0.0000000 2006  11201
## 3            129471.3 0.1507492 2006  11201
## 4                  NA 0.0000000 2006  11201
## 5                  NA 0.0000000 2006  11201
saveRDS(uni_parcial,"Etnia-Ingreso_del_trabajo-PCGI001.rds")
uni_parcial_leido <- readRDS("Etnia-Ingreso_del_trabajo-PCGI001.rds")
head(uni_parcial_leido,5)
##   Comuna ¿Cuál es su ocupación u oficio? Alfabetismo
## 1  Aisén                            7436          Sí
## 2  Aisén                            3211          Sí
## 3  Aisén                            6111          Sí
## 4  Aisén                            8273          Sí
## 5  Aisén                            8290          Sí
##                                   Etnia   Sexo Promedio del Ingreso
## 1 No pertenece a ningún pueblo indígena  Mujer                98800
## 2 No pertenece a ningún pueblo indígena  Mujer               162441
## 3 No pertenece a ningún pueblo indígena Hombre               303650
## 4 No pertenece a ningún pueblo indígena Hombre               200485
## 5 No pertenece a ningún pueblo indígena  Mujer               245430
##   Desviación standard      Gini  Año Código
## 1                  NA 0.0000000 2006  11201
## 2                  NA 0.0000000 2006  11201
## 3            129471.3 0.1507492 2006  11201
## 4                  NA 0.0000000 2006  11201
## 5                  NA 0.0000000 2006  11201
#write_xlsx(uni_parcial,"Etnia-Ingreso_total-PCGI001.xlsx")

Tabla 2: ¿Qué hace usted en su trabajo o negocio principal? o9b

Generación de la tabla de contingencia para el 2017.

1. Leemos la base de datos del 2017:

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

2. Excluimos los outliers:

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

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

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

3. Generamos los promedios grupales dentro de tablas de contingencia sobre la variable ytrabajocor, considerando las categorías comuna, alfabetismo, etnia, sexo y o9b(¿Qué hace usted en su trabajo o negocio principal?):

a <- eliminated$ytrabajocor
b <- eliminated$comuna
c <- eliminated$o9b #¿Qué hace usted en su trabajo o negocio principal?
d <- eliminated$e1 #alfabetismo
e <- eliminated$r3 #etnia
f <- eliminated$sexo

promedios_grupales <-aggregate(a, by=list(b, c, d, e, f), FUN = mean , na.rm = TRUE)
promedios_grupales <- promedios_grupales[!(is.na(promedios_grupales$"Group.2") | promedios_grupales$"Group.2"==""), ]
head(promedios_grupales,5)
##      Group.1                       Group.2           Group.3 Group.4 Group.5
## 14   Iquique    (NEXSO MINERAL ) SUPERVISA Sí, lee y escribe  Aimara  Hombre
## 15   Iquique                 ADM Y GESTIÓN Sí, lee y escribe  Aimara  Hombre
## 16    Camiña ADMINISTRA ARRIENDO DE HOSTAL Sí, lee y escribe  Aimara  Hombre
## 17 Camarones       ADMINISTRA CONSTRUCTORA Sí, lee y escribe  Aimara  Hombre
## 18   Iquique   ADMINISTRA EMPRESA FAMILIAR Sí, lee y escribe  Aimara  Hombre
##    mean.a
## 14 310000
## 15 200000
## 16 312500
## 17 700000
## 18 276000

4. Generamos las desviaciones standard asociadas a los rangos de ingresos por comuna:

promedios_grupales_sd <-aggregate(a, by=list(b, c, d, e, f), FUN = sd , na.rm = TRUE)
promedios_grupales_sd <- promedios_grupales_sd[!(is.na(promedios_grupales_sd$"Group.2") | promedios_grupales_sd$"Group.2"==""), ]
head(promedios_grupales_sd,5)

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

promedios_grupales_gini <-aggregate(a, by=list(b, c, d, e, f), FUN = gini , na.rm = TRUE)
promedios_grupales_gini <- promedios_grupales_gini[!(is.na(promedios_grupales_gini$"Group.2") | promedios_grupales_gini$"Group.2"==""), ]
head(promedios_grupales_gini,3)
##    Group.1                       Group.2           Group.3 Group.4 Group.5
## 14 Iquique    (NEXSO MINERAL ) SUPERVISA Sí, lee y escribe  Aimara  Hombre
## 15 Iquique                 ADM Y GESTIÓN Sí, lee y escribe  Aimara  Hombre
## 16  Camiña ADMINISTRA ARRIENDO DE HOSTAL Sí, lee y escribe  Aimara  Hombre
##    gini.a
## 14      0
## 15      0
## 16      0

6. 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)

7. Asignamos los nombres correctos a las cabeceras:

names(d)[1] <- "Comuna"
names(d)[2] <- "¿Qué hace usted en su trabajo o negocio principal?"
names(d)[3] <- "Alfabetismo"
names(d)[4] <- "Etnia"
names(d)[5] <- "Sexo"
names(d)[6] <- "Promedio del Ingreso"
names(d)[7] <- "Desviación standard"
names(d)[8] <- "Gini"
names(d)[9] <- "Año"

head(d,3)

8. 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.

1. Leemos la base de datos del 2015:

# dataset <- readRDS(file = "casen_2015_c.rds")
ab_2015 <- readRDS(file = "casen_2015_c.rds")

2. Excluimos los outliers:

ab_2015 <- ab_2015[!is.na(ab_2015$ytrabajoCor),]

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

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

3. Generamos los promedios grupales dentro de tablas de contingencia sobre la variable ytrabajoCor, considerando las categorías comuna, alfabetismo, etnia, sexo y o9b(¿Qué hace usted en su trabajo o negocio principal?):

a <- eliminated$ytrabajoCor
b <- eliminated$comuna
c <- eliminated$o9b #¿Qué hace usted en su trabajo o negocio principal?
d <- eliminated$e1 #alfabetismo
e <- eliminated$r3 #etnia
f <- eliminated$sexo

promedios_grupales <-aggregate(a, by=list(b, c, d, e, f), FUN = mean , na.rm = TRUE)
promedios_grupales <- promedios_grupales[!(is.na(promedios_grupales$"Group.2") | promedios_grupales$"Group.2"==""), ]
head(promedios_grupales,5)
##        Group.1                                   Group.2           Group.3
## 14    Coquimbo             Administra complejo turístico Sí, lee y escribe
## 15       Arica   Administra y atiende su local de comida Sí, lee y escribe
## 16     Iquique           Administración operaciones RRHH Sí, lee y escribe
## 17 Puente Alto Administrador(a) en producción de metales Sí, lee y escribe
## 18       Putre              Administrar central de taxis Sí, lee y escribe
##    Group.4 Group.5 mean.a
## 14  Aimara  Hombre 410000
## 15  Aimara  Hombre 210000
## 16  Aimara  Hombre 858333
## 17  Aimara  Hombre 450000
## 18  Aimara  Hombre 300000

4. Generamos las desviaciones standard asociadas a los rangos de ingresos por comuna:

promedios_grupales_sd <-aggregate(a, by=list(b, c, d, e, f), FUN = sd , na.rm = TRUE)
promedios_grupales_sd <- promedios_grupales_sd[!(is.na(promedios_grupales_sd$"Group.2") | promedios_grupales_sd$"Group.2"==""), ]
head(promedios_grupales_sd,5)

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

promedios_grupales_gini <-aggregate(a, by=list(b, c, d, e, f), FUN = gini , na.rm = TRUE)
promedios_grupales_gini <- promedios_grupales_gini[!(is.na(promedios_grupales_gini$"Group.2") | promedios_grupales_gini$"Group.2"==""), ]
head(promedios_grupales_gini,3)
##     Group.1                                 Group.2           Group.3 Group.4
## 14 Coquimbo           Administra complejo turístico Sí, lee y escribe  Aimara
## 15    Arica Administra y atiende su local de comida Sí, lee y escribe  Aimara
## 16  Iquique         Administración operaciones RRHH Sí, lee y escribe  Aimara
##    Group.5 gini.a
## 14  Hombre      0
## 15  Hombre      0
## 16  Hombre      0

6. 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 <- "2015"
head(d,5)

7. Asignamos los nombres correctos a las cabeceras:

names(d)[1] <- "Comuna"
names(d)[2] <- "¿Qué hace usted en su trabajo o negocio principal?"
names(d)[3] <- "Alfabetismo"
names(d)[4] <- "Etnia"
names(d)[5] <- "Sexo"
names(d)[6] <- "Promedio del Ingreso"
names(d)[7] <- "Desviación standard"
names(d)[8] <- "Gini"
names(d)[9] <- "Año"

head(d,3)

8. 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_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.

1. Leemos la base de datos del 2013:

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

2. Excluimos los outliers:

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

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

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

3. Generamos los promedios grupales dentro de tablas de contingencia sobre la variable ytrabajoCor, considerando las categorías comuna, alfabetismo, etnia, sexo y o9b(¿Qué hace usted en su trabajo o negocio principal?):

a <- eliminated$ytrabajoCor
b <- eliminated$comuna
c <- eliminated$o9b #¿Qué hace usted en su trabajo o negocio principal?
d <- eliminated$e1 #alfabetismo
e <- eliminated$r6 #etnia
f <- eliminated$sexo

promedios_grupales <-aggregate(a, by=list(b, c, d, e, f), FUN = mean , na.rm = TRUE)
promedios_grupales <- promedios_grupales[!(is.na(promedios_grupales$"Group.2") | promedios_grupales$"Group.2"==""), ]
head(promedios_grupales,5)
##          Group.1                           Group.2           Group.3 Group.4
## 10       Iquique ADMINISTRA CUADRILLA TRABAJADORES Sí, lee y escribe  Aymara
## 11         Arica     ADMINISTRA PAPELEO DE ESCUELA Sí, lee y escribe  Aymara
## 12         Arica                ADMINISTRA PARCELA Sí, lee y escribe  Aymara
## 13 Alto Hospicio             ADMINISTRA SU EMPRESA Sí, lee y escribe  Aymara
## 14       Iquique     ADMINISTRACION DE INSTITUCION Sí, lee y escribe  Aymara
##    Group.5 mean.a
## 10  Hombre 500000
## 11  Hombre 380000
## 12  Hombre 563334
## 13  Hombre 160000
## 14  Hombre 700000

4. Generamos las desviaciones standard asociadas a los rangos de ingresos por comuna:

promedios_grupales_sd <-aggregate(a, by=list(b, c, d, e, f), FUN = sd , na.rm = TRUE)
promedios_grupales_sd <- promedios_grupales_sd[!(is.na(promedios_grupales_sd$"Group.2") | promedios_grupales_sd$"Group.2"==""), ]
head(promedios_grupales_sd,5)

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

promedios_grupales_gini <-aggregate(a, by=list(b, c, d, e, f), FUN = gini , na.rm = TRUE)
promedios_grupales_gini <- promedios_grupales_gini[!(is.na(promedios_grupales_gini$"Group.2") | promedios_grupales_gini$"Group.2"==""), ]
head(promedios_grupales_gini,3)
##    Group.1                           Group.2           Group.3 Group.4 Group.5
## 10 Iquique ADMINISTRA CUADRILLA TRABAJADORES Sí, lee y escribe  Aymara  Hombre
## 11   Arica     ADMINISTRA PAPELEO DE ESCUELA Sí, lee y escribe  Aymara  Hombre
## 12   Arica                ADMINISTRA PARCELA Sí, lee y escribe  Aymara  Hombre
##    gini.a
## 10      0
## 11      0
## 12      0

6. 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 <- "2013"
head(d,5)

7. Asignamos los nombres correctos a las cabeceras:

names(d)[1] <- "Comuna"
names(d)[2] <- "¿Qué hace usted en su trabajo o negocio principal?"
names(d)[3] <- "Alfabetismo"
names(d)[4] <- "Etnia"
names(d)[5] <- "Sexo"
names(d)[6] <- "Promedio del Ingreso"
names(d)[7] <- "Desviación standard"
names(d)[8] <- "Gini"
names(d)[9] <- "Año"

head(d,3)

8. 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 2009.

1. Leemos la base de datos del 2009:

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

2. Excluimos los outliers:

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

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

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

3. Generamos los promedios grupales dentro de tablas de contingencia sobre la variable YTRABAJ, considerando las categorías comuna, alfabetismo, etnia, sexo y C_O13(¿Qué hace usted en su trabajo o negocio principal?):

a <- eliminated$YTRABAJ
b <- eliminated$COMUNA
c <- eliminated$C_O13 #¿Qué hace usted en su trabajo o negocio principal?
d <- eliminated$E1 #alfabetismo
e <- eliminated$T5 #etnia
f <- eliminated$SEXO

promedios_grupales <-aggregate(a, by=list(b, c, d, e, f), FUN = mean , na.rm = TRUE)
promedios_grupales <- promedios_grupales[!(is.na(promedios_grupales$"Group.2") | promedios_grupales$"Group.2"==""), ]
head(promedios_grupales,5)
##         Group.1                                 Group.2 Group.3 Group.4 Group.5
## 1      Zapallar       Actividades no bien especificadas      Sí  Aymara  Hombre
## 2         Putre       Actividades no bien especificadas      Sí  Aymara  Hombre
## 3     Camarones Agricultura, caza, silvicultura y pesca      Sí  Aymara  Hombre
## 4 Alto Hospicio                 Producción agropecuaria      Sí  Aymara  Hombre
## 5  Pozo Almonte                 Producción agropecuaria      Sí  Aymara  Hombre
##     mean.a
## 1 278239.0
## 2 636740.0
## 3 401385.5
## 4 410800.0
## 5 236210.0

4. Generamos las desviaciones standard asociadas a los rangos de ingresos por comuna:

promedios_grupales_sd <-aggregate(a, by=list(b, c, d, e, f), FUN = sd , na.rm = TRUE)
promedios_grupales_sd <- promedios_grupales_sd[!(is.na(promedios_grupales_sd$"Group.2") | promedios_grupales_sd$"Group.2"==""), ]
head(promedios_grupales_sd,5)

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

promedios_grupales_gini <-aggregate(a, by=list(b, c, d, e, f), FUN = gini , na.rm = TRUE)
promedios_grupales_gini <- promedios_grupales_gini[!(is.na(promedios_grupales_gini$"Group.2") | promedios_grupales_gini$"Group.2"==""), ]
head(promedios_grupales_gini,3)
##     Group.1                                 Group.2 Group.3 Group.4 Group.5
## 1  Zapallar       Actividades no bien especificadas      Sí  Aymara  Hombre
## 2     Putre       Actividades no bien especificadas      Sí  Aymara  Hombre
## 3 Camarones Agricultura, caza, silvicultura y pesca      Sí  Aymara  Hombre
##       gini.a
## 1 0.00000000
## 2 0.00000000
## 3 0.04371047

6. 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)

7. Asignamos los nombres correctos a las cabeceras:

names(d)[1] <- "Comuna"
names(d)[2] <- "¿Qué hace usted en su trabajo o negocio principal?"
names(d)[3] <- "Alfabetismo"
names(d)[4] <- "Etnia"
names(d)[5] <- "Sexo"
names(d)[6] <- "Promedio del Ingreso"
names(d)[7] <- "Desviación standard"
names(d)[8] <- "Gini"
names(d)[9] <- "Año"

head(d,3)

8. 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.

1. Leemos la base de datos del 2006:

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

2. Excluimos los outliers:

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

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

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

3. Generamos los promedios grupales dentro de tablas de contingencia sobre la variable YTRABAJ, considerando las categorías comuna, alfabetismo, etnia, sexo y C_O12(¿Qué hace usted en su trabajo o negocio principal?):

a <- eliminated$YTRABAJ
b <- eliminated$COMUNA
c <- eliminated$C_O12 #¿Qué hace usted en su trabajo o negocio principal?
d <- eliminated$E1 #alfabetismo
e <- eliminated$T4 #etnia
f <- eliminated$SEXO

promedios_grupales <-aggregate(a, by=list(b, c, d, e, f), FUN = mean , na.rm = TRUE)
promedios_grupales <- promedios_grupales[!(is.na(promedios_grupales$"Group.2") | promedios_grupales$"Group.2"==""), ]
head(promedios_grupales,5)
##      Group.1              Group.2 Group.3 Group.4 Group.5   mean.a
## 1   Colchane No bien especificado      Sí  Aymara  Hombre 237120.0
## 2 Mejillones No bien especificado      Sí  Aymara  Hombre 262600.0
## 3    Iquique                 1110      Sí  Aymara  Hombre  85850.0
## 4     Camiña                 1110      Sí  Aymara  Hombre 198234.1
## 5   Colchane                 1110      Sí  Aymara  Hombre 120039.0

4. Generamos las desviaciones standard asociadas a los rangos de ingresos por comuna:

promedios_grupales_sd <-aggregate(a, by=list(b, c, d, e, f), FUN = sd , na.rm = TRUE)
promedios_grupales_sd <- promedios_grupales_sd[!(is.na(promedios_grupales_sd$"Group.2") | promedios_grupales_sd$"Group.2"==""), ]
head(promedios_grupales_sd,5)

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

promedios_grupales_gini <-aggregate(a, by=list(b, c, d, e, f), FUN = gini , na.rm = TRUE)
promedios_grupales_gini <- promedios_grupales_gini[!(is.na(promedios_grupales_gini$"Group.2") | promedios_grupales_gini$"Group.2"==""), ]
head(promedios_grupales_gini,3)
##      Group.1              Group.2 Group.3 Group.4 Group.5 gini.a
## 1   Colchane No bien especificado      Sí  Aymara  Hombre      0
## 2 Mejillones No bien especificado      Sí  Aymara  Hombre      0
## 3    Iquique                 1110      Sí  Aymara  Hombre      0

6. 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)

7. Asignamos los nombres correctos a las cabeceras:

names(d)[1] <- "Comuna"
names(d)[2] <- "¿Qué hace usted en su trabajo o negocio principal?"
names(d)[3] <- "Alfabetismo"
names(d)[4] <- "Etnia"
names(d)[5] <- "Sexo"
names(d)[6] <- "Promedio del Ingreso"
names(d)[7] <- "Desviación standard"
names(d)[8] <- "Gini"
names(d)[9] <- "Año"

head(d,3)

8. 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_2013, df_2015, df_2017)
head(uni_parcial,5)
##   Comuna ¿Qué hace usted en su trabajo o negocio principal? Alfabetismo
## 1  Aisén                                               3113          Sí
## 2  Aisén                                               1302          Sí
## 3  Aisén                                               5000          Sí
## 4  Aisén                                               1110          Sí
## 5  Aisén                                               3114          Sí
##                                   Etnia   Sexo Promedio del Ingreso
## 1 No pertenece a ningún pueblo indígena  Mujer             296266.7
## 2 No pertenece a ningún pueblo indígena  Mujer             238640.3
## 3 No pertenece a ningún pueblo indígena Hombre             304670.8
## 4 No pertenece a ningún pueblo indígena Hombre             218229.6
## 5                               Mapuche Hombre             205871.7
##   Desviación standard      Gini  Año Código
## 1           213129.94 0.2984848 2006  11201
## 2            73041.56 0.1355913 2006  11201
## 3           129580.39 0.2320726 2006  11201
## 4           114097.63 0.2892038 2006  11201
## 5            84315.85 0.1635323 2006  11201
saveRDS(uni_parcial,"Etnia-Ingreso_del_trabajo-PCGI002.rds")
uni_parcial_leido <- readRDS("Etnia-Ingreso_del_trabajo-PCGI002.rds")
head(uni_parcial_leido,5)
##   Comuna ¿Qué hace usted en su trabajo o negocio principal? Alfabetismo
## 1  Aisén                                               3113          Sí
## 2  Aisén                                               1302          Sí
## 3  Aisén                                               5000          Sí
## 4  Aisén                                               1110          Sí
## 5  Aisén                                               3114          Sí
##                                   Etnia   Sexo Promedio del Ingreso
## 1 No pertenece a ningún pueblo indígena  Mujer             296266.7
## 2 No pertenece a ningún pueblo indígena  Mujer             238640.3
## 3 No pertenece a ningún pueblo indígena Hombre             304670.8
## 4 No pertenece a ningún pueblo indígena Hombre             218229.6
## 5                               Mapuche Hombre             205871.7
##   Desviación standard      Gini  Año Código
## 1           213129.94 0.2984848 2006  11201
## 2            73041.56 0.1355913 2006  11201
## 3           129580.39 0.2320726 2006  11201
## 4           114097.63 0.2892038 2006  11201
## 5            84315.85 0.1635323 2006  11201
#write_xlsx(uni_parcial,"Etnia-Ingreso_total-PCGI001.xlsx")

Tabla 3: ¿A qué se dedica o qué hace el negocio, empresa o institución que le paga? o21

Generación de la tabla de contingencia para el 2017.

1. Leemos la base de datos del 2017:

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

2. Excluimos los outliers:

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

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

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

3. Generamos los promedios grupales dentro de tablas de contingencia sobre la variable ytrabajocor, considerando las categorías comuna, alfabetismo, etnia, sexo y o21(¿A qué se dedica o qué hace el negocio, empresa o institución que le paga?):

a <- eliminated$ytrabajocor
b <- eliminated$comuna
c <- eliminated$o21 #¿A qué se dedica o qué hace el negocio, empresa o institución que le paga?
d <- eliminated$e1 #alfabetismo
e <- eliminated$r3 #etnia
f <- eliminated$sexo

promedios_grupales <-aggregate(a, by=list(b, c, d, e, f), FUN = mean , na.rm = TRUE)
promedios_grupales <- promedios_grupales[!(is.na(promedios_grupales$"Group.2") | promedios_grupales$"Group.2"==""), ]
head(promedios_grupales,5)
##         Group.1                         Group.2           Group.3 Group.4
## 44      Iquique                 ASEO INDUSTRIAL Sí, lee y escribe  Aimara
## 45 Pozo Almonte ASEO Y ORNATO EN ZONAS PÚBLICAS Sí, lee y escribe  Aimara
## 46      Iquique          CERTIFICACIÓN DE COBRE Sí, lee y escribe  Aimara
## 47        Arica               COMPASS SERVICIOS Sí, lee y escribe  Aimara
## 48        Arica             COMPRAS CONTRATISTA Sí, lee y escribe  Aimara
##    Group.5 mean.a
## 44  Hombre 300000
## 45  Hombre 240000
## 46  Hombre 515000
## 47  Hombre 608333
## 48  Hombre 365000

4. Generamos las desviaciones standard asociadas a los rangos de ingresos por comuna:

promedios_grupales_sd <-aggregate(a, by=list(b, c, d, e, f), FUN = sd , na.rm = TRUE)
promedios_grupales_sd <- promedios_grupales_sd[!(is.na(promedios_grupales_sd$"Group.2") | promedios_grupales_sd$"Group.2"==""), ]
head(promedios_grupales_sd,5)

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

promedios_grupales_gini <-aggregate(a, by=list(b, c, d, e, f), FUN = gini , na.rm = TRUE)
promedios_grupales_gini <- promedios_grupales_gini[!(is.na(promedios_grupales_gini$"Group.2") | promedios_grupales_gini$"Group.2"==""), ]
head(promedios_grupales_gini,3)
##         Group.1                         Group.2           Group.3 Group.4
## 44      Iquique                 ASEO INDUSTRIAL Sí, lee y escribe  Aimara
## 45 Pozo Almonte ASEO Y ORNATO EN ZONAS PÚBLICAS Sí, lee y escribe  Aimara
## 46      Iquique          CERTIFICACIÓN DE COBRE Sí, lee y escribe  Aimara
##    Group.5 gini.a
## 44  Hombre      0
## 45  Hombre      0
## 46  Hombre      0

6. 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)

7. Asignamos los nombres correctos a las cabeceras:

names(d)[1] <- "Comuna"
names(d)[2] <- "¿A qué se dedica o qué hace el negocio, empresa o institución que le paga?"
names(d)[3] <- "Alfabetismo"
names(d)[4] <- "Etnia"
names(d)[5] <- "Sexo"
names(d)[6] <- "Promedio del Ingreso"
names(d)[7] <- "Desviación standard"
names(d)[8] <- "Gini"
names(d)[9] <- "Año"

head(d,3)

8. 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.

1. Leemos la base de datos del 2015:

# dataset <- readRDS(file = "casen_2015_c.rds")
ab_2015 <- readRDS(file = "casen_2015_c.rds")

2. Excluimos los outliers:

ab_2015 <- ab_2015[!is.na(ab_2015$ytrabajoCor),]

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

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

3. Generamos los promedios grupales dentro de tablas de contingencia sobre la variable ytrabajoCor, considerando las categorías comuna, alfabetismo, etnia, sexo y o21(¿A qué se dedica o qué hace el negocio, empresa o institución que le paga?):

a <- eliminated$ytrabajoCor
b <- eliminated$comuna
c <- eliminated$o21 #¿A qué se dedica o qué hace el negocio, empresa o institución que le paga?
d <- eliminated$e1 #alfabetismo
e <- eliminated$r3 #etnia
f <- eliminated$sexo

promedios_grupales <-aggregate(a, by=list(b, c, d, e, f), FUN = mean , na.rm = TRUE)
promedios_grupales <- promedios_grupales[!(is.na(promedios_grupales$"Group.2") | promedios_grupales$"Group.2"==""), ]
head(promedios_grupales,5)
##         Group.1                                       Group.2           Group.3
## 69         Pica Arriendo de maquinaria y movimiento de tierra Sí, lee y escribe
## 70 Pozo Almonte                          Arriendo maquinarias Sí, lee y escribe
## 71         Pica                              Aseo en empresas Sí, lee y escribe
## 72   Lago Ranco                         CONSTRUCCION DE CASAS Sí, lee y escribe
## 73        Putre                 Construcción de obras civiles Sí, lee y escribe
##    Group.4 Group.5   mean.a
## 69  Aimara  Hombre 466667.0
## 70  Aimara  Hombre 300000.0
## 71  Aimara  Hombre 300000.0
## 72  Aimara  Hombre 230000.0
## 73  Aimara  Hombre 295166.5

4. Generamos las desviaciones standard asociadas a los rangos de ingresos por comuna:

promedios_grupales_sd <-aggregate(a, by=list(b, c, d, e, f), FUN = sd , na.rm = TRUE)
promedios_grupales_sd <- promedios_grupales_sd[!(is.na(promedios_grupales_sd$"Group.2") | promedios_grupales_sd$"Group.2"==""), ]
head(promedios_grupales_sd,5)

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

promedios_grupales_gini <-aggregate(a, by=list(b, c, d, e, f), FUN = gini , na.rm = TRUE)
promedios_grupales_gini <- promedios_grupales_gini[!(is.na(promedios_grupales_gini$"Group.2") | promedios_grupales_gini$"Group.2"==""), ]
head(promedios_grupales_gini,3)
##         Group.1                                       Group.2           Group.3
## 69         Pica Arriendo de maquinaria y movimiento de tierra Sí, lee y escribe
## 70 Pozo Almonte                          Arriendo maquinarias Sí, lee y escribe
## 71         Pica                              Aseo en empresas Sí, lee y escribe
##    Group.4 Group.5 gini.a
## 69  Aimara  Hombre      0
## 70  Aimara  Hombre      0
## 71  Aimara  Hombre      0

6. 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 <- "2015"
head(d,5)

7. Asignamos los nombres correctos a las cabeceras:

names(d)[1] <- "Comuna"
names(d)[2] <- "¿A qué se dedica o qué hace el negocio, empresa o institución que le paga?"
names(d)[3] <- "Alfabetismo"
names(d)[4] <- "Etnia"
names(d)[5] <- "Sexo"
names(d)[6] <- "Promedio del Ingreso"
names(d)[7] <- "Desviación standard"
names(d)[8] <- "Gini"
names(d)[9] <- "Año"

head(d,3)

8. 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_2015 = merge( x = d, y = codigos_comunales, by = "Comuna", all.x = TRUE)
df_2015 <-df_2015[!(df_2015$Promedio == 0),]
head(df_2015,5)
options(scipen=999)
uni_parcial <- rbind(df_2015, df_2017)
head(uni_parcial,5)
##   Comuna
## 1  Alhué
## 2  Alhué
## 3  Alhué
## 4  Alhué
## 5  Alhué
##   ¿A qué se dedica o qué hace el negocio, empresa o institución que le paga?
## 1                                                    Empresa de excavaciones
## 2                                               Servicio de aseos en oficina
## 3                                                      Extracción de mineral
## 4                                              Servicios de cosecha en viñas
## 5                                         Servicios de traslado de empleados
##         Alfabetismo                                 Etnia   Sexo
## 1 Sí, lee y escribe                               Mapuche Hombre
## 2 Sí, lee y escribe No pertenece a ningún pueblo indígena  Mujer
## 3 Sí, lee y escribe No pertenece a ningún pueblo indígena Hombre
## 4 Sí, lee y escribe No pertenece a ningún pueblo indígena Hombre
## 5 Sí, lee y escribe No pertenece a ningún pueblo indígena Hombre
##   Promedio del Ingreso Desviación standard Gini  Año Código
## 1               118500                  NA    0 2015  13502
## 2                80000                  NA    0 2015  13502
## 3               456667                  NA    0 2015  13502
## 4               240000                  NA    0 2015  13502
## 5               520000                  NA    0 2015  13502
saveRDS(uni_parcial,"Etnia-Ingreso_del_trabajo-PCGI003.rds")
uni_parcial_leido <- readRDS("Etnia-Ingreso_del_trabajo-PCGI003.rds")
head(uni_parcial_leido,5)
##   Comuna
## 1  Alhué
## 2  Alhué
## 3  Alhué
## 4  Alhué
## 5  Alhué
##   ¿A qué se dedica o qué hace el negocio, empresa o institución que le paga?
## 1                                                    Empresa de excavaciones
## 2                                               Servicio de aseos en oficina
## 3                                                      Extracción de mineral
## 4                                              Servicios de cosecha en viñas
## 5                                         Servicios de traslado de empleados
##         Alfabetismo                                 Etnia   Sexo
## 1 Sí, lee y escribe                               Mapuche Hombre
## 2 Sí, lee y escribe No pertenece a ningún pueblo indígena  Mujer
## 3 Sí, lee y escribe No pertenece a ningún pueblo indígena Hombre
## 4 Sí, lee y escribe No pertenece a ningún pueblo indígena Hombre
## 5 Sí, lee y escribe No pertenece a ningún pueblo indígena Hombre
##   Promedio del Ingreso Desviación standard Gini  Año Código
## 1               118500                  NA    0 2015  13502
## 2                80000                  NA    0 2015  13502
## 3               456667                  NA    0 2015  13502
## 4               240000                  NA    0 2015  13502
## 5               520000                  NA    0 2015  13502
#write_xlsx(uni_parcial,"Etnia-Ingreso_total-PCGI001.xlsx")

Tabla 4: ¿A qué se dedica o qué hace el negocio, empresa o institución donde trabaja? o22

Generación de la tabla de contingencia para el 2017.

1. Leemos la base de datos del 2017:

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

2. Excluimos los outliers:

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

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

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

3. Generamos los promedios grupales dentro de tablas de contingencia sobre la variable ytrabajocor, considerando las categorías comuna, alfabetismo, etnia, sexo y o22(¿A qué se dedica o qué hace el negocio, empresa o institución donde trabaja?):

a <- eliminated$ytrabajocor
b <- eliminated$comuna
c <- eliminated$o22 #¿A qué se dedica o qué hace el negocio, empresa o institución donde trabaja?
d <- eliminated$e1 #alfabetismo
e <- eliminated$r3 #etnia
f <- eliminated$sexo

promedios_grupales <-aggregate(a, by=list(b, c, d, e, f), FUN = mean , na.rm = TRUE)
promedios_grupales <- promedios_grupales[!(is.na(promedios_grupales$"Group.2") | promedios_grupales$"Group.2"==""), ]
head(promedios_grupales,5)
##      Group.1                                    Group.2           Group.3
## 14     Arica                     ADMINISTRACIÓN PÚBLICA Sí, lee y escribe