# **Introducción**
# La seguridad pública es un aspecto clave en el desarrollo de cualquier nación. Este análisis evalúa la incidencia delictiva en México
# utilizando datos de la **Encuesta Nacional de Victimización y Percepción sobre Seguridad Pública (ENVIPE) 2023**.
# El estudio se centra en el uso de **modelos estadísticos avanzados, análisis de clustering y técnicas probabilísticas** para entender
# tendencias delictivas y evaluar políticas de seguridad.
# **Fuente de los datos:**
# **INEGI - Encuesta Nacional de Victimización y Percepción sobre Seguridad Pública (ENVIPE) 2023**
# Disponible en: [https://www.inegi.org.mx/programas/envipe/](https://www.inegi.org.mx/programas/envipe/)
# Carga de librerías necesarias
# Cargar datos de ENVIPE 2023
datos <- read_csv("C:/Users/MARIN/Downloads/bd_envipe_2023_csv/TPer_Vic1.CSV", col_names = TRUE, show_col_types = FALSE)
## New names:
## • `` -> `...1`
# Normalizar nombres de columnas
datos <- datos %>% rename_with(toupper)
# Eliminar columnas innecesarias
if ("..1" %in% names(datos)) {
datos <- datos %>% select(-"..1")
}
# Selección y renombrado de variables clave
columnas_requeridas <- c("SEXO", "EDAD", "NOM_ENT", "AP4_3_1", "FAC_ELE")
if (all(columnas_requeridas %in% names(datos))) {
datos_seguridad <- datos[, columnas_requeridas]
colnames(datos_seguridad) <- c("Sexo", "Edad", "Entidad", "TipoDelito", "FactorExpansion")
} else {
stop("ERROR: Algunas columnas faltan en los datos. Revisa names(datos)")
}
# Mapeo de los valores de TipoDelito según su clasificación oficial
delitos_map <- c("1" = "Robo", "2" = "Fraude", "9" = "Otros delitos")
datos_seguridad$TipoDelito <- as.character(datos_seguridad$TipoDelito)
datos_seguridad$TipoDelito <- factor(datos_seguridad$TipoDelito, levels = names(delitos_map), labels = delitos_map)
# Modelo de clasificación usando Random Forest
set.seed(123)
modelo_rf <- randomForest(TipoDelito ~ Sexo + Edad, data = datos_seguridad, ntree = 500)
# Predicciones
datos_seguridad$Prediccion_RF <- predict(modelo_rf, datos_seguridad)
# Matriz de Confusión
matriz_confusion <- table(Predicho = datos_seguridad$Prediccion_RF, Real = datos_seguridad$TipoDelito)
print("Matriz de Confusión para Random Forest")
## [1] "Matriz de Confusión para Random Forest"
print(matriz_confusion)
## Real
## Predicho Robo Fraude Otros delitos
## Robo 58250 33478 256
## Fraude 0 0 0
## Otros delitos 0 0 0
# Análisis de clustering para clasificación de estados según incidencia delictiva
datos_cluster <- datos_seguridad %>% group_by(Entidad) %>% summarise(TotalCasos = sum(FactorExpansion))
modelo_gmm <- Mclust(datos_cluster$TotalCasos)
datos_cluster <- datos_cluster %>% mutate(Grupo = modelo_gmm$classification)
# Mapeo de nombres descriptivos para los grupos de clasificación
grupo_map <- c("1" = "Baja incidencia", "2" = "Alta incidencia")
datos_cluster$Grupo <- factor(datos_cluster$Grupo, levels = names(grupo_map), labels = grupo_map)
# Visualización de la segmentación de estados
ggplot(datos_cluster, aes(x = reorder(Entidad, TotalCasos), y = TotalCasos, fill = Grupo)) +
geom_col() +
coord_flip() +
labs(title = "Clasificación Probabilística de Estados según Incidencia Delictiva",
x = "Estado", y = "Incidencia Delictiva", fill = "Clasificación") +
theme_minimal()

# Visualización de la relación entre Edad y Tipo de Delito
ggplot(datos_seguridad, aes(x = Edad, fill = TipoDelito)) +
geom_density(alpha = 0.6) +
labs(title = "Distribución de Edad según Tipo de Delito",
x = "Edad", y = "Densidad", fill = "Tipo de Delito") +
theme_minimal()

# Distribución de casos por entidad
ggplot(datos_seguridad, aes(x = reorder(Entidad, FactorExpansion), y = FactorExpansion)) +
geom_col(fill = "steelblue") +
coord_flip() +
labs(title = "Distribución de Casos de Delitos por Entidad",
x = "Entidad", y = "Casos Reportados") +
theme_minimal()

Conclusión
Este análisis demuestra la utilidad de los modelos estadísticos para
evaluar la seguridad pública y la efectividad de las políticas de
prevención del delito. Se destaca la necesidad de mejorar la precisión
en las predicciones y utilizar más datos detallados sobre el contexto de
los delitos.
Para futuros estudios, se recomienda incluir:
- Factores socioeconómicos relacionados con el crimen
- Datos más granulares en el tiempo
- Mayor segmentación de las tipologías delictivas