Correlaciones entre variables del CENSO de Viviendas, Hogares y Personas e Ingresos promedios comunales de la CASEN 2017.

VE-CC-AJ

DataIntelligence

Martes 13-07-2021

1 Nivel nacional URBANO (código 1)

1.1 Pregunta P05: Origen del agua

Esta pregunta posee 4 categorias de respuesta:

1 Red pública
2 Pozo o noria
3 Camión aljibe
4 Río, vertiente, estero, canal, lago, etc.

Leemos las respuestas a la pregunta P05 del censo de viviendas 2017 y obtenemos la tabla de frecuencias por categoría:

tabla_con_clave <- readRDS("censos/censo_viviendas_con_clave_17.rds")
tabla_con_clave_u <- filter(tabla_con_clave, tabla_con_clave$AREA == 1)
b <- tabla_con_clave_u$COMUNA
c <- tabla_con_clave_u$P05
cross_tab =  xtabs( ~ unlist(b) + unlist(c))
tabla <- as.data.frame(cross_tab)
d <-tabla[!(tabla$Freq == 0),]
d$anio <- "2017"

categorias <- sort(unique(tabla_con_clave_u$P05 ))
categorias <- as.data.frame(categorias)
names(categorias)[1] <- "cat"

categorias <- filter(categorias, categorias$cat != 99)
categorias <- filter(categorias, categorias$cat != 98)

d_t <- filter(d,d$unlist.c. == categorias[1,1])
for(i in categorias[2,1]:categorias[nrow(categorias),1]){
  d_i <- filter(d,d$unlist.c. == i)
  d_t = merge( x = d_t, y = d_i, by = "unlist.b.", all.x = TRUE)
}
 
# Agregamos un cero a los códigos comunales de 4 dígitos, que queda en la columna llamada **código**:
codigos <- d_t$unlist.b.
rango <- seq(1:nrow(d_t))
cadena <- paste("0",codigos[rango], sep = "")
cadena <- substr(cadena,(nchar(cadena)[rango])-(4),6)
codigos <- as.data.frame(codigos)
cadena <- as.data.frame(cadena)
comuna_corr <- cbind(d_t,cadena)
comuna_corr <- comuna_corr[,-c(1),drop=FALSE] 
 
names(comuna_corr)[ncol(comuna_corr)] <- "código"
 
quitar <- seq(3,(ncol(comuna_corr)-1),3)

comuna_corr <- comuna_corr[,-c(quitar),drop=FALSE]
names(comuna_corr)[2] <- "Red pública"
names(comuna_corr)[4] <- "Pozo o noria"
names(comuna_corr)[6] <- "Camión aljibe"
names(comuna_corr)[8] <- " Río, vertiente, estero, canal, lago, etc." 

renombrar <- seq(1,(ncol(comuna_corr)-2),2)
vv <- 0
for (v in renombrar) {
  vv <- vv+1
  contador <- paste0("categoria_",vv)
  names(comuna_corr )[v] <- contador
}

ingresos_expandidos_2017 <- readRDS("Ingresos_expandidos_urbano_17.rds")
df_2017_2 = merge( x = comuna_corr, y = ingresos_expandidos_2017, by = "código", all.x = TRUE)

df_2017_2 <- df_2017_2[, -c(2,4,6,8,10)]

kbl(head(df_2017_2,50)) %>% kable_styling(bootstrap_options = c("striped", "hover")) %>% kable_paper() %>% scroll_box(width = "100%", height = "300px")
código Red pública Pozo o noria Camión aljibe Río, vertiente, estero, canal, lago, etc. ingresos_expandidos
01101 54612 22 57 15 71930106513
01107 26433 75 1622 21 33766585496
01401 2617 20 75 1 4966851883
01404 327 3 15 5 NA
01405 1106 132 28 5 3068247619
02101 95652 151 1032 550 133249367039
02102 2629 2 255 1 4979702302
02104 2818 1 339 2 5109282942
02201 44502 33 299 31 71981127235
02203 1361 5 136 11 4869699464
02301 7504 2 31 1 7207910819
02302 1348 NA 2 NA 3084818966
03101 42747 142 1351 31 52819016037
03102 4544 8 272 NA 5628052276
03103 2559 7 286 2 4671058718
03201 3105 NA 150 2 3499391196
03202 3902 1 311 5 4895805596
03301 13501 22 141 51 16404810756
03303 1231 7 137 6 2035200054
03304 2663 5 151 3 3424422750
04101 60898 310 90 61 61749247282
04102 61957 266 769 73 61277269093
04103 2962 8 66 7 2855312920
04104 370 10 10 4 908664019
04106 5321 9 10 10 7058750373
04201 6631 27 60 22 8703433491
04202 621 5 69 3 2122281844
04203 5656 37 35 19 6098444926
04204 4753 47 180 11 7690585032
04301 26376 59 110 57 31197719080
04302 2046 12 15 8 3124505460
04303 4691 14 80 8 6930326684
04304 1737 62 92 6 2328107498
05101 94666 452 1442 125 90946261553
05102 5629 41 22 3 9352095757
05103 12814 11 22 3 14075920021
05105 3511 1146 682 14 5490274928
05107 7196 1365 99 14 9839456903
05109 114028 392 1051 139 118563074323
05201 2247 23 11 5 NA
05301 19133 14 52 7 23711104774
05302 3200 94 10 3 3654416747
05303 2440 25 2 3 2855998928
05304 3586 17 4 15 4140022481
05401 8289 208 52 19 9183080280
05402 3788 19 11 4 5094117762
05403 1737 8 3 3 1921527704
05404 1351 54 23 1 2333781007
05405 1564 83 4 4 2160521991
05501 24708 102 47 33 26131733924

1.1.0.1 Tabla a correlacionar:

#union_final_urb_corr  <- union_final_urb[,-c(1)]
write_xlsx(df_2017_2, "P05_urbano.xlsx")

1.1.0.2 Estadísticos básicos de nuestras frecuencias

data_sum <- summary(df_2017_2)

kbl(head(data_sum)) %>%
  kable_styling(bootstrap_options = c("striped", "hover")) %>%
  kable_paper() %>%
  scroll_box(width = "100%", height = "500px")
código Red pública Pozo o noria Camión aljibe Río, vertiente, estero, canal, lago, etc. ingresos_expandidos
Length:319 Min. : 278 Min. : 1.00 Min. : 1.00 Min. : 1.00 Min. :7.054e+08
Class :character 1st Qu.: 1737 1st Qu.: 10.00 1st Qu.: 5.00 1st Qu.: 3.00 1st Qu.:2.954e+09
Mode :character Median : 4289 Median : 35.00 Median : 14.50 Median : 8.00 Median :5.697e+09
NA Mean : 14806 Mean : 90.21 Mean : 73.45 Mean : 30.41 Mean :1.784e+10
NA 3rd Qu.: 15112 3rd Qu.: 95.00 3rd Qu.: 51.25 3rd Qu.: 21.00 3rd Qu.:1.857e+10
NA Max. :162197 Max. :1365.00 Max. :1622.00 Max. :635.00 Max. :1.870e+11

1.1.0.3 Gráficas:

library(plotly)
df_2017_fig <- df_2017_2
fig <- plot_ly(df_2017_fig, x = df_2017_fig$código, y = df_2017_fig[,2]
, name = colnames(df_2017_fig[2]), type = 'scatter', mode = 'lines',
                 width=7000, height=400) 

grafica_fn <- function(g){
  fig <<- fig %>% add_trace(y = ~df_2017_fig[,g]
, name = colnames(df_2017_fig[g]), mode = 'lines',
                 width=7000, height=400) 
}
for (g in 3:(ncol(df_2017_2))) {
grafica_fn(g)

}

fig <- fig %>% layout(autosize = T)

fig 

2 \(\tau\) de Kendall

df_2017_2f <- filter(df_2017_2, df_2017_2$ingresos_expandidos != 'is.na')
III <- seq(2,(ncol(df_2017_2))-1,1)
my_data <- df_2017_2f[, c(III)]
tabla <- cor(x=my_data, y=df_2017_2f$ingresos_expandidos, method=c("kendall"), use = "pairwise")
tabla <- as.data.frame(tabla)
tabla
##                                                   V1
## Red pública                                0.8572234
## Pozo o noria                               0.3219002
## Camión aljibe                              0.2240917
##  Río, vertiente, estero, canal, lago, etc. 0.3011445
names(tabla)[1] <- "Correlación"
saveRDS(tabla,"tablas_de_corr/C_P05_URBANO.rds")
tabla %>% rownames_to_column("Origen del agua")%>%  
  mutate(Correlación = cell_spec(Correlación, background=ifelse(Correlación == max(Correlación), "#fc0303", "#5cb81f"))) %>% 
  kbl(booktabs = T, linesep = "", escape=FALSE) %>% 
    kable_paper(full_width = F) %>%
    column_spec(1, color = "black")%>%
    column_spec(2, color = "white")
Origen del agua Correlación
Red pública 0.857223394562826
Pozo o noria 0.321900158823769
Camión aljibe 0.224091677702162
Río, vertiente, estero, canal, lago, etc. 0.301144544442406

2.1 Kendall

df_2017_fig <- df_2017_fig[,-c(1)]
chart.Correlation(df_2017_fig, histogram=TRUE, method = c( "kendall"), pch=20)

2.2 Pearson

chart.Correlation(df_2017_fig, histogram=TRUE, method = c( "pearson"), pch=20)

2.3 Spearman

chart.Correlation(df_2017_fig, histogram=TRUE, method = c( "spearman"), pch=20)




3 Nivel nacional RURAL (código 2)

3.1 Pregunta P05: Origen del agua

Esta pregunta posee 4 categorias de respuesta:

1 Red pública
2 Pozo o noria
3 Camión aljibe
4 Río, vertiente, estero, canal, lago, etc.

Leemos las respuestas a la pregunta P05 del censo de viviendas 2017 y obtenemos la tabla de frecuencias por categoría:

tabla_con_clave <- readRDS("censos/censo_viviendas_con_clave_17.rds")
tabla_con_clave_u <- filter(tabla_con_clave, tabla_con_clave$AREA == 2)
b <- tabla_con_clave_u$COMUNA
c <- tabla_con_clave_u$P05
cross_tab =  xtabs( ~ unlist(b) + unlist(c))
tabla <- as.data.frame(cross_tab)
d <-tabla[!(tabla$Freq == 0),]
d$anio <- "2017"

categorias <- sort(unique(tabla_con_clave_u$P05 ))
categorias <- as.data.frame(categorias)
names(categorias)[1] <- "cat"

categorias <- filter(categorias, categorias$cat != 99)
categorias <- filter(categorias, categorias$cat != 98)

d_t <- filter(d,d$unlist.c. == categorias[1,1])
for(i in categorias[2,1]:categorias[nrow(categorias),1]){
  d_i <- filter(d,d$unlist.c. == i)
  d_t = merge( x = d_t, y = d_i, by = "unlist.b.", all.x = TRUE)
}
 
# Agregamos un cero a los códigos comunales de 4 dígitos, que queda en la columna llamada **código**:
codigos <- d_t$unlist.b.
rango <- seq(1:nrow(d_t))
cadena <- paste("0",codigos[rango], sep = "")
cadena <- substr(cadena,(nchar(cadena)[rango])-(4),6)
codigos <- as.data.frame(codigos)
cadena <- as.data.frame(cadena)
comuna_corr <- cbind(d_t,cadena)
comuna_corr <- comuna_corr[,-c(1),drop=FALSE] 
 
names(comuna_corr)[ncol(comuna_corr)] <- "código"
 
quitar <- seq(3,(ncol(comuna_corr)-1),3)

comuna_corr <- comuna_corr[,-c(quitar),drop=FALSE]
names(comuna_corr)[2] <- "Red pública"
names(comuna_corr)[4] <- "Pozo o noria"
names(comuna_corr)[6] <- "Camión aljibe"
names(comuna_corr)[8] <- " Río, vertiente, estero, canal, lago, etc." 

renombrar <- seq(1,(ncol(comuna_corr)-2),2)
vv <- 0
for (v in renombrar) {
  vv <- vv+1
  contador <- paste0("categoria_",vv)
  names(comuna_corr )[v] <- contador
}

ingresos_expandidos_2017 <- readRDS("Ingresos_expandidos_rural_17.rds")
df_2017_2 = merge( x = comuna_corr, y = ingresos_expandidos_2017, by = "código", all.x = TRUE)

df_2017_2 <- df_2017_2[, -c(2,4,6,8,10)]

kbl(head(df_2017_2,50)) %>% kable_styling(bootstrap_options = c("striped", "hover")) %>% kable_paper() %>% scroll_box(width = "100%", height = "300px")
código Red pública Pozo o noria Camión aljibe Río, vertiente, estero, canal, lago, etc. ingresos_expandidos
01101 337 8 409 12 52180713221
01107 8 2 34 NA NA
01401 689 370 209 66 3822052676
01402 352 10 4 92 283538750
01403 177 23 1 252 NA
01404 229 82 50 225 645917134
01405 204 69 28 23 2502464414
02101 96 NA 192 21 NA
02102 56 1 77 1 NA
02103 331 NA 9 1 3290056742
02104 37 1 256 4 3844002134
02201 378 21 452 102 39457387800
02202 83 NA 10 NA NA
02203 1141 32 48 104 2985112297
03101 449 233 256 16 38699138722
03102 258 8 517 8 NA
03103 341 151 381 56 4034940816
03201 229 4 175 1 NA
03202 203 NA 36 8 4545663075
03301 955 127 478 358 11299454698
03302 1405 102 107 127 1039186477
03303 462 57 322 18 1425547554
03304 199 110 176 10 2089066548
04101 2840 1147 1262 465 44274327972
04102 2151 939 837 111 46918711304
04103 79 80 218 27 2397612293
04104 741 145 155 14 982530309
04105 1403 14 29 144 786383423
04106 2884 191 151 127 4695441470
04201 2152 487 466 256 5109649759
04202 1283 463 585 345 1558270441
04203 606 292 338 198 3704185607
04204 3125 148 250 144 5681637894
04301 5235 951 1473 173 25683781418
04302 1620 434 537 171 2300832587
04303 4382 295 433 251 5835357638
04304 751 494 449 133 1817183694
04305 1435 61 82 80 778712384
05101 21 95 150 11 74756602991
05102 1612 1201 108 26 6779018483
05103 237 118 416 5 NA
05104 307 4 NA 38 NA
05105 394 363 170 39 4295363979
05107 374 1060 93 63 9102071069
05201 62 11 48 13 NA
05301 859 172 38 147 18714795984
05302 1092 145 66 13 3471349123
05303 509 65 76 12 2512319225
05304 1963 204 51 200 3995512770
05401 2445 356 346 48 6111000517

3.1.0.1 Tabla a correlacionar:

#union_final_urb_corr  <- union_final_urb[,-c(1)]
write_xlsx(df_2017_2, "P05_rural.xlsx")

3.1.0.2 Estadísticos básicos de nuestras frecuencias

data_sum <- summary(df_2017_2)

kbl(head(data_sum)) %>%
  kable_styling(bootstrap_options = c("striped", "hover")) %>%
  kable_paper() %>%
  scroll_box(width = "100%", height = "500px")
código Red pública Pozo o noria Camión aljibe Río, vertiente, estero, canal, lago, etc. ingresos_expandidos
Length:313 Min. : 1 Min. : 1.0 Min. : 1.00 Min. : 1.0 Min. :2.792e+08
Class :character 1st Qu.: 326 1st Qu.: 116.0 1st Qu.: 39.25 1st Qu.: 27.0 1st Qu.:1.817e+09
Mode :character Median : 730 Median : 346.0 Median : 98.50 Median : 106.0 Median :3.604e+09
NA Mean :1161 Mean : 618.1 Mean : 165.89 Mean : 270.4 Mean :8.276e+09
NA 3rd Qu.:1580 3rd Qu.: 855.8 3rd Qu.: 199.75 3rd Qu.: 317.0 3rd Qu.:7.285e+09
NA Max. :9046 Max. :11255.0 Max. :1824.00 Max. :3365.0 Max. :7.585e+10

3.1.0.3 Gráficas:

library(plotly)
df_2017_fig <- df_2017_2
fig <- plot_ly(df_2017_fig, x = df_2017_fig$código, y = df_2017_fig[,2]
, name = colnames(df_2017_fig[2]), type = 'scatter', mode = 'lines',
                 width=7000, height=400) 

grafica_fn <- function(g){
  fig <<- fig %>% add_trace(y = ~df_2017_fig[,g]
, name = colnames(df_2017_fig[g]), mode = 'lines',
                 width=7000, height=400) 
}
for (g in 3:(ncol(df_2017_2))) {
grafica_fn(g)

}

fig <- fig %>% layout(autosize = T)

fig 

4 \(\tau\) de Kendall

df_2017_2f <- filter(df_2017_2, df_2017_2$ingresos_expandidos != 'is.na')
III <- seq(2,(ncol(df_2017_2))-1,1)
my_data <- df_2017_2f[, c(III)]
tabla <- cor(x=my_data, y=df_2017_2f$ingresos_expandidos, method=c("kendall"), use = "pairwise")
tabla <- as.data.frame(tabla)
tabla
##                                                     V1
## Red pública                                 0.28850039
## Pozo o noria                                0.23943452
## Camión aljibe                               0.13472218
##  Río, vertiente, estero, canal, lago, etc. -0.08578231
names(tabla)[1] <- "Correlación"
saveRDS(tabla,"tablas_de_corr/C_P05_RURAL.rds")
tabla %>% rownames_to_column("Origen del agua")%>%  
  mutate(Correlación = cell_spec(Correlación, background=ifelse(Correlación == max(Correlación), "#fc0303", "#5cb81f"))) %>% 
  kbl(booktabs = T, linesep = "", escape=FALSE) %>% 
    kable_paper(full_width = F) %>%
    column_spec(1, color = "black")%>%
    column_spec(2, color = "white")
Origen del agua Correlación
Red pública 0.288500393210231
Pozo o noria 0.239434522935901
Camión aljibe 0.134722178993687
Río, vertiente, estero, canal, lago, etc. -0.0857823065222773

4.1 Kendall

df_2017_fig <- df_2017_fig[,-c(1)]
chart.Correlation(df_2017_fig, histogram=TRUE, method = c( "kendall"), pch=20)

4.2 Pearson

chart.Correlation(df_2017_fig, histogram=TRUE, method = c( "pearson"), pch=20)

4.3 Spearman

chart.Correlation(df_2017_fig, histogram=TRUE, method = c( "spearman"), pch=20)