Introducción

El presente informe tiene como objetivo analizar la información proveniente de la Encuesta de Seguridad, Convivencia Ciudadana y Confianza Institucional realizada en la ciudad Castellana.

bd1 <- read_excel("BD1.xlsx")
bd2 <- read_excel("BD2.xlsx")

datos <- left_join(bd1, bd2, by = "REGISTRO")

Caracterización social y económica de la población

Distribución por género

tabla_genero <- datos %>%
  count(GENERO) %>%
  mutate(
    Género = c("Masculino","Femenino"),
    Porcentaje = round(n/sum(n)*100,2),
    Porcentaje = paste0(Porcentaje,"%")
  ) %>%
  select(
    Género,
    Frecuencia = n,
    Porcentaje
  )

kable(
  tabla_genero,
  caption = "Distribución de la población por género",
  align = c("l","c","c")
)
Distribución de la población por género
Género Frecuencia Porcentaje
Masculino 2290 49%
Femenino 2383 51%

Fuente: Elaboración propia con base en la Encuesta de Seguridad, Convivencia Ciudadana y Confianza Institucional.

library(ggplot2)
library(dplyr)

datos %>%
  mutate(GENERO = case_when(
    GENERO == 1 ~ "Masculino",
    GENERO == 2 ~ "Femenino",
    TRUE ~ as.character(GENERO)
  )) %>%
  ggplot(aes(x = GENERO)) +
  geom_bar(
    fill = "#2C3E50",
    color = "white",
    alpha = 0.95
  ) +
  labs(
    title = "Distribución de la población por género",
    x = "Género",
    y = "Frecuencia"
  ) +
  theme_minimal(base_size = 12) +
  theme(
    plot.title = element_text(face = "bold", size = 14),
    axis.title = element_text(face = "bold"),
    panel.grid.minor = element_blank(),
    panel.grid.major.x = element_blank()
  )

Fuente: Elaboración propia con base en la Encuesta de Seguridad, Convivencia Ciudadana y Confianza Institucional.

De acuerdo con la Tabla 1 y la Figura 1, la distribución de la población encuestada presenta una participación equilibrada entre hombres y mujeres, lo que permite realizar análisis comparativos sin sesgos significativos derivados de la composición de género de la muestra.

Distribución por estrato

tabla_estrato <- datos %>%
  count(ESTRATO_DEC) %>%
  mutate(
    Porcentaje = round(n/sum(n)*100,2)
  )

kable(
  tabla_estrato,
  caption = "Distribución de la población por estrato"
)
Distribución de la población por estrato
ESTRATO_DEC n Porcentaje
1 753 16.11
2 2026 43.36
3 1282 27.43
4 141 3.02
5 82 1.75
6 3 0.06
7 386 8.26

Fuente: Elaboración propia con base en la Encuesta de Seguridad, Convivencia Ciudadana y Confianza Institucional.

library(ggplot2)
library(dplyr)

datos %>%
  count(ESTRATO_DEC) %>%
  mutate(porcentaje = n / sum(n) * 100) %>%
  ggplot(aes(x = factor(ESTRATO_DEC), y = n)) +
  geom_bar(stat = "identity", fill = "#2C3E50", color = "white") +
  geom_text(aes(label = paste0(round(porcentaje, 1), "%")),
            vjust = -0.5, size = 3.5) +
  labs(
    title = "Distribución por estrato socioeconómico",
    x = "Estrato",
    y = "Frecuencia"
  ) +
  theme_minimal(base_size = 12) +
  theme(
    plot.title = element_text(face = "bold"),
    panel.grid.minor = element_blank()
  )

Fuente: Elaboración propia con base en la Encuesta de Seguridad, Convivencia Ciudadana y Confianza Institucional.

La Tabla 2 y la Figura 2 evidencian que la mayor proporción de encuestados pertenece a los estratos 2 y 3, lo que refleja una concentración de hogares en niveles socioeconómicos medios y bajos.

Distribución por edad

tabla_edad <- data.frame(
  Estadístico = c(
    "Edad mínima",
    "Primer cuartil (Q1)",
    "Mediana",
    "Edad promedio",
    "Tercer cuartil (Q3)",
    "Edad máxima"
  ),
  Valor = c(
    min(datos$PC_EDAD, na.rm = TRUE),
    round(quantile(datos$PC_EDAD, 0.25, na.rm = TRUE),0),
    median(datos$PC_EDAD, na.rm = TRUE),
    round(mean(datos$PC_EDAD, na.rm = TRUE),0),
    round(quantile(datos$PC_EDAD, 0.75, na.rm = TRUE),0),
    max(datos$PC_EDAD, na.rm = TRUE)
  )
)

kable(
  tabla_edad,
  caption = "Estadísticas descriptivas de la edad",
  align = c("l","c")
)
Estadísticas descriptivas de la edad
Estadístico Valor
Edad mínima 15
Primer cuartil (Q1) 30
Mediana 47
Edad promedio 47
Tercer cuartil (Q3) 62
Edad máxima 98
ggplot(datos, aes(x = PC_EDAD)) +
  geom_histogram(
    bins = 20,
    aes(y = after_stat(density)),
    fill = "#2C3E50",
    color = "white",
    alpha = 0.85
  ) +
  geom_density(color = "#E74C3C", linewidth = 1) +
  labs(
    title = "Distribución de la edad de los participantes",
    x = "Edad (años)",
    y = "Densidad"
  ) +
  theme_minimal(base_size = 12) +
  theme(
    plot.title = element_text(face = "bold"),
    panel.grid.minor = element_blank()
  )

Fuente: Elaboración propia con base en la Encuesta de Seguridad, Convivencia Ciudadana y Confianza Institucional.

La edad promedio de los encuestados fue de 46.58 años, con una mediana de 47 años. La edad mínima registrada fue de 15 años y la máxima de 98 años, evidenciando una amplia participación de distintos grupos etarios en el estudio.

Percepción de seguridad

Seguridad en el barrio

tabla_p1 <- datos %>%
  count(P1) %>%
  mutate(
    Porcentaje = round(n/sum(n)*100,2)
  )

kable(
  tabla_p1,
  caption = "Percepción de seguridad en el barrio"
)
Percepción de seguridad en el barrio
P1 n Porcentaje
1 484 10.36
2 3426 73.31
3 642 13.74
4 121 2.59

Fuente: Elaboración propia con base en la Encuesta de Seguridad, Convivencia Ciudadana y Confianza Institucional.

Seguridad en la comuna

tabla_p3 <- datos %>%
  count(P3) %>%
  mutate(
    Porcentaje = round(n/sum(n)*100,2)
  )

kable(
  tabla_p3,
  caption = "Percepción de seguridad en la comuna"
)
Percepción de seguridad en la comuna
P3 n Porcentaje
1 347 7.43
2 3363 71.97
3 773 16.54
4 190 4.07

Fuente: Elaboración propia con base en la Encuesta de Seguridad, Convivencia Ciudadana y Confianza Institucional.

Seguridad en la ciudad

tabla_p5 <- datos %>%
  count(P5) %>%
  mutate(
    Porcentaje = round(n/sum(n)*100,2)
  )

kable(
  tabla_p5,
  caption = "Percepción de seguridad en la ciudad"
)
Percepción de seguridad en la ciudad
P5 n Porcentaje
1 193 4.13
2 2029 43.42
3 1923 41.15
4 528 11.30

Fuente: Elaboración propia con base en la Encuesta de Seguridad, Convivencia Ciudadana y Confianza Institucional.

Análisis de la percepción de seguridad

La Tabla 3 presenta la percepción de seguridad de los encuestados respecto a su barrio. Los resultados evidencian que la mayoría de las respuestas se concentra en las categorías intermedias de percepción, indicando que los ciudadanos presentan una valoración moderada de las condiciones de seguridad en su entorno inmediato.

Por su parte, la Tabla 4 muestra la percepción de seguridad en la comuna o corregimiento. Se observa una distribución similar a la encontrada para el barrio, aunque con ligeras variaciones que sugieren diferencias en la percepción cuando se amplía el ámbito geográfico de referencia.

La Tabla 5 presenta la percepción de seguridad en la ciudad. En comparación con los resultados obtenidos para barrio y comuna, se observa una percepción menos favorable, lo que indica que los ciudadanos tienden a considerar que los problemas de seguridad son más notorios cuando evalúan la ciudad en su conjunto.

En términos generales, la percepción de seguridad disminuye a medida que aumenta la escala territorial analizada, pasando del barrio a la comuna y posteriormente a la ciudad.

Percepción de seguridad según características sociodemográficas

Percepción de seguridad en el barrio según género

tabla_genero_p1 <- table(datos$GENERO, datos$P1)

kable(
  tabla_genero_p1,
  caption = "Percepción de seguridad en el barrio según género"
)
Percepción de seguridad en el barrio según género
1 2 3 4
277 1686 283 44
207 1740 359 77

Fuente: Elaboración propia con base en la Encuesta de Seguridad, Convivencia Ciudadana y Confianza Institucional.

Análisis de la percepción de seguridad según género

La Tabla 6 muestra la percepción de seguridad en el barrio según el género de los encuestados. Tanto hombres como mujeres concentran la mayor proporción de respuestas en la categoría identificada con el código 2, lo que indica una percepción relativamente favorable de la seguridad en el barrio.

No obstante, se observa que las mujeres presentan una mayor frecuencia en las categorías asociadas a una percepción menos favorable de la seguridad en comparación con los hombres. Esto podría sugerir una mayor sensación de vulnerabilidad frente a situaciones de inseguridad.

En términos generales, la percepción de seguridad presenta comportamientos similares entre ambos grupos, aunque con ligeras diferencias que podrían estar asociadas a factores sociales y de exposición al riesgo.

Percepción de seguridad en el barrio según estrato

tabla_estrato_p1 <- table(datos$ESTRATO_DEC, datos$P1)

kable(
  tabla_estrato_p1,
  caption = "Percepción de seguridad en el barrio según estrato"
)
Percepción de seguridad en el barrio según estrato
1 2 3 4
63 580 100 10
228 1516 241 41
126 887 222 47
9 98 26 8
6 51 19 6
1 2 0 0
51 292 34 9

Fuente: Elaboración propia con base en la Encuesta de Seguridad, Convivencia Ciudadana y Confianza Institucional.

Índice de victimización

El índice de victimización identifica si un hogar fue víctima de al menos uno de los siguientes delitos: hurto a personas, hurto a residencias, hurto a establecimientos comerciales, hurto de vehículos o extorsiones.

Índice de victimización para la ciudad

indice_ciudad <- sum(
  ifelse(datos$P20A == 1,
         datos$FACTOR,
         0),
  na.rm = TRUE
) /
sum(datos$FACTOR,
    na.rm = TRUE)

indice_ciudad_pct <- round(indice_ciudad * 100, 2)

El índice de victimización para la ciudad Castellana fue de 12.97%, lo que significa que aproximadamente 13 de cada 100 hogares fueron víctimas de al menos uno de los delitos considerados en el estudio.

Índice de victimización por comuna

vict_comuna <- datos %>%
  group_by(COMUNA) %>%
  summarise(
    Indice = sum(
      ifelse(P20A == 1,
             FACTOR,
             0),
      na.rm = TRUE
    ) /
      sum(FACTOR,
          na.rm = TRUE) * 100
  ) %>%
  arrange(desc(Indice))

comuna_mayor <- vict_comuna$COMUNA[which.max(vict_comuna$Indice)]
indice_mayor <- round(max(vict_comuna$Indice), 2)

comuna_menor <- vict_comuna$COMUNA[which.min(vict_comuna$Indice)]
indice_menor <- round(min(vict_comuna$Indice), 2)

kable(
  vict_comuna,
  digits = 2,
  caption = "Índice de victimización por comuna"
)
Índice de victimización por comuna
COMUNA Indice
5 21.75
13 16.54
7 14.43
9 14.29
90 14.28
60 14.19
1 14.12
80 13.56
16 13.25
3 12.97
10 12.26
2 12.24
8 11.47
11 11.42
70 10.57
4 9.97
6 7.26
15 5.96
12 4.33
50 0.00

Fuente: Elaboración propia con base en la Encuesta de Seguridad, Convivencia Ciudadana y Confianza Institucional.

La Tabla 8 evidencia diferencias importantes entre las comunas de la ciudad. La comuna 5 registró el mayor índice de victimización con un valor de 21,75%, mientras que la comuna 50 presentó el menor índice con 0,00%.

La diferencia entre la comuna con mayor y menor victimización fue de 21,75 puntos porcentuales, lo que evidencia una distribución desigual de los hechos de victimización entre los distintos territorios de la ciudad.

Estos resultados permiten identificar territorios con mayores niveles de afectación por hechos delictivos y constituyen un insumo relevante para la formulación de políticas públicas de seguridad ciudadana, focalización de recursos y fortalecimiento de estrategias de prevención y control del delito.

Conclusiones

# Género predominante
genero_mayor <- tabla_genero$GENERO[which.max(tabla_genero$n)]
porc_genero_mayor <- max(tabla_genero$Porcentaje)

# Estrato predominante
estrato_mayor <- tabla_estrato$ESTRATO_DEC[which.max(tabla_estrato$n)]
porc_estrato_mayor <- max(tabla_estrato$Porcentaje)

# Edad promedio
edad_promedio <- round(mean(datos$PC_EDAD, na.rm = TRUE), 0)

# Índice de victimización
indice_ciudad_pct <- round(indice_ciudad * 100, 2)

# Comuna mayor y menor victimización
comuna_mayor <- vict_comuna$COMUNA[which.max(vict_comuna$Indice)]
indice_mayor <- round(max(vict_comuna$Indice), 2)

comuna_menor <- vict_comuna$COMUNA[which.min(vict_comuna$Indice)]
indice_menor <- round(min(vict_comuna$Indice), 2)
tabla_genero <- datos %>%
  mutate(GENERO = case_when(
    GENERO == 1 ~ "Masculino",
    GENERO == 2 ~ "Femenino",
    TRUE ~ as.character(GENERO)
  )) %>%
  count(GENERO) %>%
  mutate(Porcentaje = n / sum(n) * 100)

genero_mayor <- tabla_genero %>%
  filter(n == max(n)) %>%
  pull(GENERO)

porc_genero_mayor <- tabla_genero %>%
  filter(n == max(n)) %>%
  pull(Porcentaje) %>%
  round(1)
  1. La población encuestada presenta una distribución equilibrada por género. La categoría con mayor participación corresponde al género Femenino, con una representación de 51% de la muestra analizada.

  2. El estrato socioeconómico con mayor participación fue el estrato 2, que representa aproximadamente el 43.36% de los encuestados.

  3. La edad promedio de los encuestados fue de 47 años, evidenciando una participación predominante de población adulta dentro del estudio.

  4. La percepción de seguridad varía según el ámbito territorial analizado, observándose diferencias entre la evaluación realizada para el barrio, la comuna y la ciudad.

  5. El índice de victimización para la ciudad Castellana fue de 12,97%, indicando que aproximadamente 13 de cada 100 hogares fueron víctimas de al menos uno de los delitos considerados en la investigación.

  6. La comuna 5 registró el mayor índice de victimización con 21,75%, mientras que la comuna 50 presentó el menor índice con 0,00%.

  7. Los resultados obtenidos constituyen una herramienta útil para la identificación de patrones de seguridad ciudadana y para la formulación de estrategias orientadas al fortalecimiento de la convivencia, la prevención del delito y la confianza institucional.