########################################################

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")
## =================================================