########################################################
library(dplyr)
##
## Adjuntando el paquete: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
library(ggplot2)
df <- read.csv("envipe2025_zac_bcs_analisis_seguridad.csv")
df_est <- df %>%
filter(CVE_ENT %in% c(3,32)) %>% # BCS y Zacatecas
filter(
SEXO %in% c(1,2), # Hombre / Mujer
AP4_3_3 %in% c(1,2), # 1=Seguro 2=Inseguro
!is.na(AP4_6_1) # Delito prioritario existente
)
## Sexo
df_est$sexo <- factor(df_est$SEXO,
levels = c(1,2),
labels = c("Hombre","Mujer"))
## Estado
df_est$estado <- factor(df_est$CVE_ENT,
levels = c(3,32),
labels = c("Baja California Sur",
"Zacatecas"))
## Percepción
df_est$percepcion <- factor(df_est$AP4_3_3,
levels = c(1,2),
labels = c("Seguro","Inseguro"))
## Delito prioritario (según tu base real)
df_est$tipo_delito <- factor(df_est$AP4_6_1)
## Tabla sexo x percepción x estado
tabla_sexo <- table(df_est$estado,
df_est$sexo,
df_est$percepcion)
print("TABLA: Sexo vs percepción por estado")
## [1] "TABLA: Sexo vs percepción por estado"
print(tabla_sexo)
## , , = Seguro
##
##
## Hombre Mujer
## Baja California Sur 843 818
## Zacatecas 130 100
##
## , , = Inseguro
##
##
## Hombre Mujer
## Baja California Sur 427 561
## Zacatecas 676 937
## Porcentajes por estado
prop_estado <- prop.table(table(df_est$estado,
df_est$percepcion),1) * 100
print("PORCENTAJES POR ESTADO:")
## [1] "PORCENTAJES POR ESTADO:"
print(round(prop_estado,2))
##
## Seguro Inseguro
## Baja California Sur 62.70 37.30
## Zacatecas 12.48 87.52
## GRÁFICA 1 – Sexo y percepción por estado
ggplot(df_est,
aes(x = sexo,
fill = percepcion)) +
geom_bar(position = "fill") +
facet_wrap(~estado) +
scale_fill_manual(values = c("#2E86C1","#C0392B")) +
labs(
title = "Percepción de seguridad por sexo",
x = "Sexo",
y = "Proporción",
fill = "Percepción"
)

## GRÁFICA 2 – Comparación total por estado
ggplot(df_est,
aes(x = estado,
fill = percepcion)) +
geom_bar(position = "fill") +
scale_fill_manual(values = c("#27AE60","#E74C3C")) +
labs(
title = "Comparación de percepción de seguridad por estado",
x = "Estado",
y = "Proporción",
fill = "Percepción"
)

## GRÁFICA 3 – Delito prioritario vs percepción
ggplot(df_est,
aes(x = tipo_delito,
fill = percepcion)) +
geom_bar(position = "fill") +
facet_wrap(~estado) +
scale_fill_manual(values = c("#1ABC9C","#F39C12")) +
labs(
title = "Percepción según delito prioritario",
x = "Tipo de delito",
y = "Proporción",
fill = "Percepción"
) +
theme(
axis.text.x = element_text(angle = 45, hjust = 1)
)

## GRÁFICA 4 – Inseguridad por sexo
solo_inseguro <- df_est %>%
filter(percepcion == "Inseguro") %>%
count(estado, sexo) %>%
group_by(estado) %>%
mutate(porc = n / sum(n))
ggplot(solo_inseguro,
aes(x = sexo,
y = porc,
fill = sexo)) +
geom_bar(stat = "identity") +
facet_wrap(~estado) +
scale_fill_manual(values = c("#5DADE2","#F1948A")) +
labs(
title = "Proporción de población que se siente insegura",
x = "Sexo",
y = "Proporción",
fill = "Sexo"
)

## Baja California Sur
bcs <- df_est %>% filter(estado == "Baja California Sur")
tabla_bcs <- table(bcs$sexo, bcs$percepcion)
chi_bcs <- chisq.test(tabla_bcs)
print("CHI BCS")
## [1] "CHI BCS"
print(chi_bcs)
##
## Pearson's Chi-squared test with Yates' continuity correction
##
## data: tabla_bcs
## X-squared = 13.789, df = 1, p-value = 0.0002045
## Zacatecas
zac <- df_est %>% filter(estado == "Zacatecas")
tabla_zac <- table(zac$sexo, zac$percepcion)
chi_zac <- chisq.test(tabla_zac)
print("CHI ZACATECAS")
## [1] "CHI ZACATECAS"
print(chi_zac)
##
## Pearson's Chi-squared test with Yates' continuity correction
##
## data: tabla_zac
## X-squared = 16.878, df = 1, p-value = 3.986e-05
alpha <- 0.05
cat("\n================ INTERPRETACIÓN =================\n")
##
## ================ INTERPRETACIÓN =================
## BCS
if(chi_bcs$p.value < alpha){
cat("Baja California Sur:\n")
cat("Se RECHAZA la H0 → Existe asociación entre sexo y percepción.\n\n")
} else{
cat("Baja California Sur:\n")
cat("NO se rechaza H0 → No hay asociación estadística.\n\n")
}
## Baja California Sur:
## Se RECHAZA la H0 → Existe asociación entre sexo y percepción.
## Zacatecas
if(chi_zac$p.value < alpha){
cat("Zacatecas:\n")
cat("Se RECHAZA la H0 → Existe asociación entre sexo y percepción.\n\n")
} else{
cat("Zacatecas:\n")
cat("NO se rechaza H0 → No hay asociación estadística.\n\n")
}
## Zacatecas:
## Se RECHAZA la H0 → Existe asociación entre sexo y percepción.
cat("=================================================\n")
## =================================================