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 P14: Curso o año más alto aprobado

Categorías de respuesta:

0 0 grado
1 1 grado
2 2 grado
3 3 grado
4 4 grado
5 5 grado
6 6 grado
7 7 grado
8 8 grado

1.2 Generación de tabla de contingencia para la variable P14

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$P14
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:8){
  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,100,2)
for (i in 1:9) {
      names(comuna_corr)[III[i]] <- paste0(i-1," grado")
}
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, "P14_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 grado 1 grado 2 grado 3 grado 4 grado 5 grado 6 grado 7 grado 8 grado ingresos_expandidos
Min. : 50 Min. : 63.0 Min. : 103.0 Min. : 90 Min. : 294 Min. : 56.0 Min. : 61.0 Min. : 29.0 Min. : 90 Min. :7.054e+08
1st Qu.: 358 1st Qu.: 376.5 1st Qu.: 597.5 1st Qu.: 548 1st Qu.: 1642 1st Qu.: 387.5 1st Qu.: 370.5 1st Qu.: 190.5 1st Qu.: 575 1st Qu.:2.954e+09
Median : 888 Median : 958.0 Median : 1473.0 Median : 1309 Median : 4118 Median : 1058.0 Median : 863.0 Median : 427.0 Median : 1260 Median :5.697e+09
Mean : 3065 Mean : 3616.5 Mean : 5984.1 Mean : 5102 Mean : 14511 Mean : 4835.9 Mean : 3003.2 Mean : 1294.3 Mean : 3408 Mean :1.784e+10
3rd Qu.: 3458 3rd Qu.: 3756.0 3rd Qu.: 5710.0 3rd Qu.: 5016 3rd Qu.: 14821 3rd Qu.: 4285.5 3rd Qu.: 3020.5 3rd Qu.: 1467.5 3rd Qu.: 3877 3rd Qu.:1.857e+10
Max. :36912 Max. :45147.0 Max. :71358.0 Max. :59672 Max. :180923 Max. :77539.0 Max. :30260.0 Max. :14894.0 Max. :39280 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.

2.1 Kendall

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 %>%
  rownames_to_column("model") %>%  
  mutate(V1 = cell_spec(V1, background=ifelse(V1 == max(V1), "#fc0303", "#5cb81f"))) %>% 
  kbl(booktabs = T, linesep = "", escape=FALSE) %>% 
    kable_paper(full_width = F) %>%
    column_spec(1, color = "black")%>%
    column_spec(2, color = "white")
model V1
0 grado 0.853918047538878
1 grado 0.857241307999914
2 grado 0.863702815775964
3 grado 0.860337649051323
4 grado 0.859645460420074
5 grado 0.856948962235713
6 grado 0.845654277141951
7 grado 0.852622714298996
8 grado 0.832315389815683
chart.Correlation(union_final_urb, histogram=TRUE, method = c( "kendall"), pch=20)

2.2 Pearson

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

2.3 Spearman

chart.Correlation(union_final_urb, histogram=TRUE, method = c( "spearman"), 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$P14
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:8){
  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,100,2)
for (i in 1:9) {
      names(comuna_corr)[III[i]] <- paste0(i-1," grado")
}
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, "P14_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 grado 1 grado 2 grado 3 grado 4 grado 5 grado 6 grado 7 grado 8 grado ingresos_expandidos
Min. : 2.0 Min. : 1.0 Min. : 10.0 Min. : 2.0 Min. : 5 Min. : 4.0 Min. : 3.0 Min. : 1.0 Min. : 1.0 Min. :2.792e+08
1st Qu.: 122.0 1st Qu.: 190.0 1st Qu.: 299.2 1st Qu.: 279.0 1st Qu.: 729 1st Qu.: 203.0 1st Qu.: 226.5 1st Qu.: 90.5 1st Qu.: 317.5 1st Qu.:1.809e+09
Median : 247.0 Median : 356.0 Median : 551.0 Median : 515.0 Median : 1306 Median : 393.0 Median : 461.5 Median : 183.0 Median : 635.0 Median :3.546e+09
Mean : 348.9 Mean : 470.2 Mean : 718.0 Mean : 649.4 Mean : 1739 Mean : 522.5 Mean : 553.9 Mean : 257.2 Mean : 829.6 Mean :8.206e+09
3rd Qu.: 457.5 3rd Qu.: 613.0 3rd Qu.: 897.0 3rd Qu.: 873.0 3rd Qu.: 2288 3rd Qu.: 649.2 3rd Qu.: 761.2 3rd Qu.: 350.5 3rd Qu.:1101.0 3rd Qu.:7.252e+09
Max. :2830.0 Max. :3742.0 Max. :5728.0 Max. :4876.0 Max. :13952 Max. :4024.0 Max. :3755.0 Max. :2070.0 Max. :5539.0 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.

4.1 Kendall

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 %>%
  rownames_to_column("model") %>%  
  mutate(V1 = cell_spec(V1, background=ifelse(V1 == max(V1), "#fc0303", "#5cb81f"))) %>% 
  kbl(booktabs = T, linesep = "", escape=FALSE) %>% 
    kable_paper(full_width = F) %>%
    column_spec(1, color = "black")%>%
    column_spec(2, color = "white")
model V1
0 grado 0.394209928943015
1 grado 0.376102463631748
2 grado 0.409871137725314
3 grado 0.375939078929754
4 grado 0.405745160987278
5 grado 0.412095051006078
6 grado 0.265174606919571
7 grado 0.304643216235821
8 grado 0.270298775490883
chart.Correlation(union_final_urb, histogram=TRUE, method = c( "kendall"), pch=20)

4.2 Pearson

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

4.3 Spearman

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