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)

Cantidad de dormitorios: Todo espacio habitable de una vivienda que sea cerrado por paredes o tabiques y que tenga espacio suficiente para dar cabida a una cama y sólo se use para dormir. Esto se ve reflejado en aquellas viviendas particulares con moradores presentes que declararon en la pregunta 4 ¿Cuántas piezas de esta vivienda se usan exclusivamente como dormitorio? una categoría entre 0 y 6.

1.1 Pregunta P04: Número de piezas usadas exclusivamente como dormitorio

Esta pregunta posee 7 categorias de respuesta:

0 piezas
1 pieza
2 piezas
3 piezas
4 piezas
5 piezas
6 o más piezas

Leemos las respuestas a la pregunta P04 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$P04
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$P03B ))
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] <- "0 piezas"
names(comuna_corr )[4] <- "1 pieza"
names(comuna_corr )[6] <- "2 piezas"
names(comuna_corr )[8] <- "3 piezas"
names(comuna_corr )[10] <- "4 piezas"
names(comuna_corr )[12] <- " 5 piezas"
names(comuna_corr )[14] <- "6 o más piezas"

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,12,14,16)]
kbl(head(df_2017_2,50)) %>% kable_styling(bootstrap_options = c("striped", "hover")) %>% kable_paper() %>% scroll_box(width = "100%", height = "300px")
código 0 piezas 1 pieza 2 piezas 3 piezas 4 piezas 5 piezas 6 o más piezas ingresos_expandidos
01101 10905 14546 16918 6071 2209 1707 NA 71930106513
01107 4917 10146 8111 2699 788 434 NA 33766585496
01401 613 1030 608 233 64 61 NA 4966851883
01404 120 103 73 29 9 7 NA NA
01405 272 448 332 123 42 22 NA 3068247619
02101 12956 27797 33708 12275 4067 3209 NA 133249367039
02102 414 809 990 321 131 118 NA 4979702302
02104 419 986 986 440 149 94 NA 5109282942
02201 8439 12312 13384 5757 1746 1163 NA 71981127235
02203 596 454 222 73 34 37 NA 4869699464
02301 814 2476 2881 789 223 132 NA 7207910819
02302 384 574 324 43 7 6 NA 3084818966
03101 6268 15833 15327 4861 1139 480 NA 52819016037
03102 670 1793 1400 556 135 73 NA 5628052276
03103 547 1179 723 273 71 28 NA 4671058718
03201 512 1228 985 387 91 37 NA 3499391196
03202 828 1239 1683 281 32 19 NA 4895805596
03301 1528 4815 4673 1641 422 196 NA 16404810756
03303 221 497 372 177 60 20 NA 2035200054
03304 422 1106 792 284 73 51 NA 3424422750
04101 5958 19416 24551 7390 1685 696 NA 61749247282
04102 6515 20595 24154 7145 1820 800 NA 61277269093
04103 432 1066 972 352 108 64 NA 2855312920
04104 52 169 119 36 5 2 NA 908664019
04106 603 2379 1545 482 138 42 NA 7058750373
04201 952 2443 2126 767 194 81 NA 8703433491
04202 102 289 208 58 21 14 NA 2122281844
04203 805 2217 1704 600 152 64 NA 6098444926
04204 647 1716 1554 640 201 86 NA 7690585032
04301 2768 9851 9159 2948 708 258 NA 31197719080
04302 330 824 617 180 49 26 NA 3124505460
04303 739 2083 1286 377 95 43 NA 6930326684
04304 269 811 517 184 47 20 NA 2328107498
05101 15795 36744 30774 7847 1825 989 NA 90946261553
05102 715 2407 1848 479 104 25 NA 9352095757
05103 1795 4244 4171 1655 500 144 NA 14075920021
05105 931 1895 1605 559 136 62 NA 5490274928
05107 1464 3468 2623 644 137 92 NA 9839456903
05109 18524 41450 39319 9962 2214 893 NA 118563074323
05201 540 847 601 162 33 18 NA NA
05301 2244 7375 7220 1513 269 87 NA 23711104774
05302 382 1388 1127 230 45 12 NA 3654416747
05303 329 1026 737 248 43 14 NA 2855998928
05304 394 1608 1237 217 37 11 NA 4140022481
05401 1103 3646 2718 669 123 46 NA 9183080280
05402 469 1463 1262 382 87 33 NA 5094117762
05403 218 686 537 197 41 22 NA 1921527704
05404 175 572 437 150 38 16 NA 2333781007
05405 181 551 550 218 61 29 NA 2160521991
05501 2977 10025 8827 2024 375 107 NA 26131733924

1.1.0.1 Tabla a correlacionar:

#union_final_urb_corr  <- union_final_urb[,-c(1)]
write_xlsx(df_2017_2, "P04_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 0 piezas 1 pieza 2 piezas 3 piezas 4 piezas 5 piezas 6 o más piezas ingresos_expandidos
Length:319 Min. : 50.0 Min. : 76.0 Min. : 42 Min. : 13 Min. : 4.0 Min. : 1.0 Min. : NA Min. :7.054e+08
Class :character 1st Qu.: 267.5 1st Qu.: 731.5 1st Qu.: 516 1st Qu.: 166 1st Qu.: 38.0 1st Qu.: 16.5 1st Qu.: NA 1st Qu.:2.954e+09
Mode :character Median : 603.0 Median : 1689.0 Median : 1381 Median : 427 Median : 103.0 Median : 37.0 Median : NA Median :5.697e+09
NA Mean : 2286.0 Mean : 5491.5 Mean : 4836 Mean : 1421 Mean : 356.8 Mean : 151.8 Mean :NaN Mean :1.784e+10
NA 3rd Qu.: 2083.5 3rd Qu.: 5953.0 3rd Qu.: 4834 3rd Qu.: 1487 3rd Qu.: 319.0 3rd Qu.: 114.5 3rd Qu.: NA 3rd Qu.:1.857e+10
NA Max. :73001.0 Max. :61815.0 Max. :61832 Max. :15732 Max. :4295.0 Max. :3209.0 Max. : NA Max. :1.870e+11
union_final_urb <- df_2017_2

1.1.0.3 Gráficas:

library(plotly)

df_2017_fig <- df_2017_2[,-c((ncol(df_2017_2)-1))]

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)-1)) {
grafica_fn(g)

}

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

fig 

2 \(\tau\) de Kendall

df_2017_2f <- filter(df_2017_fig, df_2017_fig$ingresos_expandidos != 'is.na')
III <- seq(2,(ncol(df_2017_2f)-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
## 0 piezas  0.8404741
## 1 pieza   0.8454351
## 2 piezas  0.8436087
## 3 piezas  0.8344683
## 4 piezas  0.7958685
##  5 piezas 0.7435911
names(tabla)[1] <- "Correlación"
saveRDS(tabla,"tablas_de_corr/C_P04_URBANO.rds")
tabla %>% rownames_to_column("Cantidad de piezas")%>%  
  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")
Cantidad de piezas Correlación
0 piezas 0.840474105807258
1 pieza 0.845435090153258
2 piezas 0.843608729814218
3 piezas 0.834468275254322
4 piezas 0.795868490346174
5 piezas 0.743591119191497

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)

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$P04
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$P03B ))
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] <- "0 piezas"
names(comuna_corr )[4] <- "1 pieza"
names(comuna_corr )[6] <- "2 piezas"
names(comuna_corr )[8] <- "3 piezas"
names(comuna_corr )[10] <- "4 piezas"
names(comuna_corr )[12] <- " 5 piezas"
names(comuna_corr )[14] <- "6 o más piezas"

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,12,14,16)]
kbl(head(df_2017_2,50)) %>% kable_styling(bootstrap_options = c("striped", "hover")) %>% kable_paper() %>% scroll_box(width = "100%", height = "300px")
código 0 piezas 1 pieza 2 piezas 3 piezas 4 piezas 5 piezas 6 o más piezas ingresos_expandidos
01101 219 244 171 64 33 12 NA 52180713221
01107 20 4 11 1 2 NA NA NA
01401 361 413 284 116 52 67 NA 3822052676
01402 138 211 61 20 10 4 NA 283538750
01403 200 134 37 19 12 13 NA NA
01404 215 192 89 32 10 14 NA 645917134
01405 84 113 80 25 13 1 NA 2502464414
02101 98 81 59 36 11 6 NA NA
02102 30 41 33 16 5 8 NA NA
02103 90 113 68 33 13 8 NA 3290056742
02104 111 98 56 15 8 4 NA 3844002134
02201 330 261 201 73 23 11 NA 39457387800
02202 41 30 13 3 NA 4 NA NA
02203 416 415 270 99 38 30 NA 2985112297
02301 61 68 45 14 6 1 NA 4183793832
02302 13 18 13 6 1 3 NA NA
03101 198 327 249 106 32 13 NA 38699138722
03102 213 217 222 70 25 16 NA NA
03103 309 337 182 47 22 5 NA 4034940816
03201 118 147 101 29 7 5 NA NA
03202 99 77 54 13 2 NA NA 4545663075
03301 392 604 510 243 68 39 NA 11299454698
03302 282 704 434 161 48 31 NA 1039186477
03303 194 286 243 79 24 12 NA 1425547554
03304 117 160 120 47 21 12 NA 2089066548
04101 885 1768 1759 807 223 74 NA 44274327972
04102 598 1379 1235 486 140 62 NA 46918711304
04103 113 160 92 32 2 3 NA 2397612293
04104 216 389 294 91 25 8 NA 982530309
04105 245 651 462 144 36 16 NA 786383423
04106 497 1306 978 343 83 40 NA 4695441470
04201 526 1165 1007 433 108 45 NA 5109649759
04202 552 1024 664 257 69 41 NA 1558270441
04203 219 489 464 175 37 17 NA 3704185607
04204 588 1263 1059 455 117 46 NA 5681637894
04301 1357 3104 2019 765 212 81 NA 25683781418
04302 556 1105 684 232 65 37 NA 2300832587
04303 1095 2233 1298 408 100 63 NA 5835357638
04304 353 733 471 164 35 14 NA 1817183694
04305 314 683 410 146 47 27 NA 778712384
05101 76 91 75 21 1 1 NA 74756602991
05102 445 1005 970 328 86 50 NA 6779018483
05103 122 227 247 113 27 7 NA NA
05104 82 129 97 13 3 1 NA NA
05105 197 362 264 81 21 7 NA 4295363979
05107 215 454 539 240 80 21 NA 9102071069
05201 34 60 28 10 NA 2 NA NA
05301 203 414 380 144 32 12 NA 18714795984
05302 231 480 370 155 42 7 NA 3471349123
05303 115 186 214 96 19 11 NA 2512319225

3.0.0.1 Tabla a correlacionar:

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

3.0.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 0 piezas 1 pieza 2 piezas 3 piezas 4 piezas 5 piezas 6 o más piezas ingresos_expandidos
Length:318 Min. : 2.0 Min. : 4.0 Min. : 1.0 Min. : 1.0 Min. : 1.00 Min. : 1.00 Min. : NA Min. :2.792e+08
Class :character 1st Qu.: 141.8 1st Qu.: 294.2 1st Qu.: 259.5 1st Qu.: 90.0 1st Qu.: 23.50 1st Qu.: 11.00 1st Qu.: NA 1st Qu.:1.809e+09
Mode :character Median : 260.0 Median : 606.0 Median : 518.5 Median : 177.0 Median : 48.00 Median : 21.00 Median : NA Median :3.546e+09
NA Mean : 329.3 Mean : 754.1 Mean : 670.1 Mean : 248.2 Mean : 72.14 Mean : 33.01 Mean :NaN Mean :8.206e+09
NA 3rd Qu.: 435.8 3rd Qu.:1037.5 3rd Qu.: 927.0 3rd Qu.: 327.0 3rd Qu.: 83.00 3rd Qu.: 42.00 3rd Qu.: NA 3rd Qu.:7.252e+09
NA Max. :2098.0 Max. :5422.0 Max. :5408.0 Max. :2034.0 Max. :1129.00 Max. :513.00 Max. : NA Max. :7.585e+10
union_final_urb <- df_2017_2

3.0.0.3 Gráficas:

library(plotly)

df_2017_fig <- df_2017_2[,-c((ncol(df_2017_2)-1))]

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)-1)) {
grafica_fn(g)

}

fig <- fig %>% layout(autosize = T)%>%
  layout(xaxis = list(rangeslider = list()))
fig 

4 \(\tau\) de Kendall

df_2017_2f <- filter(df_2017_fig, df_2017_fig$ingresos_expandidos != 'is.na')
III <- seq(2,(ncol(df_2017_2f)-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
## 0 piezas  0.3149152
## 1 pieza   0.2849687
## 2 piezas  0.3174875
## 3 piezas  0.3534906
## 4 piezas  0.3489680
##  5 piezas 0.2924357
names(tabla)[1] <- "Correlación"
saveRDS(tabla,"tablas_de_corr/C_P04_RURAL.rds")
tabla %>% rownames_to_column("Cantidad de piezas")%>%  
  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")
Cantidad de piezas Correlación
0 piezas 0.314915231572048
1 pieza 0.284968713985855
2 piezas 0.317487527270864
3 piezas 0.353490649665872
4 piezas 0.348968029380379
5 piezas 0.292435686240956

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)