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

VE-CC-AJ

DataIntelligence

Lunes 12-07-2021


1 Nivel nacional URBANO (código 1)

1.1 Pregunta P20: Total hijos/as actualmente vivos

1.2 Las categorías de respuesta:

1 (0-23)

1.3 Generación de tabla de contingencia para la variable P20

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

d_t <- filter(d,d$unlist.c. == 0)
for(i in 1:23){
  d_i <- filter(d,d$unlist.c. == i)
  d_t = merge( x = d_t, y = d_i, by = "unlist.b.", all.x = TRUE)
}
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]
III <- seq(2,48,2)
 
for (i in 1:100) {
      names(comuna_corr)[III[i]] <- paste0(i-1, "_hijos/as")
}
quitar <- seq(1,(ncol(comuna_corr)-1),2)
comuna_corr <- comuna_corr[,-c(quitar),drop=FALSE]
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)
union_final_urb <- df_2017_2[,-c(1,(ncol(df_2017_2)-1))]
write_xlsx(union_final_urb, "P20_urbano.xlsx")
data_sum <- summary(union_final_urb)
kbl(head(data_sum)) %>%
  kable_styling(bootstrap_options = c("striped", "hover")) %>%
  kable_paper() %>%
  scroll_box(width = "100%", height = "500px")
0_hijos/as 1_hijos/as 2_hijos/as 3_hijos/as 4_hijos/as 5_hijos/as 6_hijos/as 7_hijos/as 8_hijos/as 9_hijos/as 10_hijos/as 11_hijos/as 12_hijos/as 13_hijos/as 14_hijos/as 15_hijos/as 16_hijos/as 17_hijos/as 18_hijos/as 19_hijos/as 20_hijos/as 21_hijos/as 22_hijos/as 23_hijos/as ingresos_expandidos
Min. : 1.00 Min. : 62.0 Min. : 69 Min. : 51.0 Min. : 28.0 Min. : 17.0 Min. : 5.0 Min. : 1.0 Min. : 1.00 Min. : 1.00 Min. : 1.00 Min. : 1.00 Min. : 1.000 Min. : 1.00 Min. : 1.00 Min. :1.000 Min. :1.000 Min. :1 Min. :1 Min. :1 Min. : 1.00 Min. :1 Min. :1 Min. :1 Min. :7.054e+08
1st Qu.: 6.00 1st Qu.: 477.2 1st Qu.: 586 1st Qu.: 401.8 1st Qu.: 178.2 1st Qu.: 82.5 1st Qu.: 46.0 1st Qu.: 27.0 1st Qu.: 15.00 1st Qu.: 11.00 1st Qu.: 5.00 1st Qu.: 3.00 1st Qu.: 2.000 1st Qu.: 1.00 1st Qu.: 1.00 1st Qu.:1.000 1st Qu.:1.000 1st Qu.:1 1st Qu.:1 1st Qu.:1 1st Qu.: 1.00 1st Qu.:1 1st Qu.:1 1st Qu.:1 1st Qu.:3.082e+09
Median : 16.00 Median : 1127.5 Median : 1442 Median : 990.0 Median : 439.0 Median : 211.5 Median : 99.0 Median : 56.5 Median : 32.00 Median : 22.00 Median : 11.00 Median : 7.00 Median : 4.000 Median : 2.00 Median : 2.00 Median :1.000 Median :1.000 Median :1 Median :1 Median :1 Median : 1.00 Median :1 Median :1 Median :1 Median :6.098e+09
Mean : 49.44 Mean : 3927.7 Mean : 4997 Mean : 3332.0 Mean : 1406.6 Mean : 563.6 Mean : 251.7 Mean :130.8 Mean : 66.31 Mean : 43.94 Mean : 18.96 Mean :11.53 Mean : 6.928 Mean : 3.58 Mean : 2.36 Mean :1.494 Mean :1.111 Mean :1 Mean :1 Mean :1 Mean : 3.00 Mean :1 Mean :1 Mean :1 Mean :1.822e+10
3rd Qu.: 53.25 3rd Qu.: 4043.8 3rd Qu.: 5344 3rd Qu.: 3559.2 3rd Qu.: 1560.0 3rd Qu.: 672.0 3rd Qu.: 295.2 3rd Qu.:151.5 3rd Qu.: 82.00 3rd Qu.: 55.00 3rd Qu.: 24.00 3rd Qu.:14.00 3rd Qu.: 9.000 3rd Qu.: 5.00 3rd Qu.: 3.00 3rd Qu.:2.000 3rd Qu.:1.000 3rd Qu.:1 3rd Qu.:1 3rd Qu.:1 3rd Qu.: 1.75 3rd Qu.:1 3rd Qu.:1 3rd Qu.:1 3rd Qu.:2.178e+10
Max. :479.00 Max. :44399.0 Max. :62197 Max. :38780.0 Max. :14754.0 Max. :5214.0 Max. :2094.0 Max. :927.0 Max. :496.00 Max. :267.00 Max. :111.00 Max. :72.00 Max. :37.000 Max. :17.00 Max. :12.00 Max. :5.000 Max. :2.000 Max. :1 Max. :1 Max. :1 Max. :12.00 Max. :1 Max. :1 Max. :1 Max. :1.870e+11

Graficas:

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 Correlaciones

La distribución es asimétrica, poseyendo un sesgo positivo.

df_2017_2f <- filter(union_final_urb, union_final_urb$ingresos_expandidos != 'is.na')
III <- seq(1,(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 <- tabla %>% drop_na()
colnames(tabla) <- "Correlación"
saveRDS(tabla,"tablas_de_corr/C_P20_URB.rds")
tabla %>%
  rownames_to_column("Total hijos/as actualmente vivos") %>%  
  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")
Total hijos/as actualmente vivos Correlación
0_hijos/as 0.781776693675254
1_hijos/as 0.862117208042931
2_hijos/as 0.859300548295549
3_hijos/as 0.847908548847571
4_hijos/as 0.834663452694691
5_hijos/as 0.818948425327788
6_hijos/as 0.795084770360571
7_hijos/as 0.775899499345233
8_hijos/as 0.721532924236297
9_hijos/as 0.7252513687953
10_hijos/as 0.658836899904957
11_hijos/as 0.652862243076966
12_hijos/as 0.606257095648438
13_hijos/as 0.561270426995415
14_hijos/as 0.434901682105022
15_hijos/as 0.346407927231743
16_hijos/as 0.0251617118698799
20_hijos/as 0.086066296582387

2.0.1 Kendall

i <- 1
f <- 10
for (cc in 1:1) {
III <- seq(i,f)
print(paste0(i-1,"-",f-1))
df_2017_2_sub_subset <- union_final_urb[,c(III,ncol(union_final_urb))]
chart.Correlation(df_2017_2_sub_subset, histogram=TRUE, method = c( "kendall"), pch=20)

i <- i+10
f <- f+10
}
## [1] "0-9"

print("10 - 16")
## [1] "10 - 16"
df_2017_2_sub_subset <- union_final_urb[,c(11:17,25)]
chart.Correlation(df_2017_2_sub_subset, histogram=TRUE, method = c( "kendall"), pch=20)

2.0.2 Pearson

i <- 1
f <- 10
for (cc in 1:1) {
III <- seq(i,f)
print(paste0(i-1,"-",f-1))
df_2017_2_sub_subset <- union_final_urb[,c(III,ncol(union_final_urb))]
chart.Correlation(df_2017_2_sub_subset, histogram=TRUE, method = c( "kendall"), pch=20)

i <- i+10
f <- f+10
}
## [1] "0-9"

print("10 - 16")
## [1] "10 - 16"
df_2017_2_sub_subset <- union_final_urb[,c(11:17,25)]
chart.Correlation(df_2017_2_sub_subset, histogram=TRUE, method = c( "kendall"), pch=20)

2.0.3 Spearman

i <- 1
f <- 10
for (cc in 1:1) {
III <- seq(i,f)
print(paste0(i-1,"-",f-1))
df_2017_2_sub_subset <- union_final_urb[,c(III,ncol(union_final_urb))]
chart.Correlation(df_2017_2_sub_subset, histogram=TRUE, method = c( "kendall"), pch=20)

i <- i+10
f <- f+10
}
## [1] "0-9"

print("10 - 16")
## [1] "10 - 16"
df_2017_2_sub_subset <- union_final_urb[,c(11:17,25)]
chart.Correlation(df_2017_2_sub_subset, histogram=TRUE, method = c( "kendall"), pch=20)

3 Nivel nacional RURAL (código 2)

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

d_t <- filter(d,d$unlist.c. == 0)
for(i in 1:23){
  d_i <- filter(d,d$unlist.c. == i)
  d_t = merge( x = d_t, y = d_i, by = "unlist.b.", all.x = TRUE)
}
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]
III <- seq(2,48,2)
 
for (i in 1:100) {
      names(comuna_corr)[III[i]] <- paste0(i-1, "_hijos/as")
}
quitar <- seq(1,(ncol(comuna_corr)-1),2)
comuna_corr <- comuna_corr[,-c(quitar),drop=FALSE]
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)
union_final_urb <- df_2017_2[,-c(1,(ncol(df_2017_2)-1))]
write_xlsx(union_final_urb, "P20_rural.xlsx")
data_sum <- summary(union_final_urb)
kbl(head(data_sum)) %>%
  kable_styling(bootstrap_options = c("striped", "hover")) %>%
  kable_paper() %>%
  scroll_box(width = "100%", height = "500px")
0_hijos/as 1_hijos/as 2_hijos/as 3_hijos/as 4_hijos/as 5_hijos/as 6_hijos/as 7_hijos/as 8_hijos/as 9_hijos/as 10_hijos/as 11_hijos/as 12_hijos/as 13_hijos/as 14_hijos/as 15_hijos/as 16_hijos/as 17_hijos/as 18_hijos/as 19_hijos/as 20_hijos/as 21_hijos/as 22_hijos/as 23_hijos/as ingresos_expandidos
Min. : 1.000 Min. : 19.0 Min. : 34.0 Min. : 20.0 Min. : 11.0 Min. : 1.0 Min. : 1.00 Min. : 1.00 Min. : 1.00 Min. : 1.00 Min. : 1.00 Min. : 1.00 Min. : 1.000 Min. : 1.000 Min. :1.000 Min. :1.000 Min. :1.000 Min. :1 Min. :1 Min. :1 Min. :1.0 Min. : NA Min. :1 Min. :1 Min. :5.372e+08
1st Qu.: 3.000 1st Qu.: 236.0 1st Qu.: 305.5 1st Qu.: 223.5 1st Qu.: 118.0 1st Qu.: 60.5 1st Qu.: 32.25 1st Qu.: 21.00 1st Qu.: 11.00 1st Qu.: 8.00 1st Qu.: 4.00 1st Qu.: 3.00 1st Qu.: 2.000 1st Qu.: 1.000 1st Qu.:1.000 1st Qu.:1.000 1st Qu.:1.000 1st Qu.:1 1st Qu.:1 1st Qu.:1 1st Qu.:1.0 1st Qu.: NA 1st Qu.:1 1st Qu.:1 1st Qu.:1.819e+09
Median : 6.000 Median : 371.0 Median : 513.0 Median : 394.0 Median : 194.0 Median : 99.0 Median : 57.00 Median : 35.00 Median : 21.00 Median : 15.00 Median : 9.00 Median : 5.00 Median : 3.000 Median : 2.000 Median :1.000 Median :1.000 Median :1.000 Median :1 Median :1 Median :1 Median :1.0 Median : NA Median :1 Median :1 Median :3.645e+09
Mean : 7.996 Mean : 493.6 Mean : 671.7 Mean : 493.9 Mean : 247.8 Mean :125.3 Mean : 70.48 Mean : 43.66 Mean : 27.22 Mean : 18.81 Mean :11.03 Mean : 6.48 Mean : 3.855 Mean : 2.283 Mean :1.686 Mean :1.333 Mean :1.042 Mean :1 Mean :1 Mean :1 Mean :1.5 Mean :NaN Mean :1 Mean :1 Mean :8.153e+09
3rd Qu.:10.000 3rd Qu.: 641.0 3rd Qu.: 881.0 3rd Qu.: 633.0 3rd Qu.: 315.5 3rd Qu.:159.5 3rd Qu.: 89.75 3rd Qu.: 55.00 3rd Qu.: 37.00 3rd Qu.: 24.00 3rd Qu.:14.00 3rd Qu.: 8.75 3rd Qu.: 5.000 3rd Qu.: 3.000 3rd Qu.:2.000 3rd Qu.:1.500 3rd Qu.:1.000 3rd Qu.:1 3rd Qu.:1 3rd Qu.:1 3rd Qu.:1.5 3rd Qu.: NA 3rd Qu.:1 3rd Qu.:1 3rd Qu.:7.252e+09
Max. :61.000 Max. :3325.0 Max. :4571.0 Max. :3769.0 Max. :1770.0 Max. :813.0 Max. :484.00 Max. :283.00 Max. :173.00 Max. :126.00 Max. :54.00 Max. :34.00 Max. :23.000 Max. :15.000 Max. :6.000 Max. :3.000 Max. :2.000 Max. :1 Max. :1 Max. :1 Max. :3.0 Max. : NA Max. :1 Max. :1 Max. :7.585e+10

Graficas:

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 

4 Correlaciones

La distribución es asimétrica, poseyendo un sesgo positivo.

df_2017_2f <- filter(union_final_urb, union_final_urb$ingresos_expandidos != 'is.na')
III <- seq(1,(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 <- tabla %>% drop_na()
colnames(tabla) <- "Correlación"
saveRDS(tabla,"tablas_de_corr/C_P20_ru.rds")
tabla %>%
  rownames_to_column("Total hijos/as actualmente vivos") %>%  
  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")
Total hijos/as actualmente vivos Correlación
0_hijos/as 0.215010384319159
1_hijos/as 0.367456142923111
2_hijos/as 0.395840778015413
3_hijos/as 0.39340321789039
4_hijos/as 0.341395431625329
5_hijos/as 0.267905668609641
6_hijos/as 0.182702608210855
7_hijos/as 0.126802346748515
8_hijos/as 0.124514153999968
9_hijos/as 0.116907957761341
10_hijos/as 0.0771368930397384
11_hijos/as 0.0953993203267268
12_hijos/as 0.161613166670031
13_hijos/as 0.0899186404050551
14_hijos/as 0.114128186762903
15_hijos/as -0.00238964487748497
16_hijos/as -0.188266392127052
20_hijos/as 0.707106781186548

4.0.1 Kendall

i <- 1
f <- 10
for (cc in 1:1) {
III <- seq(i,f)
print(paste0(i-1,"-",f-1))
df_2017_2_sub_subset <- union_final_urb[,c(III,ncol(union_final_urb))]
chart.Correlation(df_2017_2_sub_subset, histogram=TRUE, method = c( "kendall"), pch=20)

i <- i+10
f <- f+10
}
## [1] "0-9"

print("21 - 23")
## [1] "21 - 23"
df_2017_2_sub_subset <- union_final_urb[,c(11:16,21,25)]
chart.Correlation(df_2017_2_sub_subset, histogram=TRUE, method = c( "kendall"), pch=20)

4.0.2 Pearson

i <- 1
f <- 10
for (cc in 1:1) {
III <- seq(i,f)
print(paste0(i-1,"-",f-1))
df_2017_2_sub_subset <- union_final_urb[,c(III,ncol(union_final_urb))]
chart.Correlation(df_2017_2_sub_subset, histogram=TRUE, method = c( "pearson"), pch=20)

i <- i+10
f <- f+10
}
## [1] "0-9"

print("21 - 23")
## [1] "21 - 23"
df_2017_2_sub_subset <- union_final_urb[,c(11:16,21,25)]
chart.Correlation(df_2017_2_sub_subset, histogram=TRUE, method = c( "pearson"), pch=20)

4.0.3 Spearman

i <- 1
f <- 10
for (cc in 1:1) {
III <- seq(i,f)
print(paste0(i-1,"-",f-1))
df_2017_2_sub_subset <- union_final_urb[,c(III,ncol(union_final_urb))]
chart.Correlation(df_2017_2_sub_subset, histogram=TRUE, method = c( "spearman"), pch=20)

i <- i+10
f <- f+10
}
## [1] "0-9"

print("21 - 23")
## [1] "21 - 23"
df_2017_2_sub_subset <- union_final_urb[,c(11:16,21,25)]
chart.Correlation(df_2017_2_sub_subset, histogram=TRUE, method = c( "spearman"), pch=20)