Abstract
Nuestro objetivo es determinar cuáles variables de la CASEN pueden ser utilizadas para realizar predicciones a nivel de Zona Censal utilizando los datos del Censo 2017. El primer paso será, siempre dentro de la Casen del 2017, determinar las correlaciones entre el ingreso total promedio por comuna, y la tasa de presencia de categorías específicas de variables tales como educación, calidad de la vivienda y edad. El Coeficiente de Correlación de Pearson es un estadístico paramétrico cuya aplicación es adecuada. Se asume que ambas variables tienen una distribución aproximadamente normal.
Obtenemos el dato de “ingreso promedio anual” según CASEN 2017 (a nivel de comuna) y obtener el coeficiente de correlación respecto a diferentes variables o combinaciones variables en el CASEN 2017 también a nivel de comuna.
Leemos la base de datos:
# leemos la base de datos:
casen_2017 <- readRDS(file = "casen_2017_c.rds")
Eliminamos del dataframe los registros que no posean valores en la columna del ingreso total:
casen_2017 <- casen_2017[!is.na(casen_2017$ytotcor),]
Excluimos los outliers:
Q <- quantile(casen_2017$ytotcor, probs=c(.25, .75), na.rm = FALSE)
iqr <- IQR(casen_2017$ytotcor)
casen_2017_sin_o <- subset(casen_2017, casen_2017$ytotcor > (Q[1] - 1.5*iqr) & casen_2017$ytotcor < (Q[2]+1.5*iqr))
casen_2017_sin_o <- data.frame(lapply(casen_2017_sin_o, as.character), stringsAsFactors=FALSE)
# despleguemos los primeros 100 registros en pantalla del subset creado:
# eliminated_100 <- eliminated[c(1:100),]
# eliminated_100 %>% kbl() %>%
# kable_material(c("striped", "hover"), font_size = 12)%>%
# scroll_box(width = "100%", height = "500px")
Obtenemos los promedios de ingreso comunales:
b <- as.numeric(casen_2017_sin_o$ytotcor)
a <- casen_2017_sin_o$comuna
promedios_grupales <-aggregate(b, by=list(a), FUN = mean , na.rm=TRUE )
Veamos los primeros 5 registros:
head(promedios_grupales,5)
## Group.1 x
## 1 Algarrobo 322834.9
## 2 Alhué 308131.0
## 3 Alto Biobío 200486.6
## 4 Alto del Carmen 227130.4
## 5 Alto Hospicio 301933.4
Renombramos y agregamos una columna año:
#Asignamos nombres con sentido a las cabeceras:
names(promedios_grupales)[1] <- "comuna"
names(promedios_grupales)[2] <- "promedio_i"
promedios_grupales$año <- "2017"
Existen 346 comunas en Chile
Agregamos los codigos comunales:
codigos_comunales <- readRDS(file = "codigos_comunales_2011-2017.rds")
names(codigos_comunales)[1] <- "código"
names(codigos_comunales)[2] <- "comuna"
df_2017 = merge( x = promedios_grupales, y = codigos_comunales, by = "comuna", all.x = TRUE)
Veamos los primeros 5 registros:
head(df_2017,5)
## comuna promedio_i año código
## 1 Algarrobo 322834.9 2017 05602
## 2 Alhué 308131.0 2017 13502
## 3 Alto Biobío 200486.6 2017 08314
## 4 Alto del Carmen 227130.4 2017 03302
## 5 Alto Hospicio 301933.4 2017 01107
Agreguemos una columna con la variable de ingresos ponderada por poblacion:
library("rio")
x <- import("Microdato_Censo2017-Personas.csv")
my_summary_data <- x %>%
group_by(x$COMUNA) %>%
summarise(Count = n())
head(my_summary_data,5)
## # A tibble: 5 x 2
## `x$COMUNA` Count
## <int> <int>
## 1 1101 191468
## 2 1107 108375
## 3 1401 15711
## 4 1402 1250
## 5 1403 1728
Agregamos un cero antes de cada codigo comunal para poder hacer el merge
names(my_summary_data)[1] <- "comuna"
names(my_summary_data)[2] <- "personas"
my_summary_data
## # A tibble: 346 x 2
## comuna personas
## <int> <int>
## 1 1101 191468
## 2 1107 108375
## 3 1401 15711
## 4 1402 1250
## 5 1403 1728
## 6 1404 2730
## 7 1405 9296
## 8 2101 361873
## 9 2102 13467
## 10 2103 10186
## # ... with 336 more rows
# recogemos el campo Comuna:
codigos <- my_summary_data$comuna
# construimos una secuencia llamada rango del 1 al total de filas del dataset:
rango <- seq(1:nrow(my_summary_data))
# Creamos un string que agrega un cero a todos los registros:
cadena <- paste("0",codigos[rango], sep = "")
# El string cadena tiene o 5 o 6 digitos, los cuales siempre deben ser siempre 5 agregandole un cero al inicio de los que tienen 4.
# Para ello extraemos un substring de la cadena sobre todas las filas (rangos) comenzando desde el primero o el segundo y llegando siempre al 6.
cadena <- substr(cadena,(nchar(cadena)[rango])-(4),6)
codigos <- as.data.frame(codigos)
cadena <- as.data.frame(cadena)
comuna_corr <- cbind(my_summary_data,cadena)
head(comuna_corr,5)
## comuna personas cadena
## 1 1101 191468 01101
## 2 1107 108375 01107
## 3 1401 15711 01401
## 4 1402 1250 01402
## 5 1403 1728 01403
names(comuna_corr)[3] <- "código"
head(comuna_corr,5)
## comuna personas código
## 1 1101 191468 01101
## 2 1107 108375 01107
## 3 1401 15711 01401
## 4 1402 1250 01402
## 5 1403 1728 01403
unimos:
df_2017_2 = merge( x = df_2017, y = comuna_corr, by = "código", all.x = TRUE)
head(df_2017_2,5)
## código comuna.x promedio_i año comuna.y personas
## 1 01101 Iquique 354820.7 2017 1101 191468
## 2 01107 Alto Hospicio 301933.4 2017 1107 108375
## 3 01401 Pozo Almonte 285981.8 2017 1401 15711
## 4 01402 Camiña 262850.3 2017 1402 1250
## 5 01404 Huara 253968.5 2017 1404 2730
Agregamos la columna “Ingresos_expandidos”
df_2017_2$Ingresos_expandidos <- df_2017_2$promedio_i*df_2017_2$personas
head(df_2017_2,5)
## código comuna.x promedio_i año comuna.y personas Ingresos_expandidos
## 1 01101 Iquique 354820.7 2017 1101 191468 67936815240
## 2 01107 Alto Hospicio 301933.4 2017 1107 108375 32722034397
## 3 01401 Pozo Almonte 285981.8 2017 1401 15711 4493059532
## 4 01402 Camiña 262850.3 2017 1402 1250 328562901
## 5 01404 Huara 253968.5 2017 1404 2730 693334131
La Casen 2017 posee tres variables construídas que recogen información relativa a la calidad de la vivienda.
indmat: Indicador de Materialidad
Vivienda Aceptable
Vivienda Recuperable
Vivienda Irrecuperable
SD/NR
indsan: Indicador Saneamiento
Aceptable
Deficitario
Sin
calglobviv: Calidad Global De La Vivienda
Aceptable
Recuperable
Irrecuperable
Sin dato
Correlacionaremos el ingreso promedio comunal con la tasa de cada categoría en cada una de ellas:
Obtenemos las frecuencias
b <- casen_2017$comuna
c <- casen_2017$indmat
cross_tab = xtabs(casen_2017$expc ~ + unlist(b) + unlist(c) ,aggregate(casen_2017$expc ~ + unlist(b) + unlist(c),casen_2017,mean))
tabla <- as.data.frame(cross_tab)
d <-tabla[!(tabla$Freq == 0),]
d$anio <- "2017"
head(d,5)
## unlist.b. unlist.c. Freq anio
## 1 Iquique Vivienda Aceptable 101472 2017
## 2 Alto Hospicio Vivienda Aceptable 56346 2017
## 3 Pozo Almonte Vivienda Aceptable 7256 2017
## 4 Camiña Vivienda Aceptable 355 2017
## 5 Huara Vivienda Aceptable 1022 2017
Renombramos columnas y agregamos los codigos comunales
names(d)[1] <- "comuna"
names(d)[2] <- "indmat"
names(d)[3] <- "Frecuencia"
names(d)[4] <- "Año"
df_final = merge( x = d, y = codigos_comunales, by = "comuna", all.x = TRUE)
head(df_final,5)
## comuna indmat Frecuencia Año código
## 1 Algarrobo SD/NR 99 2017 05602
## 2 Algarrobo Vivienda Recuperable 1224 2017 05602
## 3 Algarrobo Vivienda Aceptable 10343 2017 05602
## 4 Alhué Vivienda Recuperable 659 2017 13502
## 5 Alhué Vivienda Aceptable 2502 2017 13502
# write_xlsx(df_final, "iae_etnia_sexo_2017.xlsx")
Filtramos por vivienda recuperable
df_vivi_recu <- filter(df_final, df_final$indmat == "Vivienda Recuperable")
head(df_vivi_recu,5)
## comuna indmat Frecuencia Año código
## 1 Algarrobo Vivienda Recuperable 1224 2017 05602
## 2 Alhué Vivienda Recuperable 659 2017 13502
## 3 Alto Biobío Vivienda Recuperable 748 2017 08314
## 4 Alto del Carmen Vivienda Recuperable 1942 2017 03302
## 5 Alto Hospicio Vivienda Recuperable 13232 2017 01107
Entonces, tenemos nuestra tabla de ingresos promedio
head(df_2017,5)
## comuna promedio_i año código
## 1 Algarrobo 322834.9 2017 05602
## 2 Alhué 308131.0 2017 13502
## 3 Alto Biobío 200486.6 2017 08314
## 4 Alto del Carmen 227130.4 2017 03302
## 5 Alto Hospicio 301933.4 2017 01107
y nuestra tabla de frecuencias
head(df_vivi_recu,5)
## comuna indmat Frecuencia Año código
## 1 Algarrobo Vivienda Recuperable 1224 2017 05602
## 2 Alhué Vivienda Recuperable 659 2017 13502
## 3 Alto Biobío Vivienda Recuperable 748 2017 08314
## 4 Alto del Carmen Vivienda Recuperable 1942 2017 03302
## 5 Alto Hospicio Vivienda Recuperable 13232 2017 01107
las unimos
df_vivi_recu_final = merge( x = df_2017, y = df_vivi_recu, by = "código", all.x = TRUE)
head(df_vivi_recu_final,5)
## código comuna.x promedio_i año comuna.y indmat
## 1 01101 Iquique 354820.7 2017 Iquique Vivienda Recuperable
## 2 01107 Alto Hospicio 301933.4 2017 Alto Hospicio Vivienda Recuperable
## 3 01401 Pozo Almonte 285981.8 2017 Pozo Almonte Vivienda Recuperable
## 4 01402 Camiña 262850.3 2017 Camiña Vivienda Recuperable
## 5 01404 Huara 253968.5 2017 Huara Vivienda Recuperable
## Frecuencia Año
## 1 11372 2017
## 2 13232 2017
## 3 2191 2017
## 4 213 2017
## 5 825 2017
Debemos corregir los ingresos promedio multiplicándolos por la cantidad de población.
Extraemos del Censo 2017 la cantidad de habitantes por comuna:
library("rio")
x <- import("Microdato_Censo2017-Personas.csv")
my_summary_data <- x %>%
group_by(x$COMUNA) %>%
summarise(Count = n())
head(my_summary_data,5)
## # A tibble: 5 x 2
## `x$COMUNA` Count
## <int> <int>
## 1 1101 191468
## 2 1107 108375
## 3 1401 15711
## 4 1402 1250
## 5 1403 1728
Agregamos un cero antes de cada codigo comunal para poder hacer el merge
names(my_summary_data)[1] <- "comuna"
names(my_summary_data)[2] <- "personas"
my_summary_data
## # A tibble: 346 x 2
## comuna personas
## <int> <int>
## 1 1101 191468
## 2 1107 108375
## 3 1401 15711
## 4 1402 1250
## 5 1403 1728
## 6 1404 2730
## 7 1405 9296
## 8 2101 361873
## 9 2102 13467
## 10 2103 10186
## # ... with 336 more rows
# recogemos el campo Comuna:
codigos <- my_summary_data$comuna
# construimos una secuencia llamada rango del 1 al total de filas del dataset:
rango <- seq(1:nrow(my_summary_data))
# Creamos un string que agrega un cero a todos los registros:
cadena <- paste("0",codigos[rango], sep = "")
# El string cadena tiene o 5 o 6 digitos, los cuales siempre deben ser siempre 5 agregandole un cero al inicio de los que tienen 4.
# Para ello extraemos un substring de la cadena sobre todas las filas (rangos) comenzando desde el primero o el segundo y llegando siempre al 6.
cadena <- substr(cadena,(nchar(cadena)[rango])-(4),6)
codigos <- as.data.frame(codigos)
cadena <- as.data.frame(cadena)
comuna_corr <- cbind(my_summary_data,cadena)
head(comuna_corr,5)
## comuna personas cadena
## 1 1101 191468 01101
## 2 1107 108375 01107
## 3 1401 15711 01401
## 4 1402 1250 01402
## 5 1403 1728 01403
names(comuna_corr)[3] <- "código"
head(comuna_corr,5)
## comuna personas código
## 1 1101 191468 01101
## 2 1107 108375 01107
## 3 1401 15711 01401
## 4 1402 1250 01402
## 5 1403 1728 01403
Unimos
df_vivi_recu_final_3 = merge( x = df_vivi_recu_final, y = comuna_corr, by = "código", all.x = TRUE)
head(df_vivi_recu_final_3,5)
## código comuna.x promedio_i año comuna.y indmat
## 1 01101 Iquique 354820.7 2017 Iquique Vivienda Recuperable
## 2 01107 Alto Hospicio 301933.4 2017 Alto Hospicio Vivienda Recuperable
## 3 01401 Pozo Almonte 285981.8 2017 Pozo Almonte Vivienda Recuperable
## 4 01402 Camiña 262850.3 2017 Camiña Vivienda Recuperable
## 5 01404 Huara 253968.5 2017 Huara Vivienda Recuperable
## Frecuencia Año comuna personas
## 1 11372 2017 1101 191468
## 2 13232 2017 1107 108375
## 3 2191 2017 1401 15711
## 4 213 2017 1402 1250
## 5 825 2017 1404 2730
Obtenemos la nueva variable: “variable_expandida”
df_vivi_recu_final_3$variable_expandida <- df_vivi_recu_final_3$promedio_i*df_vivi_recu_final_3$personas
head(df_vivi_recu_final_3,5)
## código comuna.x promedio_i año comuna.y indmat
## 1 01101 Iquique 354820.7 2017 Iquique Vivienda Recuperable
## 2 01107 Alto Hospicio 301933.4 2017 Alto Hospicio Vivienda Recuperable
## 3 01401 Pozo Almonte 285981.8 2017 Pozo Almonte Vivienda Recuperable
## 4 01402 Camiña 262850.3 2017 Camiña Vivienda Recuperable
## 5 01404 Huara 253968.5 2017 Huara Vivienda Recuperable
## Frecuencia Año comuna personas variable_expandida
## 1 11372 2017 1101 191468 67936815240
## 2 13232 2017 1107 108375 32722034397
## 3 2191 2017 1401 15711 4493059532
## 4 213 2017 1402 1250 328562901
## 5 825 2017 1404 2730 693334131
Correlacionamos
dat1 <- data.frame(df_vivi_recu_final_3$Frecuencia, df_vivi_recu_final_3$variable_expandida)
chart.Correlation(dat1)
head(df_final,5)
## comuna indmat Frecuencia Año código
## 1 Algarrobo SD/NR 99 2017 05602
## 2 Algarrobo Vivienda Recuperable 1224 2017 05602
## 3 Algarrobo Vivienda Aceptable 10343 2017 05602
## 4 Alhué Vivienda Recuperable 659 2017 13502
## 5 Alhué Vivienda Aceptable 2502 2017 13502
Extraemos las categorias de indmat
cate_ind_mat <- unique(df_final$indmat)
cate_ind_mat
## [1] SD/NR Vivienda Recuperable Vivienda Aceptable
## [4] Vivienda Irrecuperable
## 4 Levels: Vivienda Aceptable Vivienda Recuperable ... SD/NR
Generamos 4 tablas de vivienda cada una con la respectiva categoría. Le agregamos a cada una la tabla de los ingresos.
for (i in cate_ind_mat){
df_vivi_recu <- filter(df_final, df_final$indmat == i)
df_vivi_recu_2 <- merge( x =df_vivi_recu , y = comuna_corr, by = "código", all.x = TRUE)
#head(df_final,5)
df_vivi_recu_3 <- merge( x =df_vivi_recu_2 , y = df_2017_2, by = "código", all.x = TRUE)
# print(df_vivi_recu_2)
assign(paste("Vivienda_",i, sep = ""), df_vivi_recu_3)
}
head(`Vivienda_Vivienda Aceptable`,5)
## código comuna.x.x indmat Frecuencia Año comuna.y.x personas.x
## 1 01101 Iquique Vivienda Aceptable 101472 2017 1101 191468
## 2 01107 Alto Hospicio Vivienda Aceptable 56346 2017 1107 108375
## 3 01401 Pozo Almonte Vivienda Aceptable 7256 2017 1401 15711
## 4 01402 Camiña Vivienda Aceptable 355 2017 1402 1250
## 5 01404 Huara Vivienda Aceptable 1022 2017 1404 2730
## comuna.x.y promedio_i año comuna.y.y personas.y Ingresos_expandidos
## 1 Iquique 354820.7 2017 1101 191468 67936815240
## 2 Alto Hospicio 301933.4 2017 1107 108375 32722034397
## 3 Pozo Almonte 285981.8 2017 1401 15711 4493059532
## 4 Camiña 262850.3 2017 1402 1250 328562901
## 5 Huara 253968.5 2017 1404 2730 693334131
head(`Vivienda_Vivienda Irrecuperable`,5)
## código comuna.x.x indmat Frecuencia Año comuna.y.x
## 1 01101 Iquique Vivienda Irrecuperable 174 2017 1101
## 2 01107 Alto Hospicio Vivienda Irrecuperable 805 2017 1107
## 3 01401 Pozo Almonte Vivienda Irrecuperable 515 2017 1401
## 4 01404 Huara Vivienda Irrecuperable 378 2017 1404
## 5 01405 Pica Vivienda Irrecuperable 186 2017 1405
## personas.x comuna.x.y promedio_i año comuna.y.y personas.y
## 1 191468 Iquique 354820.7 2017 1101 191468
## 2 108375 Alto Hospicio 301933.4 2017 1107 108375
## 3 15711 Pozo Almonte 285981.8 2017 1401 15711
## 4 2730 Huara 253968.5 2017 1404 2730
## 5 9296 Pica 313007.5 2017 1405 9296
## Ingresos_expandidos
## 1 67936815240
## 2 32722034397
## 3 4493059532
## 4 693334131
## 5 2909717399
head(`Vivienda_Vivienda Recuperable`,5)
## código comuna.x.x indmat Frecuencia Año comuna.y.x
## 1 01101 Iquique Vivienda Recuperable 11372 2017 1101
## 2 01107 Alto Hospicio Vivienda Recuperable 13232 2017 1107
## 3 01401 Pozo Almonte Vivienda Recuperable 2191 2017 1401
## 4 01402 Camiña Vivienda Recuperable 213 2017 1402
## 5 01404 Huara Vivienda Recuperable 825 2017 1404
## personas.x comuna.x.y promedio_i año comuna.y.y personas.y
## 1 191468 Iquique 354820.7 2017 1101 191468
## 2 108375 Alto Hospicio 301933.4 2017 1107 108375
## 3 15711 Pozo Almonte 285981.8 2017 1401 15711
## 4 1250 Camiña 262850.3 2017 1402 1250
## 5 2730 Huara 253968.5 2017 1404 2730
## Ingresos_expandidos
## 1 67936815240
## 2 32722034397
## 3 4493059532
## 4 328562901
## 5 693334131
head(`Vivienda_SD/NR`,5)
## código comuna.x.x indmat Frecuencia Año comuna.y.x personas.x comuna.x.y
## 1 01101 Iquique SD/NR 366 2017 1101 191468 Iquique
## 2 02101 Antofagasta SD/NR 387 2017 2101 361873 Antofagasta
## 3 02201 Calama SD/NR 33 2017 2201 165731 Calama
## 4 02301 Tocopilla SD/NR 196 2017 2301 25186 Tocopilla
## 5 03101 Copiapó SD/NR 144 2017 3101 153937 Copiapó
## promedio_i año comuna.y.y personas.y Ingresos_expandidos
## 1 354820.7 2017 1101 191468 67936815240
## 2 347580.2 2017 2101 361873 125779893517
## 3 409671.3 2017 2201 165731 67895226712
## 4 246615.3 2017 2301 25186 6211253937
## 5 330075.2 2017 3101 153937 50810778473
Correlacionamos
dat1 <- data.frame(`Vivienda_Vivienda Aceptable`$Frecuencia, `Vivienda_Vivienda Aceptable`$Ingresos_expandidos)
chart.Correlation(dat1)
dat1 <- data.frame(`Vivienda_Vivienda Irrecuperable`$Frecuencia, `Vivienda_Vivienda Irrecuperable`$Ingresos_expandidos)
chart.Correlation(dat1)
dat1 <- data.frame(`Vivienda_Vivienda Recuperable`$Frecuencia, `Vivienda_Vivienda Recuperable`$Ingresos_expandidos)
chart.Correlation(dat1)
dat1 <- data.frame(`Vivienda_SD/NR`$Frecuencia, `Vivienda_SD/NR`$Ingresos_expandidos)
chart.Correlation(dat1)
La casen en e6a pregunta: ¿Cuál fue el nivel educacional más alto alcanzado o el nivel educacional actual? Profesional Completo (Carreras 4. o más años)
b <- casen_2017$comuna
c <- casen_2017$e6a
cross_tab = xtabs(casen_2017$expc ~ + unlist(b) + unlist(c) ,aggregate(casen_2017$expc ~ + unlist(b) + unlist(c),casen_2017,mean))
tabla <- as.data.frame(cross_tab)
d <-tabla[!(tabla$Freq == 0),]
d$anio <- "2017"
head(d,5)
## unlist.b. unlist.c. Freq anio
## 1 Iquique Nunca asistió 1563 2017
## 2 Alto Hospicio Nunca asistió 1374 2017
## 3 Pozo Almonte Nunca asistió 59 2017
## 4 Camiña Nunca asistió 58 2017
## 5 Huara Nunca asistió 166 2017
names(d)[1] <- "comuna"
names(d)[2] <- "universitarios"
names(d)[3] <- "Frecuencia"
names(d)[4] <- "Año"
df_final = merge( x = d, y = codigos_comunales, by = "comuna", all.x = TRUE)
head(df_final,5)
## comuna universitarios Frecuencia
## 1 Algarrobo Humanidades (Sistema Antiguo) 956
## 2 Algarrobo Primaria o Preparatoria (Sistema antiguo) 949
## 3 Algarrobo Técnico Nivel Superior Completo (Carreras 1 a 3 años) 1209
## 4 Algarrobo Jardín Infantil (Medio menor y Medio mayor) 56
## 5 Algarrobo Profesional Completo (Carreras 4 o más años) 1745
## Año código
## 1 2017 05602
## 2 2017 05602
## 3 2017 05602
## 4 2017 05602
## 5 2017 05602
df_uni <- filter(df_final, df_final$universitarios == "Profesional Completo (Carreras 4 o más años)")
head(df_uni,5)
## comuna universitarios Frecuencia Año
## 1 Algarrobo Profesional Completo (Carreras 4 o más años) 1745 2017
## 2 Alhué Profesional Completo (Carreras 4 o más años) 77 2017
## 3 Alto Biobío Profesional Completo (Carreras 4 o más años) 146 2017
## 4 Alto del Carmen Profesional Completo (Carreras 4 o más años) 112 2017
## 5 Alto Hospicio Profesional Completo (Carreras 4 o más años) 2961 2017
## código
## 1 05602
## 2 13502
## 3 08314
## 4 03302
## 5 01107
df_ing_uni_1 = merge( x = df_uni, y = comuna_corr, by = "código", all.x = TRUE)
head(df_ing_uni_1,5)
## código comuna.x universitarios Frecuencia
## 1 01101 Iquique Profesional Completo (Carreras 4 o más años) 16032
## 2 01107 Alto Hospicio Profesional Completo (Carreras 4 o más años) 2961
## 3 01401 Pozo Almonte Profesional Completo (Carreras 4 o más años) 517
## 4 01402 Camiña Profesional Completo (Carreras 4 o más años) 9
## 5 01404 Huara Profesional Completo (Carreras 4 o más años) 47
## Año comuna.y personas
## 1 2017 1101 191468
## 2 2017 1107 108375
## 3 2017 1401 15711
## 4 2017 1402 1250
## 5 2017 1404 2730
df_ing_uni_2 = merge( x = df_2017, y = df_ing_uni_1, by = "código", all.x = TRUE)
head(df_ing_uni_2,5)
## código comuna promedio_i año comuna.x
## 1 01101 Iquique 354820.7 2017 Iquique
## 2 01107 Alto Hospicio 301933.4 2017 Alto Hospicio
## 3 01401 Pozo Almonte 285981.8 2017 Pozo Almonte
## 4 01402 Camiña 262850.3 2017 Camiña
## 5 01404 Huara 253968.5 2017 Huara
## universitarios Frecuencia Año comuna.y
## 1 Profesional Completo (Carreras 4 o más años) 16032 2017 1101
## 2 Profesional Completo (Carreras 4 o más años) 2961 2017 1107
## 3 Profesional Completo (Carreras 4 o más años) 517 2017 1401
## 4 Profesional Completo (Carreras 4 o más años) 9 2017 1402
## 5 Profesional Completo (Carreras 4 o más años) 47 2017 1404
## personas
## 1 191468
## 2 108375
## 3 15711
## 4 1250
## 5 2730
df_ing_uni_2$ingreso_expandido <- df_ing_uni_2$promedio_i*df_ing_uni_2$personas
head(df_ing_uni_2,5)
## código comuna promedio_i año comuna.x
## 1 01101 Iquique 354820.7 2017 Iquique
## 2 01107 Alto Hospicio 301933.4 2017 Alto Hospicio
## 3 01401 Pozo Almonte 285981.8 2017 Pozo Almonte
## 4 01402 Camiña 262850.3 2017 Camiña
## 5 01404 Huara 253968.5 2017 Huara
## universitarios Frecuencia Año comuna.y
## 1 Profesional Completo (Carreras 4 o más años) 16032 2017 1101
## 2 Profesional Completo (Carreras 4 o más años) 2961 2017 1107
## 3 Profesional Completo (Carreras 4 o más años) 517 2017 1401
## 4 Profesional Completo (Carreras 4 o más años) 9 2017 1402
## 5 Profesional Completo (Carreras 4 o más años) 47 2017 1404
## personas ingreso_expandido
## 1 191468 67936815240
## 2 108375 32722034397
## 3 15711 4493059532
## 4 1250 328562901
## 5 2730 693334131
Correlacionamos:
dat1 <- data.frame(df_ing_uni_2$ingreso_expandido, df_ing_uni_2$Frecuencia)
chart.Correlation(dat1)
head(df_final,5)
## comuna universitarios Frecuencia
## 1 Algarrobo Humanidades (Sistema Antiguo) 956
## 2 Algarrobo Primaria o Preparatoria (Sistema antiguo) 949
## 3 Algarrobo Técnico Nivel Superior Completo (Carreras 1 a 3 años) 1209
## 4 Algarrobo Jardín Infantil (Medio menor y Medio mayor) 56
## 5 Algarrobo Profesional Completo (Carreras 4 o más años) 1745
## Año código
## 1 2017 05602
## 2 2017 05602
## 3 2017 05602
## 4 2017 05602
## 5 2017 05602
Extraemos las categorias de universitarios
cate_uni <- unique(df_final$universitarios)
cate_uni
## [1] Humanidades (Sistema Antiguo)
## [2] Primaria o Preparatoria (Sistema antiguo)
## [3] Técnico Nivel Superior Completo (Carreras 1 a 3 años)
## [4] Jardín Infantil (Medio menor y Medio mayor)
## [5] Profesional Completo (Carreras 4 o más años)
## [6] Educación Media Científico-Humanista
## [7] Técnica, Comercial, Industrial o Normalista (Sistema Antiguo
## [8] Profesional Incompleto (Carreras 4 o más años)
## [9] Nunca asistió
## [10] Educación Básica
## [11] Postgrado Incompleto
## [12] Postgrado Completo
## [13] Educación Media Técnica Profesional
## [14] Técnico Nivel Superior Incompleto (Carreras 1 a 3 años)
## [15] No sabe/no responde
## [16] Prekinder/Kinder (Transición menor y Transición Mayor)
## [17] Educación Especial (Diferencial)
## [18] Sala cuna
## 18 Levels: Nunca asistió ... No sabe/no responde
Generamos 18 tablas de educacion cada una con la respectiva categoría. Le agregamos a cada una la tabla de los ingresos.
for (i in cate_uni){
df_vivi_recu <- filter(df_final, df_final$universitarios == i)
df_vivi_recu_2 <- merge( x =df_vivi_recu , y = comuna_corr, by = "código", all.x = TRUE)
#head(df_final,5)
df_vivi_recu_3 <- merge( x =df_vivi_recu_2 , y = df_2017_2, by = "código", all.x = TRUE)
# print(df_vivi_recu_2)
assign(paste("Educacion_",i, sep = ""), df_vivi_recu_3)
}
head(`Educacion_Educación Básica`,5)
## código comuna.x.x universitarios Frecuencia Año comuna.y.x personas.x
## 1 01101 Iquique Educación Básica 10198 2017 1101 191468
## 2 01107 Alto Hospicio Educación Básica 15670 2017 1107 108375
## 3 01401 Pozo Almonte Educación Básica 2274 2017 1401 15711
## 4 01402 Camiña Educación Básica 221 2017 1402 1250
## 5 01404 Huara Educación Básica 564 2017 1404 2730
## comuna.x.y promedio_i año comuna.y.y personas.y Ingresos_expandidos
## 1 Iquique 354820.7 2017 1101 191468 67936815240
## 2 Alto Hospicio 301933.4 2017 1107 108375 32722034397
## 3 Pozo Almonte 285981.8 2017 1401 15711 4493059532
## 4 Camiña 262850.3 2017 1402 1250 328562901
## 5 Huara 253968.5 2017 1404 2730 693334131
Correlacionamos
dat1 <- data.frame(`Educacion_Educación Básica`$Frecuencia, `Educacion_Educación Básica`$Ingresos_expandidos)
chart.Correlation(dat1)
La Casen 2017 pregunta en v6 ¿Cuál es el material que predomina en el techo de la vivienda? una respuesta es: “Planchas metálicas (zinc, cobre, etc.)”