library(readxl)
library(tidyverse)
library(knitr)
library(kableExtra)
library(scales)
library(ggplot2)
BD1 <- read_excel("C:/Users/joans/Downloads/BD1.xlsx")
BD2 <- read_excel("C:/Users/joans/Downloads/BD2.xlsx")
df <- BD1 %>% left_join(BD2, by = "REGISTRO")
cat("Dimensiones de la base unificada:", nrow(df), "filas x", ncol(df), "columnas\n")
## Dimensiones de la base unificada: 4673 filas x 422 columnas
seg_levels <- c("Muy seguro", "Seguro", "Inseguro", "Muy inseguro")
df$GENERO_LBL <- factor(df$GENERO,
levels = c(1, 2),
labels = c("Masculino", "Femenino"))
df$ESTRATO_LBL <- factor(df$ESTRATO_DEC,
levels = 1:7,
labels = c("Estrato 1","Estrato 2","Estrato 3",
"Estrato 4","Estrato 5","Estrato 6",
"Sin estrato"))
df$EDAD_LBL <- factor(df$EDAD_RANGO,
levels = 1:10,
labels = c("16-17","18-24","25-28","29-34",
"35-38","39-44","45-54","55-59",
"60-66","67 o mas"))
df$OCUPACION_LBL <- factor(df$PD,
levels = c(1,2,3,4,5,6,10,11,77,88,99),
labels = c("Empleado/asalariado",
"Independiente/propietario",
"Retirado/Jubilado",
"Desempleado",
"Ama de Casa",
"Estudiante",
"Incapacitado/discapacitado",
"Cuidado de familiares",
"Otros",
"Ninguno",
"No responde"))
df$P1_LBL <- factor(df$P1, levels = 1:4, labels = seg_levels)
df$P3_LBL <- factor(df$P3, levels = 1:4, labels = seg_levels)
df$P5_LBL <- factor(df$P5, levels = 1:4, labels = seg_levels)
En esta seccion se describe la poblacion encuestada a partir de las variables de genero, edad, estrato, ocupacion, nivel educativo e ingreso mensual del hogar.
tab_genero <- df %>%
count(GENERO_LBL) %>%
mutate(Porcentaje = round(n / sum(n) * 100, 1)) %>%
rename(Genero = GENERO_LBL, Frecuencia = n)
tab_genero %>%
kable(caption = "Tabla 1. Distribucion por genero", digits = 1) %>%
kable_styling(latex_options = c("striped","hold_position"), full_width = FALSE)
| Genero | Frecuencia | Porcentaje |
|---|---|---|
| Masculino | 2290 | 49 |
| Femenino | 2383 | 51 |
ggplot(tab_genero, aes(x = Genero, y = Porcentaje, fill = Genero)) +
geom_col(width = 0.5, show.legend = FALSE) +
geom_text(aes(label = paste0(Porcentaje, "%")), vjust = -0.4, size = 4) +
scale_fill_manual(values = c("#3A86FF","#FF006E")) +
labs(title = "Distribucion por genero", x = NULL, y = "Porcentaje (%)") +
theme_minimal(base_size = 12)
Figura 1. Distribucion por genero de la poblacion encuestada.
La muestra esta compuesta por 2290 hombres (49%) y 2383 mujeres (51%), lo que refleja una distribucion relativamente equilibrada entre generos, como se observa en la Figura 1 y la Tabla 1.
tab_edad <- df %>%
count(EDAD_LBL) %>%
mutate(Porcentaje = round(n / sum(n) * 100, 1)) %>%
rename(Rango_edad = EDAD_LBL, Frecuencia = n)
tab_edad %>%
kable(caption = "Tabla 2. Distribucion por rango de edad", digits = 1) %>%
kable_styling(latex_options = c("striped","hold_position"), full_width = FALSE)
| Rango_edad | Frecuencia | Porcentaje |
|---|---|---|
| 16-17 | 112 | 2.4 |
| 18-24 | 636 | 13.6 |
| 25-28 | 347 | 7.4 |
| 29-34 | 448 | 9.6 |
| 35-38 | 272 | 5.8 |
| 39-44 | 348 | 7.4 |
| 45-54 | 681 | 14.6 |
| 55-59 | 442 | 9.5 |
| 60-66 | 615 | 13.2 |
| 67 o mas | 772 | 16.5 |
ggplot(tab_edad, aes(x = Rango_edad, y = Porcentaje, fill = Rango_edad)) +
geom_col(show.legend = FALSE) +
geom_text(aes(label = paste0(Porcentaje, "%")), vjust = -0.4, size = 3) +
scale_fill_viridis_d(option = "plasma") +
labs(title = "Distribucion por rango de edad",
x = "Rango de edad", y = "Porcentaje (%)") +
theme_minimal(base_size = 11) +
theme(axis.text.x = element_text(angle = 30, hjust = 1))
Figura 2. Distribucion por rango de edad.
Los grupos de edad con mayor representacion son el rango de 67 o mas (16.5%), seguido de 45-54 (14.6%) y 18-24 (13.6%), como se observa en la Figura 2 y la Tabla 2.
tab_estrato <- df %>%
filter(!is.na(ESTRATO_LBL)) %>%
count(ESTRATO_LBL) %>%
mutate(Porcentaje = round(n / sum(n) * 100, 1)) %>%
rename(Estrato = ESTRATO_LBL, Frecuencia = n)
tab_estrato %>%
kable(caption = "Tabla 3. Distribucion por estrato socioeconomico", digits = 1) %>%
kable_styling(latex_options = c("striped","hold_position"), full_width = FALSE)
| Estrato | Frecuencia | Porcentaje |
|---|---|---|
| Estrato 1 | 753 | 16.1 |
| Estrato 2 | 2026 | 43.4 |
| Estrato 3 | 1282 | 27.4 |
| Estrato 4 | 141 | 3.0 |
| Estrato 5 | 82 | 1.8 |
| Estrato 6 | 3 | 0.1 |
| Sin estrato | 386 | 8.3 |
ggplot(tab_estrato, aes(x = Estrato, y = Porcentaje, fill = Estrato)) +
geom_col(show.legend = FALSE) +
geom_text(aes(label = paste0(Porcentaje, "%")), vjust = -0.4, size = 3.5) +
scale_fill_brewer(palette = "Blues") +
labs(title = "Distribucion por estrato socioeconomico",
x = NULL, y = "Porcentaje (%)") +
theme_minimal(base_size = 11) +
theme(axis.text.x = element_text(angle = 20, hjust = 1))
Figura 3. Distribucion por estrato socioeconomico.
La mayor parte de los encuestados pertenece a los estratos 2 (43.4%) y 3 (27.4%), como se observa en la Figura 3 y la Tabla 3. Los estratos 4, 5 y 6 tienen una participacion considerablemente menor.
tab_ocup <- df %>%
filter(!is.na(OCUPACION_LBL),
!OCUPACION_LBL %in% c("Ninguno","No responde")) %>%
count(OCUPACION_LBL) %>%
mutate(Porcentaje = round(n / sum(n) * 100, 1)) %>%
arrange(desc(Porcentaje)) %>%
rename(Ocupacion = OCUPACION_LBL, Frecuencia = n)
tab_ocup %>%
kable(caption = "Tabla 4. Distribucion por ocupacion", digits = 1) %>%
kable_styling(latex_options = c("striped","hold_position"), full_width = FALSE)
| Ocupacion | Frecuencia | Porcentaje |
|---|---|---|
| Ama de Casa | 1343 | 29.3 |
| Empleado/asalariado | 1123 | 24.5 |
| Independiente/propietario | 1001 | 21.8 |
| Desempleado | 427 | 9.3 |
| Retirado/Jubilado | 360 | 7.9 |
| Estudiante | 304 | 6.6 |
| Incapacitado/discapacitado | 16 | 0.3 |
| Cuidado de familiares | 6 | 0.1 |
| Otros | 4 | 0.1 |
ggplot(tab_ocup, aes(x = reorder(Ocupacion, Porcentaje),
y = Porcentaje, fill = Ocupacion)) +
geom_col(show.legend = FALSE) +
geom_text(aes(label = paste0(Porcentaje, "%")), hjust = -0.1, size = 3) +
scale_fill_brewer(palette = "Set2") +
coord_flip() +
labs(title = "Distribucion por ocupacion", x = NULL, y = "Porcentaje (%)") +
theme_minimal(base_size = 11)
Figura 4. Distribucion por ocupacion.
Las ocupaciones mas frecuentes son Ama de Casa (29.3%), Empleado/asalariado (24.5%) e Independiente/propietario (21.8%), como se observa en la Figura 4 y la Tabla 4.
df$EDUC_LBL <- factor(df$P110,
levels = c(1, 2, 3, 4, 5, 6, 990),
labels = c("Preescolar","Primaria","Secundaria",
"Tecnico","Superior/universitario",
"Postgrado","Ninguno"))
tab_educ <- df %>%
filter(!is.na(EDUC_LBL)) %>%
count(EDUC_LBL) %>%
mutate(Porcentaje = round(n / sum(n) * 100, 1)) %>%
arrange(desc(Porcentaje)) %>%
rename(Nivel_educativo = EDUC_LBL, Frecuencia = n)
tab_educ %>%
kable(caption = "Tabla 5. Distribucion por nivel educativo", digits = 1) %>%
kable_styling(latex_options = c("striped","hold_position"), full_width = FALSE)
| Nivel_educativo | Frecuencia | Porcentaje |
|---|---|---|
| Secundaria | 1984 | 42.5 |
| Primaria | 1149 | 24.6 |
| Tecnico | 787 | 16.8 |
| Superior/universitario | 477 | 10.2 |
| Ninguno | 122 | 2.6 |
| Postgrado | 114 | 2.4 |
| Preescolar | 40 | 0.9 |
ggplot(tab_educ, aes(x = reorder(Nivel_educativo, Porcentaje),
y = Porcentaje, fill = Nivel_educativo)) +
geom_col(show.legend = FALSE) +
geom_text(aes(label = paste0(Porcentaje, "%")), hjust = -0.1, size = 3.5) +
coord_flip() +
scale_fill_brewer(palette = "Greens") +
labs(title = "Distribucion por nivel educativo",
x = NULL, y = "Porcentaje (%)") +
theme_minimal(base_size = 11)
Figura 5. Distribucion por nivel educativo.
El nivel educativo predominante es Secundaria (42.5%), seguido de Primaria (24.6%) y Tecnico (16.8%), como se observa en la Figura 5 y la Tabla 5.
df$INGRESO_LBL <- factor(df$P111,
levels = c(1,2,3,4,5,6,7,8,999),
labels = c("Menos de 100k",
"100k - 350k",
"350k - 700k",
"700k - 1MM",
"1MM - 2MM",
"2MM - 3.5MM",
"3.5MM - 5MM",
"Mas de 5MM",
"Ns/Nr"))
tab_ingreso <- df %>%
filter(!is.na(INGRESO_LBL), INGRESO_LBL != "Ns/Nr") %>%
count(INGRESO_LBL) %>%
mutate(Porcentaje = round(n / sum(n) * 100, 1)) %>%
rename(Rango_ingreso = INGRESO_LBL, Frecuencia = n)
tab_ingreso %>%
kable(caption = "Tabla 6. Distribucion por ingreso mensual del hogar", digits = 1) %>%
kable_styling(latex_options = c("striped","hold_position"), full_width = FALSE)
| Rango_ingreso | Frecuencia | Porcentaje |
|---|---|---|
| Menos de 100k | 164 | 3.8 |
| 100k - 350k | 334 | 7.7 |
| 350k - 700k | 515 | 11.9 |
| 700k - 1MM | 1158 | 26.8 |
| 1MM - 2MM | 1422 | 32.9 |
| 2MM - 3.5MM | 450 | 10.4 |
| 3.5MM - 5MM | 189 | 4.4 |
| Mas de 5MM | 92 | 2.1 |
ggplot(tab_ingreso, aes(x = Rango_ingreso, y = Porcentaje, fill = Porcentaje)) +
geom_col(show.legend = FALSE) +
geom_text(aes(label = paste0(Porcentaje, "%")), vjust = -0.4, size = 3) +
scale_fill_gradient(low = "#a8dadc", high = "#1d3557") +
scale_x_discrete(limits = levels(tab_ingreso$Rango_ingreso)) +
labs(title = "Distribucion por ingreso mensual del hogar",
x = "Rango de ingreso", y = "Porcentaje (%)") +
theme_minimal(base_size = 10) +
theme(axis.text.x = element_text(angle = 35, hjust = 1))
Figura 6. Distribucion por ingreso mensual del hogar.
La muestra esta compuesta de 4673 observaciones de las cuales 2290 pertenecen a la categoria masculino y 2383 pertencen a la categoria femenino como se observa en la figura 1.Los grupos de edad con mayor representación son los rangos intermedios (45-54 y 18-24 años) y el rango de edades superiores, mientras que los extremos (16-17 ) concentran la menor proporción de encuestados todo lo anterior se puede observar en la Figura 2. En la figura 3 la mayor parte de los encuestados pertenece a los estratos 2 y 3, los estratos 4, 5 y 6 tienen una participación considerablemente menor. En la Figura 4 y Tabla 4 las ocupaciones más frecuentes son Ama de Casa, Empleado/asalariado e Independiente/propietario, lo que refleja la estructura laboral predominante entre los jefes de hogar encuestados y que recibieron las encuestas. El nivel educativo predominante entre los encuestados es Secundaria, seguido de Primaria y técnico. Una proporción menor cuenta con educación superior o universitaria, lo que refleja el perfil socioeducativo de los jefes de hogar de la ciudad Castellana. La distribucion del ingreso mensual muestra que la mayoria de los hogares se concentra en los rangos de 1MM a 2MM (32.9%) y 700k a 1MM (26.8%), como se observa en la Figura 6 y la Tabla 6. Los hogares con ingresos superiores a 3.5MM representan una minoria.
Las variables P1, P3 y P5 miden como se sienten los encuestados en su barrio, comuna y ciudad, respectivamente (escala: Muy seguro - Seguro - Inseguro - Muy inseguro).
seg_long <- df %>%
select(P1_LBL, P3_LBL, P5_LBL) %>%
pivot_longer(cols = everything(),
names_to = "Ambito",
values_to = "Percepcion") %>%
mutate(Ambito = recode(Ambito,
P1_LBL = "Barrio",
P3_LBL = "Comuna",
P5_LBL = "Ciudad")) %>%
filter(!is.na(Percepcion))
tab_seg <- seg_long %>%
count(Ambito, Percepcion) %>%
group_by(Ambito) %>%
mutate(Porcentaje = round(n / sum(n) * 100, 1)) %>%
ungroup()
tab_seg %>%
select(Ambito, Percepcion, Frecuencia = n, Porcentaje) %>%
kable(caption = "Tabla 7. Percepcion de seguridad por ambito", digits = 1) %>%
kable_styling(latex_options = c("striped","hold_position"), full_width = FALSE)
| Ambito | Percepcion | Frecuencia | Porcentaje |
|---|---|---|---|
| Barrio | Muy seguro | 484 | 10.4 |
| Barrio | Seguro | 3426 | 73.3 |
| Barrio | Inseguro | 642 | 13.7 |
| Barrio | Muy inseguro | 121 | 2.6 |
| Ciudad | Muy seguro | 193 | 4.1 |
| Ciudad | Seguro | 2029 | 43.4 |
| Ciudad | Inseguro | 1923 | 41.2 |
| Ciudad | Muy inseguro | 528 | 11.3 |
| Comuna | Muy seguro | 347 | 7.4 |
| Comuna | Seguro | 3363 | 72.0 |
| Comuna | Inseguro | 773 | 16.5 |
| Comuna | Muy inseguro | 190 | 4.1 |
ggplot(tab_seg, aes(x = Percepcion, y = Porcentaje, fill = Ambito)) +
geom_col(position = "dodge") +
geom_text(aes(label = paste0(Porcentaje, "%")),
position = position_dodge(width = 0.9), vjust = -0.4, size = 2.8) +
scale_fill_manual(values = c("#4361EE","#F72585","#4CC9F0")) +
labs(title = "Percepcion de seguridad por ambito",
x = "Percepcion", y = "Porcentaje (%)", fill = "Ambito") +
theme_minimal(base_size = 11)
Figura 7. Percepcion de seguridad por ambito.
La sensacion de Seguro predomina tanto en el barrio como en la comuna, como se observa en la Figura 7 y la Tabla 7. Sin embargo, la percepcion de seguridad disminuye a medida que el ambito se amplia: en la ciudad, la proporcion de encuestados que se sienten Inseguros o Muy inseguros es notablemente mayor que en el barrio y la comuna.
tab_gen_seg <- df %>%
filter(!is.na(P1_LBL), !is.na(GENERO_LBL)) %>%
count(GENERO_LBL, P1_LBL) %>%
group_by(GENERO_LBL) %>%
mutate(Porcentaje = round(n / sum(n) * 100, 1)) %>%
ungroup()
tab_gen_seg %>%
select(Genero = GENERO_LBL, Percepcion = P1_LBL,
Frecuencia = n, Porcentaje) %>%
kable(caption = "Tabla 8. Percepcion de seguridad en el barrio por genero",
digits = 1) %>%
kable_styling(latex_options = c("striped","hold_position"), full_width = FALSE)
| Genero | Percepcion | Frecuencia | Porcentaje |
|---|---|---|---|
| Masculino | Muy seguro | 277 | 12.1 |
| Masculino | Seguro | 1686 | 73.6 |
| Masculino | Inseguro | 283 | 12.4 |
| Masculino | Muy inseguro | 44 | 1.9 |
| Femenino | Muy seguro | 207 | 8.7 |
| Femenino | Seguro | 1740 | 73.0 |
| Femenino | Inseguro | 359 | 15.1 |
| Femenino | Muy inseguro | 77 | 3.2 |
ggplot(tab_gen_seg, aes(x = P1_LBL, y = Porcentaje, fill = GENERO_LBL)) +
geom_col(position = "dodge") +
geom_text(aes(label = paste0(Porcentaje, "%")),
position = position_dodge(0.9), vjust = -0.4, size = 3) +
scale_fill_manual(values = c("#3A86FF","#FF006E"), name = "Genero") +
labs(title = "Percepcion de seguridad en el barrio segun genero",
x = "Percepcion", y = "Porcentaje (%)") +
theme_minimal(base_size = 11)
Figura 8. Percepcion de seguridad en el barrio segun genero.
tab_gen_ciu <- df %>%
filter(!is.na(P5_LBL), !is.na(GENERO_LBL)) %>%
count(GENERO_LBL, P5_LBL) %>%
group_by(GENERO_LBL) %>%
mutate(Porcentaje = round(n / sum(n) * 100, 1)) %>%
ungroup()
ggplot(tab_gen_ciu, aes(x = P5_LBL, y = Porcentaje, fill = GENERO_LBL)) +
geom_col(position = "dodge") +
geom_text(aes(label = paste0(Porcentaje, "%")),
position = position_dodge(0.9), vjust = -0.4, size = 3) +
scale_fill_manual(values = c("#3A86FF","#FF006E"), name = "Genero") +
labs(title = "Percepcion de seguridad en la ciudad segun genero",
x = "Percepcion", y = "Porcentaje (%)") +
theme_minimal(base_size = 11)
Figura 9. Percepcion de seguridad en la ciudad segun genero.
Como se observa en las Figuras 8 y 9, las mujeres tienden a reportar una mayor percepcion de inseguridad que los hombres, tanto en el barrio como en la ciudad.
tab_est_seg <- df %>%
filter(!is.na(P1_LBL), !is.na(ESTRATO_LBL),
ESTRATO_LBL != "Sin estrato") %>%
count(ESTRATO_LBL, P1_LBL) %>%
group_by(ESTRATO_LBL) %>%
mutate(Porcentaje = round(n / sum(n) * 100, 1)) %>%
ungroup()
tab_est_seg %>%
select(Estrato = ESTRATO_LBL, Percepcion = P1_LBL,
Frecuencia = n, Porcentaje) %>%
kable(caption = "Tabla 9. Percepcion de seguridad en el barrio por estrato",
digits = 1) %>%
kable_styling(latex_options = c("striped","hold_position"), full_width = FALSE)
| Estrato | Percepcion | Frecuencia | Porcentaje |
|---|---|---|---|
| Estrato 1 | Muy seguro | 63 | 8.4 |
| Estrato 1 | Seguro | 580 | 77.0 |
| Estrato 1 | Inseguro | 100 | 13.3 |
| Estrato 1 | Muy inseguro | 10 | 1.3 |
| Estrato 2 | Muy seguro | 228 | 11.3 |
| Estrato 2 | Seguro | 1516 | 74.8 |
| Estrato 2 | Inseguro | 241 | 11.9 |
| Estrato 2 | Muy inseguro | 41 | 2.0 |
| Estrato 3 | Muy seguro | 126 | 9.8 |
| Estrato 3 | Seguro | 887 | 69.2 |
| Estrato 3 | Inseguro | 222 | 17.3 |
| Estrato 3 | Muy inseguro | 47 | 3.7 |
| Estrato 4 | Muy seguro | 9 | 6.4 |
| Estrato 4 | Seguro | 98 | 69.5 |
| Estrato 4 | Inseguro | 26 | 18.4 |
| Estrato 4 | Muy inseguro | 8 | 5.7 |
| Estrato 5 | Muy seguro | 6 | 7.3 |
| Estrato 5 | Seguro | 51 | 62.2 |
| Estrato 5 | Inseguro | 19 | 23.2 |
| Estrato 5 | Muy inseguro | 6 | 7.3 |
| Estrato 6 | Muy seguro | 1 | 33.3 |
| Estrato 6 | Seguro | 2 | 66.7 |
ggplot(tab_est_seg, aes(x = ESTRATO_LBL, y = Porcentaje, fill = P1_LBL)) +
geom_col(position = "fill") +
scale_y_continuous(labels = percent_format()) +
scale_fill_brewer(palette = "RdYlGn", direction = -1, name = "Percepcion") +
labs(title = "Percepcion de seguridad en el barrio segun estrato",
subtitle = "Grafico de barras apiladas al 100%",
x = "Estrato", y = "Proporcion") +
theme_minimal(base_size = 11) +
theme(axis.text.x = element_text(angle = 20, hjust = 1))
Figura 10. Percepcion de seguridad en el barrio segun estrato.
Como se observa en la Figura 10 y la Tabla 9, los estratos bajos (1 y 2) muestran una mayor proporcion de respuestas Inseguro y Muy inseguro, mientras que en los estratos altos predomina la percepcion de Seguro.
El indice de victimizacion mide la proporcion ponderada de hogares que han sido victimas de al menos uno de los siguientes delitos: hurto a personas, hurto a residencias, hurto a establecimientos comerciales, hurto de vehiculos o extorsiones/vacunas (P20A = 1, 2, 3, 4 o 6).
delitos <- c(1, 2, 3, 4, 6)
df$VICTIMA <- ifelse(df$P20A %in% delitos, 1L, 0L)
indice_ciudad <- sum(df$VICTIMA * df$FACTOR, na.rm = TRUE) /
sum(df$FACTOR, na.rm = TRUE)
cat(sprintf("Indice de Victimizacion - Ciudad Castellana: %.4f (%.2f%%)\n",
indice_ciudad, indice_ciudad * 100))
## Indice de Victimizacion - Ciudad Castellana: 0.1996 (19.96%)
El indice de victimizacion para la ciudad Castellana es de 19.96%, lo que significa que cerca de ese porcentaje de los hogares han sido victimas de al menos uno de los delitos considerados.
indice_comunas <- df %>%
group_by(COMUNA) %>%
summarise(
Victimas_pond = sum(VICTIMA * FACTOR, na.rm = TRUE),
Total_pond = sum(FACTOR, na.rm = TRUE),
Indice = Victimas_pond / Total_pond,
.groups = "drop"
) %>%
arrange(desc(Indice)) %>%
mutate(Porcentaje = round(Indice * 100, 2),
Rango = row_number())
indice_comunas %>%
select(Rango, COMUNA, Indice, Porcentaje) %>%
kable(caption = "Tabla 10. Indice de Victimizacion por comuna", digits = 4) %>%
kable_styling(latex_options = c("striped","hold_position"), full_width = FALSE)
| Rango | COMUNA | Indice | Porcentaje |
|---|---|---|---|
| 1 | 5 | 0.2757 | 27.57 |
| 2 | 7 | 0.2344 | 23.44 |
| 3 | 60 | 0.2295 | 22.95 |
| 4 | 4 | 0.2252 | 22.52 |
| 5 | 8 | 0.2157 | 21.57 |
| 6 | 13 | 0.2079 | 20.79 |
| 7 | 16 | 0.2078 | 20.78 |
| 8 | 3 | 0.2052 | 20.52 |
| 9 | 2 | 0.1968 | 19.68 |
| 10 | 9 | 0.1890 | 18.90 |
| 11 | 1 | 0.1818 | 18.18 |
| 12 | 10 | 0.1800 | 18.00 |
| 13 | 80 | 0.1698 | 16.98 |
| 14 | 12 | 0.1512 | 15.12 |
| 15 | 90 | 0.1428 | 14.28 |
| 16 | 6 | 0.1376 | 13.76 |
| 17 | 11 | 0.1314 | 13.14 |
| 18 | 70 | 0.1271 | 12.71 |
| 19 | 15 | 0.1128 | 11.28 |
| 20 | 50 | 0.0000 | 0.00 |
ggplot(indice_comunas,
aes(x = reorder(factor(COMUNA), Porcentaje),
y = Porcentaje, fill = Porcentaje)) +
geom_col() +
geom_text(aes(label = paste0(Porcentaje, "%")), hjust = -0.15, size = 3) +
scale_fill_gradient(low = "#a8dadc", high = "#e63946", name = "% Victimas") +
coord_flip() +
labs(title = "Indice de Victimizacion por comuna",
subtitle = "Ciudad Castellana",
x = "Comuna", y = "Indice de Victimizacion (%)") +
theme_minimal(base_size = 11)
Figura 11. Indice de victimizacion por comuna.
comuna_max <- indice_comunas %>% slice_max(Indice, n = 1)
comuna_min <- indice_comunas %>% slice_min(Indice, n = 1)
cat(sprintf(">> Comuna con MAYOR indice: Comuna %s (%.2f%%)\n",
comuna_max$COMUNA, comuna_max$Porcentaje))
## >> Comuna con MAYOR indice: Comuna 5 (27.57%)
cat(sprintf(">> Comuna con MENOR indice: Comuna %s (%.2f%%)\n",
comuna_min$COMUNA, comuna_min$Porcentaje))
## >> Comuna con MENOR indice: Comuna 50 (0.00%)
Como se observa en la Figura 11 y la Tabla 10, la comuna 5 registra el mayor indice de victimizacion (27.57%), mientras que la comuna 50 presenta el indice mas bajo (0.00%).
Fuente: Encuesta de Seguridad, Convivencia Ciudadana y Confianza Institucional - Ciudad Castellana.