Abstract
Calculamos correlaciones entre el ingreso promedio comunal multiplicado por la población también comunal que llamaremos ingresos expandidos extraídos de la Casen 2017 y las frecuencias de respuesta por categoría a la pregunta P01 del Censo de viviendas 2017, también extraídas a nivel comunal. Lo haremos a nivel nacional.
Haremos las correlaciones tanto a nivel Urbano como Rural.
Importante es aplicar la librería dplyr para evitar que en los filtros se desplieguen series de tiempo.
Identificamos una violación a un supuesto a la correlación de Pearson; demostramos que lo correcto es aplicar la \(\tau\) de Kendall.
Construcción de tablas con frecuencias de respuesta por categoría desde el Censo: Viviendas
Ésta pregunta posee 10 categorías de respuesta:
1 Casa
2 Departamento en edificio
3 Vivienda tradicional indígena (ruka, pae pae u otras)
4 Pieza en casa antigua o en conventillo
5 Mediagua, mejora, rancho o choza
6 Móvil (carpa, casa rodante o similar)
7 Otro tipo de vivienda particular
8 Vivienda colectiva
9 Operativo personas en tránsito (no es vivienda)
10 Operativo calle (no es vivienda)
Leemos las respuestas a la pregunta P01 del censo de viviendas 2017 y obtenemos la tabla de frecuencias por categoría
tabla_con_clave <- readRDS("../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$P01
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. == 1)
for(i in 2:10){
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)[31] <- "código"
comuna_corr <- comuna_corr[,-c(3,6,9,12,15,18,21,24,27),drop=FALSE]
names(comuna_corr )[2] <- "Casa"
names(comuna_corr )[4] <- "Departamento en edificio"
names(comuna_corr )[6] <- "Vivienda tradicional indígena"
names(comuna_corr )[8] <- "Pieza en casa antigua o en conventillo"
names(comuna_corr )[10] <- "Mediagua, mejora, rancho o choza"
names(comuna_corr )[12] <- "(carpa, casa rodante o similar)"
names(comuna_corr )[14] <- "Otro tipo de vivienda particular"
names(comuna_corr )[16] <- "Vivienda colectiva"
names(comuna_corr )[18] <- "Operativo personas en tránsito (no es vivienda)"
names(comuna_corr )[20] <- "Operativo calle (no es vivienda)"
names(comuna_corr )[21] <- "año"
kbl(head(comuna_corr,50)) %>%
kable_styling(bootstrap_options = c("striped", "hover")) %>%
kable_paper() %>%
scroll_box(width = "100%", height = "300px")
unlist.c..x | Casa | unlist.c..y | Departamento en edificio | unlist.c..x.1 | Vivienda tradicional indígena | unlist.c..y.1 | Pieza en casa antigua o en conventillo | unlist.c..x.2 | Mediagua, mejora, rancho o choza | unlist.c..y.2 | (carpa, casa rodante o similar) | unlist.c..x.3 | Otro tipo de vivienda particular | unlist.c..y.3 | Vivienda colectiva | unlist.c..x.4 | Operativo personas en tránsito (no es vivienda) | unlist.c..y.4 | Operativo calle (no es vivienda) | año | código |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | 37206 | 2 | 22525 | 3 | 18 | 4 | 4478 | 5 | 357 | 6 | 38 | 7 | 640 | 8 | 236 | 9 | 1 | 10 | 1 | 2017 | 01101 |
1 | 26357 | 2 | 4142 | 3 | 13 | 4 | 445 | 5 | 1750 | 6 | 24 | 7 | 348 | 8 | 11 | NA | NA | 10 | 1 | 2017 | 01107 |
1 | 2978 | 2 | 3 | 3 | 3 | 4 | 209 | 5 | 88 | 6 | 2 | 7 | 62 | 8 | 22 | 9 | 1 | NA | NA | NA | 01401 |
1 | 476 | 2 | 1 | 3 | 6 | 4 | 6 | 5 | 37 | NA | NA | 7 | 14 | 8 | 3 | NA | NA | NA | NA | NA | 01404 |
1 | 1898 | 2 | 5 | 3 | 2 | 4 | 26 | 5 | 92 | 6 | 1 | 7 | 30 | 8 | 13 | NA | NA | NA | NA | NA | 01405 |
1 | 79530 | 2 | 27939 | 3 | 26 | 4 | 744 | 5 | 2694 | 6 | 38 | 7 | 617 | 8 | 164 | 9 | 1 | 10 | 1 | 2017 | 02101 |
1 | 2708 | 2 | 471 | 3 | 1 | 4 | 13 | 5 | 178 | 6 | 4 | 7 | 31 | 8 | 234 | 9 | 1 | NA | NA | NA | 02102 |
1 | 3731 | 2 | 3 | 3 | 2 | 4 | 15 | 5 | 94 | 6 | 3 | 7 | 37 | 8 | 20 | 9 | 1 | 10 | 1 | 2017 | 02104 |
1 | 46279 | 2 | 3683 | 3 | 27 | 4 | 1585 | 5 | 345 | 6 | 16 | 7 | 778 | 8 | 332 | 9 | 1 | 10 | 1 | 2017 | 02201 |
1 | 1572 | 2 | 2 | 3 | 11 | 4 | 145 | 5 | 53 | NA | NA | 7 | 81 | 8 | 115 | 9 | 1 | 10 | 1 | 2017 | 02203 |
1 | 7808 | 2 | 1110 | NA | NA | 4 | 33 | 5 | 65 | 6 | 11 | 7 | 70 | 8 | 48 | 9 | 1 | 10 | 1 | 2017 | 02301 |
1 | 1656 | 2 | 3 | 3 | 1 | 4 | 22 | 5 | 4 | 6 | 1 | 7 | 22 | 8 | 84 | NA | NA | NA | NA | NA | 02302 |
1 | 44851 | 2 | 6812 | 3 | 5 | 4 | 351 | 5 | 1329 | 6 | 35 | 7 | 152 | 8 | 106 | NA | NA | 10 | 1 | 2017 | 03101 |
1 | 6903 | 2 | 52 | NA | NA | 4 | 31 | 5 | 198 | 6 | 33 | 7 | 91 | 8 | 33 | NA | NA | 10 | 1 | 2017 | 03102 |
1 | 3114 | 2 | 3 | 3 | 1 | 4 | 34 | 5 | 89 | 6 | 1 | 7 | 9 | 8 | 5 | NA | NA | 10 | 1 | 2017 | 03103 |
1 | 4066 | 2 | 74 | NA | NA | 4 | 5 | 5 | 66 | 6 | 1 | 7 | 12 | 8 | 28 | NA | NA | NA | NA | NA | 03201 |
1 | 5549 | 2 | 510 | NA | NA | 4 | 23 | 5 | 14 | 6 | 1 | 7 | 23 | 8 | 96 | NA | NA | NA | NA | NA | 03202 |
1 | 15367 | 2 | 511 | 3 | 10 | 4 | 62 | 5 | 133 | 6 | 14 | 7 | 66 | 8 | 53 | 9 | 1 | 10 | 1 | 2017 | 03301 |
1 | 1689 | NA | NA | NA | NA | NA | NA | 5 | 54 | NA | NA | 7 | 7 | 8 | 8 | NA | NA | NA | NA | NA | 03303 |
1 | 3417 | 2 | 187 | 3 | 2 | 4 | 7 | 5 | 102 | 6 | 3 | 7 | 24 | 8 | 24 | 9 | 1 | 10 | 1 | 2017 | 03304 |
1 | 60391 | 2 | 17590 | 3 | 4 | 4 | 166 | 5 | 144 | 6 | 31 | 7 | 281 | 8 | 180 | NA | NA | 10 | 1 | 2017 | 04101 |
1 | 71679 | 2 | 9190 | 3 | 8 | 4 | 277 | 5 | 403 | 6 | 13 | 7 | 337 | 8 | 156 | 9 | 1 | 10 | 1 | 2017 | 04102 |
1 | 3690 | 2 | 24 | 3 | 1 | 4 | 11 | 5 | 39 | NA | NA | 7 | 27 | 8 | 15 | NA | NA | NA | NA | NA | 04103 |
1 | 548 | NA | NA | NA | NA | 4 | 3 | 5 | 3 | NA | NA | 7 | 1 | 8 | 2 | NA | NA | NA | NA | NA | 04104 |
1 | 6048 | 2 | 58 | 3 | 1 | 4 | 14 | 5 | 43 | 6 | 3 | 7 | 12 | 8 | 23 | NA | NA | NA | NA | NA | 04106 |
1 | 7404 | 2 | 212 | 3 | 1 | 4 | 39 | 5 | 157 | 6 | 12 | 7 | 42 | 8 | 24 | NA | NA | NA | NA | NA | 04201 |
1 | 970 | NA | NA | NA | NA | 4 | 4 | 5 | 23 | 6 | 1 | 7 | 5 | 8 | 6 | NA | NA | NA | NA | NA | 04202 |
1 | 10338 | 2 | 10 | 3 | 1 | 4 | 22 | 5 | 102 | 6 | 2 | 7 | 40 | 8 | 46 | NA | NA | 10 | 1 | 2017 | 04203 |
1 | 5669 | 2 | 132 | NA | NA | 4 | 16 | 5 | 113 | 6 | 14 | 7 | 31 | 8 | 69 | NA | NA | 10 | 1 | 2017 | 04204 |
1 | 28797 | 2 | 1575 | 3 | 2 | 4 | 127 | 5 | 279 | 6 | 18 | 7 | 137 | 8 | 44 | 9 | 1 | 10 | 1 | 2017 | 04301 |
1 | 2598 | 2 | 1 | NA | NA | 4 | 5 | 5 | 21 | 6 | 3 | 7 | 12 | 8 | 15 | NA | NA | NA | NA | NA | 04302 |
1 | 5313 | NA | NA | NA | NA | 4 | 25 | 5 | 159 | NA | NA | 7 | 15 | 8 | 7 | NA | NA | NA | NA | NA | 04303 |
1 | 2359 | 2 | 1 | NA | NA | 4 | 5 | 5 | 47 | 6 | 8 | 7 | 5 | 8 | 4 | NA | NA | 10 | 1 | 2017 | 04304 |
1 | 82486 | 2 | 30689 | 3 | 17 | 4 | 714 | 5 | 1181 | 6 | 24 | 7 | 500 | 8 | 359 | 9 | 1 | 10 | 1 | 2017 | 05101 |
1 | 5268 | 2 | 890 | NA | NA | 4 | 28 | 5 | 39 | 6 | 5 | 7 | 16 | 8 | 10 | NA | NA | 10 | 1 | 2017 | 05102 |
1 | 10396 | 2 | 8548 | 3 | 4 | 4 | 45 | 5 | 91 | 6 | 1 | 7 | 121 | 8 | 22 | NA | NA | NA | NA | NA | 05103 |
1 | 13424 | 2 | 1759 | NA | NA | 4 | 15 | 5 | 168 | 6 | 4 | 7 | 146 | 8 | 15 | NA | NA | 10 | 1 | 2017 | 05105 |
1 | 13280 | 2 | 1315 | 3 | 2 | 4 | 43 | 5 | 189 | 6 | 11 | 7 | 89 | 8 | 23 | 9 | 1 | 10 | 1 | 2017 | 05107 |
1 | 77662 | 2 | 67357 | 3 | 18 | 4 | 327 | 5 | 1024 | 6 | 5 | 7 | 451 | 8 | 273 | 9 | 1 | 10 | 1 | 2017 | 05109 |
1 | 2586 | 2 | 1 | 3 | 31 | 4 | 18 | 5 | 23 | 6 | 4 | 7 | 60 | 8 | 112 | NA | NA | NA | NA | NA | 05201 |
1 | 18093 | 2 | 3763 | 3 | 1 | 4 | 86 | 5 | 56 | 6 | 14 | 7 | 56 | 8 | 61 | 9 | 1 | 10 | 1 | 2017 | 05301 |
1 | 3844 | NA | NA | NA | NA | 4 | 13 | 5 | 52 | NA | NA | 7 | 12 | 8 | 4 | NA | NA | NA | NA | NA | 05302 |
1 | 2748 | NA | NA | NA | NA | 4 | 6 | 5 | 36 | 6 | 2 | 7 | 4 | 8 | 6 | NA | NA | NA | NA | NA | 05303 |
1 | 4005 | 2 | 1 | NA | NA | 4 | 15 | 5 | 21 | NA | NA | 7 | 6 | 8 | 3 | NA | NA | NA | NA | NA | 05304 |
1 | 8627 | 2 | 1261 | NA | NA | 4 | 24 | 5 | 84 | 6 | 5 | 7 | 24 | 8 | 11 | 9 | 1 | 10 | 1 | 2017 | 05401 |
1 | 3906 | 2 | 312 | NA | NA | 4 | 20 | 5 | 45 | NA | NA | 7 | 18 | 8 | 10 | NA | NA | NA | NA | NA | 05402 |
1 | 3064 | 2 | 2278 | NA | NA | 4 | 2 | 5 | 31 | NA | NA | 7 | 10 | 8 | 8 | NA | NA | NA | NA | NA | 05403 |
1 | 1747 | 2 | 1 | NA | NA | 4 | 7 | 5 | 34 | NA | NA | 7 | 9 | 8 | 11 | NA | NA | NA | NA | NA | 05404 |
1 | 4423 | 2 | 681 | NA | NA | 4 | 5 | 5 | 23 | 6 | 4 | 7 | 18 | 8 | 7 | NA | NA | NA | NA | NA | 05405 |
1 | 24824 | 2 | 3435 | 3 | 3 | 4 | 57 | 5 | 149 | 6 | 3 | 7 | 78 | 8 | 45 | NA | NA | 10 | 1 | 2017 | 05501 |
casen_2017 <- readRDS(file = "../casen_2017_c.rds")
casen_2017_u <- filter(casen_2017, casen_2017$zona == "Urbano")
casen_2017_u <- casen_2017_u[!is.na(casen_2017_u$ytotcor),]
Q <- quantile(casen_2017_u$ytotcor, probs=c(.25, .75), na.rm = FALSE)
iqr <- IQR(casen_2017_u$ytotcor)
casen_2017_sin_o <- subset(casen_2017_u, casen_2017_u$ytotcor >
(Q[1] - 1.5*iqr) &
casen_2017_u$ytotcor < (Q[2]+1.5*iqr))
casen_2017_sin_o <- data.frame(lapply(casen_2017_sin_o, as.character),
stringsAsFactors=FALSE)
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 )
names(promedios_grupales)[1] <- "comuna"
names(promedios_grupales)[2] <- "promedio_i"
promedios_grupales$año <- "2017"
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)
saveRDS(df_2017,"Ingresos_expandidos_Urbano_17.rds")
#Hacemos la unión con los ingresos promedio comunales expandidos:
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)
kbl(head(df_2017_2,50)) %>%
kable_styling(bootstrap_options = c("striped", "hover")) %>%
kable_paper() %>%
scroll_box(width = "100%", height = "300px")
código | unlist.c..x | Casa | unlist.c..y | Departamento en edificio | unlist.c..x.1 | Vivienda tradicional indígena | unlist.c..y.1 | Pieza en casa antigua o en conventillo | unlist.c..x.2 | Mediagua, mejora, rancho o choza | unlist.c..y.2 | (carpa, casa rodante o similar) | unlist.c..x.3 | Otro tipo de vivienda particular | unlist.c..y.3 | Vivienda colectiva | unlist.c..x.4 | Operativo personas en tránsito (no es vivienda) | unlist.c..y.4 | Operativo calle (no es vivienda) | año.x | comuna | promedio_i | año.y |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
01101 | 1 | 37206 | 2 | 22525 | 3 | 18 | 4 | 4478 | 5 | 357 | 6 | 38 | 7 | 640 | 8 | 236 | 9 | 1 | 10 | 1 | 2017 | Iquique | 375676.9 | 2017 |
01107 | 1 | 26357 | 2 | 4142 | 3 | 13 | 4 | 445 | 5 | 1750 | 6 | 24 | 7 | 348 | 8 | 11 | NA | NA | 10 | 1 | 2017 | Alto Hospicio | 311571.7 | 2017 |
01401 | 1 | 2978 | 2 | 3 | 3 | 3 | 4 | 209 | 5 | 88 | 6 | 2 | 7 | 62 | 8 | 22 | 9 | 1 | NA | NA | NA | Pozo Almonte | 316138.5 | 2017 |
01404 | 1 | 476 | 2 | 1 | 3 | 6 | 4 | 6 | 5 | 37 | NA | NA | 7 | 14 | 8 | 3 | NA | NA | NA | NA | NA | NA | NA | NA |
01405 | 1 | 1898 | 2 | 5 | 3 | 2 | 4 | 26 | 5 | 92 | 6 | 1 | 7 | 30 | 8 | 13 | NA | NA | NA | NA | NA | Pica | 330061.1 | 2017 |
02101 | 1 | 79530 | 2 | 27939 | 3 | 26 | 4 | 744 | 5 | 2694 | 6 | 38 | 7 | 617 | 8 | 164 | 9 | 1 | 10 | 1 | 2017 | Antofagasta | 368221.4 | 2017 |
02102 | 1 | 2708 | 2 | 471 | 3 | 1 | 4 | 13 | 5 | 178 | 6 | 4 | 7 | 31 | 8 | 234 | 9 | 1 | NA | NA | NA | Mejillones | 369770.7 | 2017 |
02104 | 1 | 3731 | 2 | 3 | 3 | 2 | 4 | 15 | 5 | 94 | 6 | 3 | 7 | 37 | 8 | 20 | 9 | 1 | 10 | 1 | 2017 | Taltal | 383666.2 | 2017 |
02201 | 1 | 46279 | 2 | 3683 | 3 | 27 | 4 | 1585 | 5 | 345 | 6 | 16 | 7 | 778 | 8 | 332 | 9 | 1 | 10 | 1 | 2017 | Calama | 434325.1 | 2017 |
02203 | 1 | 1572 | 2 | 2 | 3 | 11 | 4 | 145 | 5 | 53 | NA | NA | 7 | 81 | 8 | 115 | 9 | 1 | 10 | 1 | 2017 | San Pedro de Atacama | 442861.0 | 2017 |
02301 | 1 | 7808 | 2 | 1110 | NA | NA | 4 | 33 | 5 | 65 | 6 | 11 | 7 | 70 | 8 | 48 | 9 | 1 | 10 | 1 | 2017 | Tocopilla | 286187.2 | 2017 |
02302 | 1 | 1656 | 2 | 3 | 3 | 1 | 4 | 22 | 5 | 4 | 6 | 1 | 7 | 22 | 8 | 84 | NA | NA | NA | NA | NA | María Elena | 477748.0 | 2017 |
03101 | 1 | 44851 | 2 | 6812 | 3 | 5 | 4 | 351 | 5 | 1329 | 6 | 35 | 7 | 152 | 8 | 106 | NA | NA | 10 | 1 | 2017 | Copiapó | 343121.0 | 2017 |
03102 | 1 | 6903 | 2 | 52 | NA | NA | 4 | 31 | 5 | 198 | 6 | 33 | 7 | 91 | 8 | 33 | NA | NA | 10 | 1 | 2017 | Caldera | 318653.2 | 2017 |
03103 | 1 | 3114 | 2 | 3 | 3 | 1 | 4 | 34 | 5 | 89 | 6 | 1 | 7 | 9 | 8 | 5 | NA | NA | 10 | 1 | 2017 | Tierra Amarilla | 333194.9 | 2017 |
03201 | 1 | 4066 | 2 | 74 | NA | NA | 4 | 5 | 5 | 66 | 6 | 1 | 7 | 12 | 8 | 28 | NA | NA | NA | NA | NA | Chañaral | 286389.3 | 2017 |
03202 | 1 | 5549 | 2 | 510 | NA | NA | 4 | 23 | 5 | 14 | 6 | 1 | 7 | 23 | 8 | 96 | NA | NA | NA | NA | NA | Diego de Almagro | 351583.9 | 2017 |
03301 | 1 | 15367 | 2 | 511 | 3 | 10 | 4 | 62 | 5 | 133 | 6 | 14 | 7 | 66 | 8 | 53 | 9 | 1 | 10 | 1 | 2017 | Vallenar | 315981.5 | 2017 |
03303 | 1 | 1689 | NA | NA | NA | NA | NA | NA | 5 | 54 | NA | NA | 7 | 7 | 8 | 8 | NA | NA | NA | NA | NA | Freirina | 289049.9 | 2017 |
03304 | 1 | 3417 | 2 | 187 | 3 | 2 | 4 | 7 | 5 | 102 | 6 | 3 | 7 | 24 | 8 | 24 | 9 | 1 | 10 | 1 | 2017 | Huasco | 337414.8 | 2017 |
04101 | 1 | 60391 | 2 | 17590 | 3 | 4 | 4 | 166 | 5 | 144 | 6 | 31 | 7 | 281 | 8 | 180 | NA | NA | 10 | 1 | 2017 | La Serena | 279340.1 | 2017 |
04102 | 1 | 71679 | 2 | 9190 | 3 | 8 | 4 | 277 | 5 | 403 | 6 | 13 | 7 | 337 | 8 | 156 | 9 | 1 | 10 | 1 | 2017 | Coquimbo | 269078.6 | 2017 |
04103 | 1 | 3690 | 2 | 24 | 3 | 1 | 4 | 11 | 5 | 39 | NA | NA | 7 | 27 | 8 | 15 | NA | NA | NA | NA | NA | Andacollo | 258539.7 | 2017 |
04104 | 1 | 548 | NA | NA | NA | NA | 4 | 3 | 5 | 3 | NA | NA | 7 | 1 | 8 | 2 | NA | NA | NA | NA | NA | La Higuera | 214257.0 | 2017 |
04106 | 1 | 6048 | 2 | 58 | 3 | 1 | 4 | 14 | 5 | 43 | 6 | 3 | 7 | 12 | 8 | 23 | NA | NA | NA | NA | NA | Vicuña | 254177.0 | 2017 |
04201 | 1 | 7404 | 2 | 212 | 3 | 1 | 4 | 39 | 5 | 157 | 6 | 12 | 7 | 42 | 8 | 24 | NA | NA | NA | NA | NA | Illapel | 282139.3 | 2017 |
04202 | 1 | 970 | NA | NA | NA | NA | 4 | 4 | 5 | 23 | 6 | 1 | 7 | 5 | 8 | 6 | NA | NA | NA | NA | NA | Canela | 233397.3 | 2017 |
04203 | 1 | 10338 | 2 | 10 | 3 | 1 | 4 | 22 | 5 | 102 | 6 | 2 | 7 | 40 | 8 | 46 | NA | NA | 10 | 1 | 2017 | Los Vilos | 285214.0 | 2017 |
04204 | 1 | 5669 | 2 | 132 | NA | NA | 4 | 16 | 5 | 113 | 6 | 14 | 7 | 31 | 8 | 69 | NA | NA | 10 | 1 | 2017 | Salamanca | 262056.9 | 2017 |
04301 | 1 | 28797 | 2 | 1575 | 3 | 2 | 4 | 127 | 5 | 279 | 6 | 18 | 7 | 137 | 8 | 44 | 9 | 1 | 10 | 1 | 2017 | Ovalle | 280373.5 | 2017 |
04302 | 1 | 2598 | 2 | 1 | NA | NA | 4 | 5 | 5 | 21 | 6 | 3 | 7 | 12 | 8 | 15 | NA | NA | NA | NA | NA | Combarbalá | 234537.3 | 2017 |
04303 | 1 | 5313 | NA | NA | NA | NA | 4 | 25 | 5 | 159 | NA | NA | 7 | 15 | 8 | 7 | NA | NA | NA | NA | NA | Monte Patria | 225369.1 | 2017 |
04304 | 1 | 2359 | 2 | 1 | NA | NA | 4 | 5 | 5 | 47 | 6 | 8 | 7 | 5 | 8 | 4 | NA | NA | 10 | 1 | 2017 | Punitaqui | 212496.1 | 2017 |
05101 | 1 | 82486 | 2 | 30689 | 3 | 17 | 4 | 714 | 5 | 1181 | 6 | 24 | 7 | 500 | 8 | 359 | 9 | 1 | 10 | 1 | 2017 | Valparaíso | 306572.5 | 2017 |
05102 | 1 | 5268 | 2 | 890 | NA | NA | 4 | 28 | 5 | 39 | 6 | 5 | 7 | 16 | 8 | 10 | NA | NA | 10 | 1 | 2017 | Casablanca | 348088.6 | 2017 |
05103 | 1 | 10396 | 2 | 8548 | 3 | 4 | 4 | 45 | 5 | 91 | 6 | 1 | 7 | 121 | 8 | 22 | NA | NA | NA | NA | NA | Concón | 333932.4 | 2017 |
05105 | 1 | 13424 | 2 | 1759 | NA | NA | 4 | 15 | 5 | 168 | 6 | 4 | 7 | 146 | 8 | 15 | NA | NA | 10 | 1 | 2017 | Puchuncaví | 296035.5 | 2017 |
05107 | 1 | 13280 | 2 | 1315 | 3 | 2 | 4 | 43 | 5 | 189 | 6 | 11 | 7 | 89 | 8 | 23 | 9 | 1 | 10 | 1 | 2017 | Quintero | 308224.7 | 2017 |
05109 | 1 | 77662 | 2 | 67357 | 3 | 18 | 4 | 327 | 5 | 1024 | 6 | 5 | 7 | 451 | 8 | 273 | 9 | 1 | 10 | 1 | 2017 | Viña del Mar | 354715.9 | 2017 |
05201 | 1 | 2586 | 2 | 1 | 3 | 31 | 4 | 18 | 5 | 23 | 6 | 4 | 7 | 60 | 8 | 112 | NA | NA | NA | NA | NA | NA | NA | NA |
05301 | 1 | 18093 | 2 | 3763 | 3 | 1 | 4 | 86 | 5 | 56 | 6 | 14 | 7 | 56 | 8 | 61 | 9 | 1 | 10 | 1 | 2017 | Los Andes | 355446.2 | 2017 |
05302 | 1 | 3844 | NA | NA | NA | NA | 4 | 13 | 5 | 52 | NA | NA | 7 | 12 | 8 | 4 | NA | NA | NA | NA | NA | Calle Larga | 246387.3 | 2017 |
05303 | 1 | 2748 | NA | NA | NA | NA | 4 | 6 | 5 | 36 | 6 | 2 | 7 | 4 | 8 | 6 | NA | NA | NA | NA | NA | Rinconada | 279807.9 | 2017 |
05304 | 1 | 4005 | 2 | 1 | NA | NA | 4 | 15 | 5 | 21 | NA | NA | 7 | 6 | 8 | 3 | NA | NA | NA | NA | NA | San Esteban | 219571.6 | 2017 |
05401 | 1 | 8627 | 2 | 1261 | NA | NA | 4 | 24 | 5 | 84 | 6 | 5 | 7 | 24 | 8 | 11 | 9 | 1 | 10 | 1 | 2017 | La Ligua | 259482.3 | 2017 |
05402 | 1 | 3906 | 2 | 312 | NA | NA | 4 | 20 | 5 | 45 | NA | NA | 7 | 18 | 8 | 10 | NA | NA | NA | NA | NA | Cabildo | 262745.9 | 2017 |
05403 | 1 | 3064 | 2 | 2278 | NA | NA | 4 | 2 | 5 | 31 | NA | NA | 7 | 10 | 8 | 8 | NA | NA | NA | NA | NA | Papudo | 302317.1 | 2017 |
05404 | 1 | 1747 | 2 | 1 | NA | NA | 4 | 7 | 5 | 34 | NA | NA | 7 | 9 | 8 | 11 | NA | NA | NA | NA | NA | Petorca | 237510.8 | 2017 |
05405 | 1 | 4423 | 2 | 681 | NA | NA | 4 | 5 | 5 | 23 | 6 | 4 | 7 | 18 | 8 | 7 | NA | NA | NA | NA | NA | Zapallar | 294389.2 | 2017 |
05501 | 1 | 24824 | 2 | 3435 | 3 | 3 | 4 | 57 | 5 | 149 | 6 | 3 | 7 | 78 | 8 | 45 | NA | NA | 10 | 1 | 2017 | Quillota | 288694.2 | 2017 |
x <- import("../Microdato_Censo2017-Personas.csv")
my_summary_data <- x %>%
group_by(x$COMUNA) %>%
summarise(Count = n())
names(my_summary_data)[1] <- "comuna"
names(my_summary_data)[2] <- "personas"
# 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)
names(comuna_corr)[3] <- "código"
saveRDS(comuna_corr,"cant_personas_17.rds")
df_2017_6666 = merge( x = df_2017_2, y = comuna_corr, by = "código", all.x = TRUE)
Eliminamos ingresos expandidos que contengan NA
df_2017_6666$Ingresos_expandidos <- df_2017_6666$promedio_i*df_2017_6666$personas
df_2017_6666 <- filter(df_2017_6666, df_2017_6666$Ingresos_expandidos != 'is.na')
El coeficiente de correlación de Pearson es probablemente la medida más utilizada para las relaciones lineales entre dos variables distribuidas normales y, por lo tanto, a menudo se denomina simplemente “coeficiente de correlación”. Por lo general, el coeficiente de Pearson se obtiene mediante un ajuste de mínimos cuadrados correspondiendo un valor de 1 una relación positiva perfecta, -1 una relación negativa perfecta y 0 la ausencia de una relación entre las variables.
Apliquemos los coeficientes de Pearson a los ingresos expandidos y a todas las categorias de respuesta de la pregunta P01
df_2017_6666_subset <- df_2017_6666[,c(3,5,7,9,11,13,15,17,19,21,28)]
chart.Correlation(df_2017_6666_subset, histogram=TRUE, method = c( "pearson"), pch=20)
La alta correlación que nos dá utilizando Pearson, entre los ingresos expandidos y la categoria casa nos hace sospechar de un error. El error es que las variables no cumplen uno de los supuestos básicos del método de Pearson que es el de la normalidad de las variables, distribución que debiese poseer la forma de la siguiente gráfica. Como veremos enseguida la distribución de nuestras variables es geométrica.
df_2017_6666_subset <- df_2017_6666[,c(3,28)]
chart.Correlation(df_2017_6666_subset, histogram=TRUE, method = c( "pearson"), pch=20)
Una distribución normal se identifica fácilmente pues sigue la forma de una campana, las distribuciones de nuestras variables no son normales.
randNorm <- rnorm(3000)
#calculo de su densidad
randDensity <- dnorm(randNorm)
#gráfica
library(ggplot2)
ggplot(data.frame(x = randNorm, y = randDensity )) +
aes(x = x, y = y) +
geom_point(size=.5, color="#CC6666") +
labs(x = "Random Normal Variable", y = "Densidad")
Observamos que la distribución de nuestras variables es geométrica, tal como lo muestra la siguiente gráfica.
N <- 10000
x <- rgeom(N, .2)
hist(x,
xlim=c(min(x),max(x)), probability=T, nclass=max(x)-min(x)+1,
col='#117a65',
main='Distribución Geométrica, p=.2')
lines(density(x,bw=1), col='red', lwd=1)
La distribución geométrica representa el número de fallas antes de obtener un éxito en una serie de ensayos de Bernoulli. Una variable aleatoria de Bernoulli \(X\) con probabilidad de éxito \(p\) tiene una función de probabilidad:
\[ f(x) = p ^ {x} (1 - p) ^ {1 - x} \qquad \qquad x = 0, 1 \] para \(0 < p < 1\).
La distribución \(X \sim {\rm Bernoulli}(p)\) es utilizada para indicar que la variable aleatoria \(X\) tiene una distribución de Bernoulli con parámetro \(p\), donde \(0 < p < 1\).
Nuestro problema es que estamos violando un supuesto fundamental del cálculo de la correlación de Pearson: La distribución nuestras variables no es normal sino que geométrica.
Supuestos de la correlación de Pearson:
Los datos deben poseer una relación lineal (eso se puede determinar a través de una gráfica de dispersión).
Las variables deberían poseer una distribución normal.
Las observaciones utilizadas para el análisis deberían recolectarse de forma aleatoria de la población de referencia. Cuando esto no ocurre, el coeficiente de correlación podría estar sub o sobreestimado.
El coeficiente de correlación τ de Kendall es no paramétrico, es decir, se puede usar cuando se viola el supuesto de distribución normal de las variables a comparar. La correlación τ de Kendall es particularmente adecuada cuando tenemos un set de datos pequeño con muchos valores en el mismo rango o clase. Se puede usar por ejemplo con datos categóricos codificados binariamente (0,1). Estudios estadísticos han demostrado que el coeficiente de correlación τ de Kendall es un mejor estimador de la correlación en la población que el coeficiente de correlación no paramétrico de Spearman ρ, por lo que se recomienda usar τ para análisis de datos no paramétricos1.
Similar al coeficiente de correlación de Pearson, la \(\tau\) de Kendall mide el grado de una relación monótona entre variables y, como la \(\rho\) de Spearman, calcula la dependencia entre variables clasificadas, lo que hace que sea factible para datos distribuidos no normales. La \(\tau\) de Kendall se puede calcular tanto para datos continuos como ordinales. En términos generales, la \(\tau\) de Kendall se distingue de la \(\rho\) de Spearman por una penalización más fuerte de las dislocaciones no secuenciales (en el contexto de las variables clasificadas).
El coeficiente \(\tau\) de kendall está basada más en los intervalos jerarquizados de las observaciones que los propios datos, esto hace que la distribución de \(\tau\) sea independiente de la que presentan las variables X e Y, siempre y cuando los datos representados por estas 2 variables sean (1) independientes y (2) continuas. Éste coeficiente es más preferido por algunos investigadores que el de Spearman, pero es más difícil de calcular, con la ventaja de que el \(\tau\) tiende más rápido a la distribución normal que el de Spearman.
Ecuación:
\[\tau = \frac{S_a - S_b}{{n(n-1)/2}} \]
Donde:
τ = Estadística de Kendall
n = # de casos en el ejemplo
Sa = Sumatoria de rangos más altos
Sb = Sumatoria de rangos más bajos
En una evaluación de los jugadores delanteros de fútbol en un país, hay 9 de ellos catalogados como más intensos para marcar goles. Para analizar esta intensidad durante un periodo de una temporada se registró sistemáticamente el grado de intensidad de cada uno de éstos delanteros tanto en juegos a nivel nacional (NP = puntajes nacional), como a nivel internacional (IP = puntajes en juegos internacionales).
Además, se registraron los rangos a nivel nacional (NR = rangos a nivel nacional) y en a nivel internacional (IR = rango a nivel internacional). Los datos se presentan en la Tabla. Los rangos se ordenan de máxima a mínima hacia abajo en cada columna de rango.
Jugador | NP | IP | NR | IR |
---|---|---|---|---|
1 | 84 | 60 | 1 | 4 |
2 | 80 | 64 | 2 | 2 |
3 | 78 | 71 | 3 | 1 |
4 | 76 | 61 | 4 | 3 |
5 | 70 | 58 | 5 | 5 |
6 | 64 | 57 | 6 | 6 |
7 | 62 | 54 | 7 | 8 |
8 | 50 | 55 | 8 | 7 |
9 | 47 | 52 | 9 | 9 |
Procedimiento.
Paso 1.
Se considera el IR como referencia y comienza a contabilizar a partir del primer rango, es decir, el rango con el valor de 4 y cuenta el número de los rangos menores que 4 (hacia debajo de 4): en este caso los tres números de 2, 1, y 3, es decir tenemos 3 valores menores que el valor 4.
Paso 2.
Luego cuentan los rangos mayores de 4 a partir e incluyendo el número 5, así tenemos los valores 5, 6, 8, 7, y 9, es decir, hay 5 rangos mayores que el valor 4.
Paso 3.
Se continúa así contabilizar los rangos menores y mayores para los siguientes valores de la columna de IR, es decir, a partir del valor 2 en adelante. De esta manera se generan los valores de las 2 columnas de Sa (sumatoria de rangos más altos) y Sb (sumatoria de rangos más bajos).
Jugador | NP | IP | NR | IR | Sa=31 | Sb=5 |
---|---|---|---|---|---|---|
1 | 84 | 60 | 1 | 4 | 5 | 3 |
2 | 80 | 64 | 2 | 2 | 6 | 1 |
3 | 78 | 71 | 3 | 1 | 6 | 0 |
4 | 76 | 61 | 4 | 3 | 5 | 0 |
5 | 70 | 58 | 5 | 5 | 4 | 0 |
6 | 64 | 57 | 6 | 6 | 3 | 0 |
7 | 62 | 54 | 7 | 8 | 1 | 1 |
8 | 50 | 55 | 8 | 7 | 1 | 0 |
9 | 47 | 52 | 9 | 9 | 0 | 0 |
Ahora substituir en la ecuación de Kendall resulta:
\[\tau = \frac{S_a - S_b}{{n(n-1)/2}} = \frac{31 - 5}{{9(9-1)/2}} = 0,72\]
hay una asociación de 72%.
df_2017_6666_subset <- df_2017_6666[,c(3,5,7,9,11,13,15,17,19,21,28)]
chart.Correlation(df_2017_6666_subset, histogram=TRUE, method = c( "kendall"), pch=20)
El coeficiente de correlación correcto entre ingresos_expandidos y casa es de 0.82.
El coeficiente de correlación elevado al cuadrado es el coeficiente de determinación, R2 , que mide la cantidad de variación en una variable que es compartida por otra.
tabla_con_clave <- readRDS("../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$P01
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. == 1)
for(i in 2:10){
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)[31] <- "código"
comuna_corr <- comuna_corr[,-c(3,6,9,12,15,18,21,24,27),drop=FALSE]
names(comuna_corr )[2] <- "Casa"
names(comuna_corr )[4] <- "Departamento en edificio"
names(comuna_corr )[6] <- "Vivienda tradicional indígena"
names(comuna_corr )[8] <- "Pieza en casa antigua o en conventillo"
names(comuna_corr )[10] <- "Mediagua, mejora, rancho o choza"
names(comuna_corr )[12] <- "(carpa, casa rodante o similar)"
names(comuna_corr )[14] <- "Otro tipo de vivienda particular"
names(comuna_corr )[16] <- "Vivienda colectiva"
names(comuna_corr )[18] <- "Operativo personas en tránsito (no es vivienda)"
names(comuna_corr )[20] <- "Operativo calle (no es vivienda)"
names(comuna_corr )[21] <- "año"
casen_2017 <- readRDS(file = "../casen_2017_c.rds")
casen_2017_u <- filter(casen_2017, casen_2017$zona == "Rural")
casen_2017_u <- casen_2017_u[!is.na(casen_2017_u$ytotcor),]
Q <- quantile(casen_2017_u$ytotcor, probs=c(.25, .75), na.rm = FALSE)
iqr <- IQR(casen_2017_u$ytotcor)
casen_2017_sin_o <- subset(casen_2017_u, casen_2017_u$ytotcor >
(Q[1] - 1.5*iqr) &
casen_2017_u$ytotcor < (Q[2]+1.5*iqr))
casen_2017_sin_o <- data.frame(lapply(casen_2017_sin_o, as.character),
stringsAsFactors=FALSE)
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 )
names(promedios_grupales)[1] <- "comuna"
names(promedios_grupales)[2] <- "promedio_i"
promedios_grupales$año <- "2017"
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)
saveRDS(df_2017,"Ingresos_expandidos_Rural_17.rds")
#Hacemos la unión con los ingresos promedio comunales expandidos:
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)
x <- import("../Microdato_Censo2017-Personas.csv")
my_summary_data <- x %>%
group_by(x$COMUNA) %>%
summarise(Count = n())
names(my_summary_data)[1] <- "comuna"
names(my_summary_data)[2] <- "personas"
# 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)
names(comuna_corr)[3] <- "código"
saveRDS(comuna_corr,"cant_personas_17.rds")
df_2017_6666 = merge( x = df_2017_2, y = comuna_corr, by = "código", all.x = TRUE)
df_2017_6666$Ingresos_expandidos <- df_2017_6666$promedio_i*df_2017_6666$personas
df_2017_6666 <- filter(df_2017_6666, df_2017_6666$Ingresos_expandidos != 'is.na')
La distribución es asimétrica, poseyendo un sesgo positivo.
df_2017_6666_subset <- df_2017_6666[,c(3,5,7,9,11,13,15,17,28)]
chart.Correlation(df_2017_6666_subset, histogram=TRUE, method = c( "kendall"), pch=20)
df_2017_6666_subset <- df_2017_6666[,c(3,5,7,9,11,13,15,17,28)]
chart.Correlation(df_2017_6666_subset, histogram=TRUE, method = c( "pearson"), pch=20)
df_2017_6666_subset <- df_2017_6666[,c(3,5,7,9,11,13,15,17,28)]
chart.Correlation(df_2017_6666_subset, histogram=TRUE, method = c( "spearman"), pch=20)
library(normtest)
library(nortest)
library(moments)
Se intentará comprobar si el campo casa tiene una distribución normal.
abc <- head(df_2017_6666,5)
kbl(abc) %>%
kable_styling(bootstrap_options = c("striped", "hover")) %>%
kable_paper() %>%
scroll_box(width = "100%", height = "300px")
código | unlist.c..x | Casa | unlist.c..y | Departamento en edificio | unlist.c..x.1 | Vivienda tradicional indígena | unlist.c..y.1 | Pieza en casa antigua o en conventillo | unlist.c..x.2 | Mediagua, mejora, rancho o choza | unlist.c..y.2 | (carpa, casa rodante o similar) | unlist.c..x.3 | Otro tipo de vivienda particular | unlist.c..y.3 | Vivienda colectiva | unlist.c..x.4 | Operativo personas en tránsito (no es vivienda) | unlist.c..y.4 | Operativo calle (no es vivienda) | año.x | comuna.x | promedio_i | año.y | comuna.y | personas | Ingresos_expandidos |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
01101 | 1 | 1177 | NA | NA | 3 | 2 | 4 | 11 | 5 | 229 | 6 | 17 | 7 | 27 | 8 | 25 | NA | NA | NA | NA | NA | Iquique | 272529.7 | 2017 | 1101 | 191468 | 52180713221 |
01401 | 1 | 4877 | 2 | 1 | 3 | 28 | 4 | 39 | 5 | 455 | 6 | 8 | 7 | 131 | 8 | 20 | NA | NA | NA | NA | NA | Pozo Almonte | 243272.4 | 2017 | 1401 | 15711 | 3822052676 |
01402 | 1 | 828 | 2 | 10 | 3 | 12 | 4 | 13 | 5 | 213 | 6 | 1 | 7 | 11 | 8 | 4 | NA | NA | NA | NA | NA | Camiña | 226831.0 | 2017 | 1402 | 1250 | 283538750 |
01404 | 1 | 1790 | 2 | 3 | 3 | 55 | 4 | 44 | 5 | 406 | NA | NA | 7 | 25 | 8 | 5 | NA | NA | NA | NA | NA | Huara | 236599.7 | 2017 | 1404 | 2730 | 645917134 |
01405 | 1 | 526 | NA | NA | 3 | 9 | 4 | 8 | 5 | 77 | 6 | 1 | 7 | 28 | 8 | 10 | NA | NA | NA | NA | NA | Pica | 269198.0 | 2017 | 1405 | 9296 | 2502464414 |
Hipótesis
H0: La muestra proviene de una distribución normal.
H1: La muestra no proviene de una distribución normal.
Nivel de Significancia
El nivel de significancia que se trabajará es de 0.05. \(\alpha\) =0.05
Criterio de Decisión:
Si P < \(\alpha\) Se rechaza Ho
Si p >= \(\alpha\) No se rechaza Ho
Histograma
hist(df_2017_6666[,3])
###Prueba de Anderson-Darling###
ad.test(df_2017_6666[,3])
##
## Anderson-Darling normality test
##
## data: df_2017_6666[, 3]
## A = 10.547, p-value < 2.2e-16
p-value < 2.2e-16 < 0.05 Se rechaza Ho = La muestra proviene de una distribución normal.
Referencias: