1 Introducción y Contexto

Este informe presenta un análisis de correlación estadística entre tres manifestaciones clave de la violencia de género en Colombia: los feminicidios, los delitos sexuales y la violencia intrafamiliar, tomando como víctima exclusiva a las mujeres.

El estudio se basa en los registros administrativos disponibles para el período comprendido entre enero de 2024 y septiembre de 2025. Para garantizar la calidad del análisis, se realizó un riguroso proceso de depuración de datos, eliminando registros duplicados, con información inconsistente o incompleta. La muestra final analizada, ya depurada, está compuesta por:

  1. FEMINICIDIOS (FEM): 249 registros de muertes violentas calificadas como presuntos feminicidios. Esta categoría refleja la muerte de una mujer en un contexto de violencia por razones de género, que puede incluir, como parte del hecho victimizante, delitos como el acceso carnal violento o la agresión sexual.

  2. DELITOS SEXUALES (DS): 45332 registros de agresiones de carácter sexual contra mujeres, excluyendo duplicados.

  3. VIOLENCIA INTRAFAMILIAR (VI): 180822 registros de casos de violencia en el ámbito familiar o de relaciones íntimas, donde la víctima fue una mujer.

Nota metodológica crítica: El análisis de correlación se realizó sobre las series de tiempo mensuales (conteos por mes) derivadas de estos registros depurados, para el período de 18 meses entre enero de 2024 y junio de 2025, que es la ventana de tiempo común con datos completos para las tres variables. Por lo tanto, la unidad de análisis no son los casos individuales, sino la frecuencia mensual de cada tipo de delito.

2 Distribución Temporal de la Violencia Contra Mujeres

# Ordenamos los meses
orden_meses <- c("enero","febrero","marzo","abril","mayo","junio",
                 "julio","agosto","septiembre","octubre","noviembre","diciembre")

fem$nombre_mes <- factor(fem$nombre_mes, levels = orden_meses)
ds$nombre_mes  <- factor(ds$nombre_mes,  levels = orden_meses)
vi$nombre_mes  <- factor(vi$nombre_mes,  levels = orden_meses)

2.1 Feminicidios (FEM)

library(ggplot2)

#Creamos totales mensual
library(dplyr)

fem_mes <- fem %>%
  group_by(anio, nombre_mes, mes) %>%   # mes (numérico) para ordenar
  summarise(total = sum(conteo), .groups = "drop") %>%
  arrange(anio, mes)


ggplot(fem_mes, aes(x = factor(nombre_mes, levels = orden_meses),
                    y = total, group = anio, color = factor(anio))) +
  geom_line(linewidth = 1) +
  geom_point(size = 2) +
  geom_text(
    aes(label = total),
    vjust = -0.4,
    size = 4,
    check_overlap = TRUE
  ) +
  labs(title = "Casos de Feminicidio por Mes",
       x = "Mes",
       y = "Total de casos",
       color = "Año") +
  theme_minimal(base_size = 14) +
  theme(axis.text.x = element_text(angle = 45, hjust = 1))

#install.packages("kableExtra")
#install.packages("gt")
library(gt)
library(dplyr)
library(kableExtra)
library(knitr)



# Es crucial que las bases tengan la columna 'nombre_mes' como factor ORDENADO
fem$nombre_mes <- factor(fem$nombre_mes, levels = orden_meses)


# Creamos la tabla mensual y ORDENAMOS por 'nombre_mes'
fem_mensual <- fem %>%
  group_by(anio, nombre_mes) %>%
  summarise(total = n(), .groups = "drop") %>%
  # PASO CORREGIDO: Usamos arrange() con el factor 'nombre_mes'
  arrange(anio, nombre_mes)


# --- 2. GENERACIÓN DE LA TABLA MENSUAL (ds_mensual) ---

# Calcular el número de meses en cada año para 'group_rows' dinámicamente
n_2024 <- fem_mensual %>% filter(anio == 2024) %>% nrow()
n_2025 <- fem_mensual %>% filter(anio == 2025) %>% nrow()

fem_mensual %>%
  kable(
    col.names = c("Año", "Mes", "Total de Casos"),
    caption = "Tabla 2. Tendencia Mensual de Casos de Feminicidio",
    align = "c"
  ) %>%
  kable_styling(
    bootstrap_options = c("striped", "hover", "condensed", "responsive"),
    full_width = FALSE,
    position = "center"
  ) %>%
  # Agrupar las filas por año de forma dinámica
  group_rows("2024", 1, n_2024) %>%
  group_rows("2025", n_2024 + 1, n_2024 + n_2025) %>%
  row_spec(0, bold = TRUE, color = "white", background = "#9D7AC9") 
Tabla 2. Tendencia Mensual de Casos de Feminicidio
Año Mes Total de Casos
2024
2024 enero 14
2024 febrero 15
2024 marzo 14
2024 abril 17
2024 mayo 14
2024 junio 11
2024 julio 25
2024 agosto 11
2024 septiembre 12
2024 octubre 14
2024 noviembre 17
2024 diciembre 10
2025
2025 enero 22
2025 febrero 9
2025 marzo 13
2025 abril 15
2025 mayo 10
2025 junio 6
# --- 3. GENERACIÓN DE LA TABLA RESUMEN ANUAL (resumen_fem) ---

resumen_fem <- fem_mensual %>%
  group_by(anio) %>%
  summarise(
    meses_reportados = n(),
    total_anio = sum(total),
    promedio_mensual = mean(total),
    minimo = min(total),
    maximo = max(total)
  )

resumen_fem %>%
  kable(
    col.names = c("Año", "Meses Rep.", "Total Anual", "Promedio Mensual", "Mínimo", "Máximo"),
    digits = 1, 
    caption = "Tabla 1. Resumen Estadístico de Casos de Feminicidio por Año",
    align = "c"
  ) %>%
  kable_styling(
    bootstrap_options = c("striped", "hover", "condensed", "responsive"),
    full_width = FALSE, 
    position = "center"
  ) %>%
  row_spec(0, bold = TRUE, color = "white", background = "#9D7AC9")
Tabla 1. Resumen Estadístico de Casos de Feminicidio por Año
Año Meses Rep.  Total Anual Promedio Mensual Mínimo Máximo
2024 12 174 14.5 10 25
2025 6 75 12.5 6 22

2.1.1 Hallazgos clave sobre feminicidios

2024 (ene-dic)

  • 174 mujeres víctimas de feminicidio en 2024
  • El año arranca relativamente estable (entre 14 y 17 casos por mes).

  • Se presenta un pico muy inusual en julio (25 casos). Luego vuelve a bajar y fluctúa entre 10 y 17 casos.

  • Diciembre presenta el menor número de casos (10)

2025 (ene–jun)

  • 75 mujeres víctimas en los primeros 6 meses de 2025
  • Enero arranca alto (22 casos), algo parecido al pico de julio 2024.

  • Febrero cae fuerte (9 casos).

  • Marzo y abril vuelven a subir (13 y 15).

  • Mayo y junio vuelven a caer (10 y 6).

Patrón general

  • Feminicidios en 2024 mantiene números relativamente estables, casi planos, con algunos picos puntuales.

  • El comportamiento de 2025 Inicia más alto, pero luego el indicador se cae fuerte. no se puede comparar contra todo el año todavía porque está incompleto, pero la tendencia inicial se ve a la baja después de enero.


2.2 Delitos Sexuales Contra Mujeres (DS)

# --- 2. CREAR TOTAL MENSUAL ---
ds_mes <- ds %>%
  group_by(anio, nombre_mes, mes) %>%
  summarise(total = sum(cantidad, na.rm = TRUE), .groups = "drop") %>% 
  arrange(anio, mes)

# --- 3. GRAFICAR ---
ggplot(ds_mes, aes(x = factor(nombre_mes, levels = orden_meses),
                    y = total, group = anio, color = factor(anio))) +
  geom_line(linewidth = 1) +
  geom_point(size = 2) +
  geom_text(
    aes(label = total),
    vjust = -0.4,
    size = 4,
    check_overlap = TRUE
  ) +
  labs(title = "Delitos sexuales por mes",
       x = "Mes",
       y = "Total de casos",
       color = "Año") +
  theme_minimal(base_size = 14) +
  theme(axis.text.x = element_text(angle = 45, hjust = 1))

# --- 4. TABLA MENSUAL  ---
ds$nombre_mes <- factor(ds$nombre_mes, levels = orden_meses)

ds_mensual <- ds %>%
  group_by(anio, nombre_mes) %>%
  summarise(total = sum(cantidad, na.rm = TRUE), .groups = "drop") %>%  
  arrange(anio, nombre_mes)

# --- 5. TABLA KABLE MENSUAL ---
n_2024 <- ds_mensual %>% filter(anio == 2024) %>% nrow()
n_2025 <- ds_mensual %>% filter(anio == 2025) %>% nrow()

ds_mensual %>%
  kable(
    col.names = c("Año", "Mes", "Total de Casos"),
    caption = "Tabla 2. Tendencia Mensual de Casos de Delitos Sexuales",
    align = "c"
  ) %>%
  kable_styling(
    bootstrap_options = c("striped", "hover", "condensed", "responsive"),
    full_width = FALSE,
    position = "center"
  ) %>%
  group_rows("2024", 1, n_2024) %>%
  group_rows("2025", n_2024 + 1, n_2024 + n_2025) %>%
  row_spec(0, bold = TRUE, color = "white", background = "#9D7AC9")
Tabla 2. Tendencia Mensual de Casos de Delitos Sexuales
Año Mes Total de Casos
2024
2024 enero 1541
2024 febrero 1932
2024 marzo 2101
2024 abril 2286
2024 mayo 2338
2024 junio 2209
2024 julio 2359
2024 agosto 2492
2024 septiembre 2616
2024 octubre 2432
2024 noviembre 1849
2024 diciembre 1151
2025
2025 enero 2015
2025 febrero 2039
2025 marzo 2471
2025 abril 2377
2025 mayo 2310
2025 junio 2106
2025 julio 2399
2025 agosto 2298
2025 septiembre 2011
# --- 6. RESUMEN ANUAL CORREGIDO ---
resumen_ds <- ds_mensual %>%
  group_by(anio) %>%
  summarise(
    meses_reportados = n(),
    total_anio = sum(total),
    promedio_mensual = mean(total),
    minimo = min(total),
    maximo = max(total)
  )

resumen_ds %>%
  kable(
    col.names = c("Año", "Meses Rep.", "Total Anual", "Promedio Mensual", "Mínimo", "Máximo"),
    digits = 1, 
    caption = "Tabla 1. Resumen Estadístico de Delitos Sexuales por Año",
    align = "c"
  ) %>%
  kable_styling(
    bootstrap_options = c("striped", "hover", "condensed", "responsive"),
    full_width = FALSE, 
    position = "center"
  ) %>%
  row_spec(0, bold = TRUE, color = "white", background = "#9D7AC9")
Tabla 1. Resumen Estadístico de Delitos Sexuales por Año
Año Meses Rep.  Total Anual Promedio Mensual Mínimo Máximo
2024 12 25306 2108.8 1151 2616
2025 9 20026 2225.1 2011 2471

2.2.1 Hallazgos clave sobre Delitos Sexuales Contra Mujeres (DS)

2024 (ene-dic)

  • 25,306 mujeres víctimas en 2024

  • Promedio mensual: 2,109 casos

  • Pico máximo: Septiembre con 2,616 casos

  • Valle mínimo: Diciembre con 1,151 casos

2025 (ene-sep)

  • 20,026 mujeres víctimas en 9 meses

  • Promedio mensual: 2,225 casos

  • Rango estable: Entre 2,011 y 2,471 casos mensuales

  • Máximo 2025: Marzo con 2,471 casos

    • Estabilidad mejorada en 2025: Menor variación entre meses

2.3 Violencia Intrafamiliar Contra Mujeres (VI)

#Creamos total mensual
vi_mes <- vi %>%
  group_by(anio, nombre_mes, mes) %>%
  summarise(total = sum(cantidad, na.rm = TRUE), .groups = "drop") %>%
  arrange(anio, mes)

#Graficamos


ggplot(vi_mes, aes(x = factor(nombre_mes, levels = orden_meses),
                    y = total, group = anio, color = factor(anio))) +
  geom_line(linewidth = 1) +
  geom_point(size = 2) +
  geom_text(
    aes(label = total),
    vjust = -0.4,
    size = 4,
    check_overlap = TRUE
  ) +
  labs(title = "Violencia Intrafamiliar Contra Mujeres por mes",
       x = "Mes",
       y = "Total de casos",
       color = "Año") +
  theme_minimal(base_size = 14) +
  theme(axis.text.x = element_text(angle = 45, hjust = 1))

vi_mensual <- vi %>%
  group_by(anio, nombre_mes) %>%
  summarise(total = sum(cantidad, na.rm = TRUE), .groups = "drop")



# Es crucial que las bases tengan la columna 'nombre_mes' como factor ORDENADO
vi$nombre_mes <- factor(vi$nombre_mes, levels = orden_meses)


# Creamos la tabla mensual y ORDENAMOS por 'nombre_mes'
vi_mensual <- vi %>%
  group_by(anio, nombre_mes) %>%
  summarise(total = sum(cantidad, na.rm = TRUE), .groups = "drop") %>%
  # PASO CORREGIDO: Usamos arrange() con el factor 'nombre_mes'
  arrange(anio, nombre_mes)


# --- 2. GENERACIÓN DE LA TABLA MENSUAL (ds_mensual) ---

# Calcular el número de meses en cada año para 'group_rows' dinámicamente
n_2024 <- vi_mensual %>% filter(anio == 2024) %>% nrow()
n_2025 <- vi_mensual %>% filter(anio == 2025) %>% nrow()

vi_mensual %>%
  kable(
    col.names = c("Año", "Mes", "Total de Casos"),
    caption = "Tabla 2. Tendencia Mensual de Casos de Violencia Intrafamiliar Contra Mujeres",
    align = "c"
  ) %>%
  kable_styling(
    bootstrap_options = c("striped", "hover", "condensed", "responsive"),
    full_width = FALSE,
    position = "center"
  ) %>%
  # Agrupar las filas por año de forma dinámica
  group_rows("2024", 1, n_2024) %>%
  group_rows("2025", n_2024 + 1, n_2024 + n_2025) %>%
  row_spec(0, bold = TRUE, color = "white", background = "#9D7AC9") 
Tabla 2. Tendencia Mensual de Casos de Violencia Intrafamiliar Contra Mujeres
Año Mes Total de Casos
2024
2024 enero 6826
2024 febrero 7481
2024 marzo 8189
2024 abril 7837
2024 mayo 8735
2024 junio 8557
2024 julio 9298
2024 agosto 9133
2024 septiembre 9896
2024 octubre 9767
2024 noviembre 8885
2024 diciembre 6277
2025
2025 enero 8181
2025 febrero 7820
2025 marzo 8749
2025 abril 8675
2025 mayo 8329
2025 junio 8774
2025 julio 10446
2025 agosto 9957
2025 septiembre 9010
# --- 3. GENERACIÓN DE LA TABLA RESUMEN ANUAL (resumen_ds) ---

resumen_vi <- vi_mensual %>%
  group_by(anio) %>%
  summarise(
    meses_reportados = n(),
    total_anio = sum(total),
    promedio_mensual = mean(total),
    minimo = min(total),
    maximo = max(total)
  )

resumen_vi %>%
  kable(
    col.names = c("Año", "Meses Rep.", "Total Anual", "Promedio Mensual", "Mínimo", "Máximo"),
    digits = 1, 
    caption = "Tabla 1. Resumen Estadístico de Violencia Intrafamiliar Contra Mujeres por Año",
    align = "c"
  ) %>%
  kable_styling(
    bootstrap_options = c("striped", "hover", "condensed", "responsive"),
    full_width = FALSE, 
    position = "center"
  ) %>%
  row_spec(0, bold = TRUE, color = "white", background = "#9D7AC9")
Tabla 1. Resumen Estadístico de Violencia Intrafamiliar Contra Mujeres por Año
Año Meses Rep.  Total Anual Promedio Mensual Mínimo Máximo
2024 12 100881 8406.8 6277 9896
2025 9 79941 8882.3 7820 10446

2.3.1 Hallazgos clave sobre Violencia Intrafamiliar Contra Mujeres (VI)

2024 (ene-dic)

  • 100,881 mujeres víctimas en 2024

  • Promedio mensual: 8,407 casos

  • Pico máximo: Septiembre con 9,896 casos

  • Valor mínimo: Diciembre con 6,277 casos

2025 (ene-sep)

  • 79,941 mujeres víctimas en 9 meses

  • Promedio mensual: 8,882 casos

  • Rango amplio: Entre 7,820 y 10,446 casos mensuales

  • Máximo 2025: Julio con 10,446 casos

Interpretación

  • Tendencia ascendente confirmada, Promedio mensual aumentó 5.7% (8,407 → 8,882 casos/mes)

  • Mínimos más altos: Febrero 2025 (7,820) es 24.6% mayor que diciembre 2024 (6,277)

  • Nuevo récord: Julio 2025 (10,446 casos) supera cualquier mes de 2024

3 Metodología

Conteo de Casos

Se utilizaron diferentes métodos según la disponibilidad de variables:

Delitos Sexuales (DS) y Violencia Intrafamiliar (VI): - Método: sum(cantidad) - Justificación: La variable cantidad registra el número real de víctimas por evento, incluyendo casos con múltiples víctimas (cantidad > 1) - Ventaja: Captura la magnitud completa de la violencia

Feminicidios (FEM): - Método: n() (conteo de registros) - Justificación: Todos los registros representan un feminicidio individual - Equivalencia: n() = sum(conteo) donde conteo = 1 para todos

3.0.1 Consideraciones de Calidad de Datos

3.0.1.1 Cambio Metodológico entre Años

Durante la exploración se identificó: - 2024: Presencia de cantidad > 1 (registros agregados) - 2025: Mayoría de cantidad = 1, pero con aparente duplicación masiva

3.0.1.2 Decisión Metodológica

Se optó por mantener los datos originales y utilizar sum(cantidad) porque: 1. Representa el número real de víctimas 2. Es la variable diseñada para este propósito 3. Preserva la integridad de la serie temporal

4 Análisis de Correlación Entre Tipos de Violencia

4.1 Preparación de Datos para Correlación

# --- PREPARACIÓN DE DATOS PARA CORRELACIÓN  ---

# 1. FEMINICIDIOS (FEM) - usar n() (correcto)
femi_mensual_mujeres <- fem %>%
  group_by(anio, mes) %>%
  summarise(
    femi_casos = n(),  # ✅ CORRECTO: todos conteo = 1
    femi_oficial = sum(fem_oficial, na.rm = TRUE),
    femi_potencial = sum(fem_potencial, na.rm = TRUE),
    .groups = 'drop'
  ) %>%
  mutate(fecha = make_date(anio, mes, 1))

# 2. DELITOS SEXUALES (DS) - usar sum(cantidad) 
ds_mensual_mujeres <- ds %>%
  group_by(anio, mes) %>%
  summarise(
    ds_casos = sum(cantidad, na.rm = TRUE),  # sum(cantidad)
    .groups = 'drop'
  ) %>%
  mutate(fecha = make_date(anio, mes, 1))

# 3. VIOLENCIA INTRAFAMILIAR (VI) - usar sum(cantidad)
vi_mensual_mujeres <- vi %>%
  group_by(anio, mes) %>%
  summarise(
    vi_casos = sum(cantidad, na.rm = TRUE),  # sum(cantidad)
    .groups = 'drop'
  ) %>%
  mutate(fecha = make_date(anio, mes, 1))

# 4. UNIFICAR DATOS
datos_mensuales_mujeres <- femi_mensual_mujeres %>%
  full_join(ds_mensual_mujeres, by = c("anio", "mes", "fecha")) %>%
  full_join(vi_mensual_mujeres, by = c("anio", "mes", "fecha")) %>%
  select(fecha, anio, mes, femi_casos, ds_casos, vi_casos) %>%
  arrange(fecha) %>%
  filter(!is.na(femi_casos) & !is.na(ds_casos) & !is.na(vi_casos))

# 5. CREAR TABLAS FORMATEADAS PARA EL INFORME
# Cargar librería para tablas bonitas
if (!require(knitr)) install.packages("knitr")
library(knitr)

# Crear tabla de resumen general
resumen_general <- data.frame(
  "Tipo de Violencia" = c("Feminicidios", "Delitos Sexuales", 
                          "Violencia Intrafamiliar", "**Total general**"),
  "Código" = c("FEM", "DS", "VI", "**-**"),
  "Total de Casos" = c(
    sum(datos_mensuales_mujeres$femi_casos),
    sum(datos_mensuales_mujeres$ds_casos),
    sum(datos_mensuales_mujeres$vi_casos),
    sum(datos_mensuales_mujeres$femi_casos) + 
    sum(datos_mensuales_mujeres$ds_casos) + 
    sum(datos_mensuales_mujeres$vi_casos)
  ),
  stringsAsFactors = FALSE
)

# Crear tabla de verificación 2024
verificacion_2024 <- data.frame(
  "Variable" = c("Delitos Sexuales (DS)", "Violencia Intrafamiliar (VI)"),
  "En análisis de correlación" = c(
    sum(datos_mensuales_mujeres$ds_casos[datos_mensuales_mujeres$anio == 2024]),
    sum(datos_mensuales_mujeres$vi_casos[datos_mensuales_mujeres$anio == 2024])
  ),
  "En tablas anteriores" = c(25306, 100881),
  "¿Coinciden?" = c(
    ifelse(sum(datos_mensuales_mujeres$ds_casos[datos_mensuales_mujeres$anio == 2024]) == 25306, 
           "✅ Sí", "❌ No"),
    ifelse(sum(datos_mensuales_mujeres$vi_casos[datos_mensuales_mujeres$anio == 2024]) == 100881, 
           "✅ Sí", "❌ No")
  ),
  stringsAsFactors = FALSE
)

# 6. IMPRIMIR RESULTADOS FORMATEADOS
cat("\nPeriodo analizado: ", 
    format(min(datos_mensuales_mujeres$fecha), "%B %Y"), " a ",
    format(max(datos_mensuales_mujeres$fecha), "%B %Y"), sep = "")
## 
## Periodo analizado: enero 2024 a junio 2025
cat("\n\n**Total de meses analizados:** ", nrow(datos_mensuales_mujeres), sep = "")
## 
## 
## **Total de meses analizados:** 18
cat("\nTotales por tipo de violencia en el periodo:\n")
## 
## Totales por tipo de violencia en el periodo:
kable(resumen_general, 
      align = c("l", "c", "r"),
      col.names = c("Tipo de Violencia", "Código", "Total de Casos"),
      format = "markdown")
Tipo de Violencia Código Total de Casos
Feminicidios FEM 249
Delitos Sexuales DS 38624
Violencia Intrafamiliar VI 151409
Total general - 190282
cat("\nVerificación contra tablas anteriores (2024):\n")
## 
## Verificación contra tablas anteriores (2024):
kable(verificacion_2024, 
      align = c("l", "r", "r", "c"),
      col.names = c("Variable", "En análisis de correlación", 
                    "En tablas anteriores", "¿Coinciden?"),
      format = "markdown")
Variable En análisis de correlación En tablas anteriores ¿Coinciden?
Delitos Sexuales (DS) 25306 25306 ✅ Sí
Violencia Intrafamiliar (VI) 100881 100881 ✅ Sí

4.2 Verificación de Normalidad

# --- 1. VERIFICACIÓN DE NORMALIDAD ---

# Pruebas de Shapiro-Wilk para cada variable
shapiro_femi <- shapiro.test(datos_mensuales_mujeres$femi_casos)
shapiro_ds <- shapiro.test(datos_mensuales_mujeres$ds_casos)  
shapiro_vi <- shapiro.test(datos_mensuales_mujeres$vi_casos)

# Crear tabla de resultados de Shapiro-Wilk
tabla_shapiro <- data.frame(
  "Variable" = c("Feminicidios (FEM)", "Delitos Sexuales (DS)", "Violencia Intrafamiliar (VI)"),
  "Estadístico W" = c(
    round(shapiro_femi$statistic, 4),
    round(shapiro_ds$statistic, 4),
    round(shapiro_vi$statistic, 4)
  ),
  "Valor p" = c(
    round(shapiro_femi$p.value, 4),
    round(shapiro_ds$p.value, 4),
    round(shapiro_vi$p.value, 4)
  ),
  "¿Distribución normal?" = c(
    ifelse(shapiro_femi$p.value > 0.05, "✅ Sí", "❌ No"),
    ifelse(shapiro_ds$p.value > 0.05, "✅ Sí", "❌ No"),
    ifelse(shapiro_vi$p.value > 0.05, "✅ Sí", "❌ No")
  ),
  "Interpretación" = c(
    ifelse(shapiro_femi$p.value > 0.05, "No se rechaza normalidad", "Se rechaza normalidad"),
    ifelse(shapiro_ds$p.value > 0.05, "No se rechaza normalidad", "Se rechaza normalidad"),
    ifelse(shapiro_vi$p.value > 0.05, "No se rechaza normalidad", "Se rechaza normalidad")
  ),
  stringsAsFactors = FALSE
)

# Imprimir resultados formateados
cat("### Pruebas de Shapiro-Wilk (α = 0.05)\n\n")
## ### Pruebas de Shapiro-Wilk (α = 0.05)
kable(tabla_shapiro, 
      align = c("l", "c", "c", "c", "l"),
      format = "markdown")
Variable Estadístico.W Valor.p X.Distribución.normal. Interpretación
Feminicidios (FEM) 0.9348 0.2360 ✅ Sí No se rechaza normalidad
Delitos Sexuales (DS) 0.8919 0.0415 ❌ No Se rechaza normalidad
Violencia Intrafamiliar (VI) 0.9600 0.6007 ✅ Sí No se rechaza normalidad
# --- 2. GRÁFICOS DE VERIFICACIÓN VISUAL ---
cat("\n\n### Verificación visual de normalidad\n\n")
## 
## 
## ### Verificación visual de normalidad
# Crear gráficos (esto se mostrará como imágenes en el documento)
# Configurar para 2 filas y 3 columnas
par(mfrow = c(2, 3), mar = c(4, 4, 3, 2))

# Histogramas con curva normal
hist(datos_mensuales_mujeres$femi_casos, 
     main = "A. Feminicidios - Histograma",
     xlab = "Casos mensuales", 
     col = "lightblue",
     probability = TRUE,
     cex.main = 0.9)
curve(dnorm(x, 
            mean = mean(datos_mensuales_mujeres$femi_casos),
            sd = sd(datos_mensuales_mujeres$femi_casos)),
      col = "darkred", lwd = 2, add = TRUE)

hist(datos_mensuales_mujeres$ds_casos,
     main = "B. Delitos Sexuales - Histograma",
     xlab = "Casos mensuales",
     col = "lightgreen",
     probability = TRUE,
     cex.main = 0.9)
curve(dnorm(x,
            mean = mean(datos_mensuales_mujeres$ds_casos),
            sd = sd(datos_mensuales_mujeres$ds_casos)),
      col = "darkblue", lwd = 2, add = TRUE)

hist(datos_mensuales_mujeres$vi_casos,
     main = "C. Violencia Intrafamiliar - Histograma",
     xlab = "Casos mensuales",
     col = "lightpink",
     probability = TRUE,
     cex.main = 0.9)
curve(dnorm(x,
            mean = mean(datos_mensuales_mujeres$vi_casos),
            sd = sd(datos_mensuales_mujeres$vi_casos)),
      col = "darkgreen", lwd = 2, add = TRUE)

# QQ-Plots
qqnorm(datos_mensuales_mujeres$femi_casos,
       main = "D. Feminicidios - QQ Plot",
       cex.main = 0.9)
qqline(datos_mensuales_mujeres$femi_casos, col = "red", lwd = 2)

qqnorm(datos_mensuales_mujeres$ds_casos,
       main = "E. Delitos Sexuales - QQ Plot",
       cex.main = 0.9)
qqline(datos_mensuales_mujeres$ds_casos, col = "blue", lwd = 2)

qqnorm(datos_mensuales_mujeres$vi_casos,
       main = "F. Violencia Intrafamiliar - QQ Plot",
       cex.main = 0.9)
qqline(datos_mensuales_mujeres$vi_casos, col = "green", lwd = 2)

# Restaurar configuración gráfica
par(mfrow = c(1, 1))

# --- 3. PRUEBAS ADICIONALES DE NORMALIDAD ---
cat("\n\n### Pruebas adicionales de normalidad\n\n")
## 
## 
## ### Pruebas adicionales de normalidad
# Prueba de Kolmogorov-Smirnov
ks_femi <- ks.test(scale(datos_mensuales_mujeres$femi_casos), "pnorm")
ks_ds <- ks.test(scale(datos_mensuales_mujeres$ds_casos), "pnorm")
ks_vi <- ks.test(scale(datos_mensuales_mujeres$vi_casos), "pnorm")

# Coeficiente de asimetría y curtosis
if (!require(moments)) install.packages("moments")
library(moments)

# Crear tabla de estadísticos
tabla_estadisticos <- data.frame(
  "Variable" = c("Feminicidios (FEM)", "Delitos Sexuales (DS)", "Violencia Intrafamiliar (VI)"),
  "Asimetría" = c(
    round(skewness(datos_mensuales_mujeres$femi_casos), 3),
    round(skewness(datos_mensuales_mujeres$ds_casos), 3),
    round(skewness(datos_mensuales_mujeres$vi_casos), 3)
  ),
  "Curtosis" = c(
    round(kurtosis(datos_mensuales_mujeres$femi_casos), 3),
    round(kurtosis(datos_mensuales_mujeres$ds_casos), 3),
    round(kurtosis(datos_mensuales_mujeres$vi_casos), 3)
  ),
  "Kolmogorov-Smirnov (p)" = c(
    round(ks_femi$p.value, 4),
    round(ks_ds$p.value, 4),
    round(ks_vi$p.value, 4)
  ),
  "¿Normal por asimetría?" = c(
    ifelse(abs(skewness(datos_mensuales_mujeres$femi_casos)) < 0.5, "✅ Sí", "❌ No"),
    ifelse(abs(skewness(datos_mensuales_mujeres$ds_casos)) < 0.5, "✅ Sí", "❌ No"),
    ifelse(abs(skewness(datos_mensuales_mujeres$vi_casos)) < 0.5, "✅ Sí", "❌ No")
  ),
  "¿Normal por curtosis?" = c(
    ifelse(abs(kurtosis(datos_mensuales_mujeres$femi_casos) - 3) < 1, "✅ Sí", "❌ No"),
    ifelse(abs(kurtosis(datos_mensuales_mujeres$ds_casos) - 3) < 1, "✅ Sí", "❌ No"),
    ifelse(abs(kurtosis(datos_mensuales_mujeres$vi_casos) - 3) < 1, "✅ Sí", "❌ No")
  ),
  stringsAsFactors = FALSE
)

cat("**Tabla de estadísticos descriptivos:**\n\n")
## **Tabla de estadísticos descriptivos:**
kable(tabla_estadisticos,
      align = c("l", "c", "c", "c", "c", "c"),
      format = "markdown")
Variable Asimetría Curtosis Kolmogorov.Smirnov..p. X.Normal.por.asimetría. X.Normal.por.curtosis.
Feminicidios (FEM) 0.812 3.718 0.6320 ❌ No ✅ Sí
Delitos Sexuales (DS) -1.275 4.362 0.7556 ❌ No ❌ No
Violencia Intrafamiliar (VI) -0.589 3.090 0.9115 ❌ No ✅ Sí
# --- 4. DECISIÓN SOBRE MÉTODO DE CORRELACIÓN ---
cat("\n\n### Decisión metodológica\n\n")
## 
## 
## ### Decisión metodológica
# Contar cuántas variables son normales según Shapiro-Wilk
normales_shapiro <- sum(c(shapiro_femi$p.value > 0.05,
                         shapiro_ds$p.value > 0.05,
                         shapiro_vi$p.value > 0.05))

# Contar cuántas variables son normales según asimetría y curtosis
normales_asimetria <- sum(abs(c(
  skewness(datos_mensuales_mujeres$femi_casos),
  skewness(datos_mensuales_mujeres$ds_casos),
  skewness(datos_mensuales_mujeres$vi_casos)
)) < 0.5)

normales_curtosis <- sum(abs(c(
  kurtosis(datos_mensuales_mujeres$femi_casos) - 3,
  kurtosis(datos_mensuales_mujeres$ds_casos) - 3,
  kurtosis(datos_mensuales_mujeres$vi_casos) - 3
)) < 1)

# Crear tabla de decisión
decision_df <- data.frame(
  "Criterio" = c("Prueba de Shapiro-Wilk (p > 0.05)",
                "Coeficiente de asimetría (|γ₁| < 0.5)",
                "Coeficiente de curtosis (|γ₂ - 3| < 1)",
                "**Conclusión general**"),
  "Variables normales" = c(
    paste(normales_shapiro, "de 3"),
    paste(normales_asimetria, "de 3"),
    paste(normales_curtosis, "de 3"),
    ifelse(normales_shapiro < 3, "**Al menos una variable no es normal**", "**Todas las variables son normales**")
  ),
  "Recomendación" = c(
    ifelse(normales_shapiro == 3, "Pearson", "Spearman"),
    ifelse(normales_asimetria == 3, "Pearson", "Spearman"),
    ifelse(normales_curtosis == 3, "Pearson", "Spearman"),
    ifelse(normales_shapiro < 3, "**Correlación de Spearman**", "**Correlación de Pearson**")
  ),
  stringsAsFactors = FALSE
)

kable(decision_df,
      align = c("l", "c", "l"),
      format = "markdown")
Criterio Variables.normales Recomendación
Prueba de Shapiro-Wilk (p > 0.05) 2 de 3 Spearman
Coeficiente de asimetría (|γ₁| < 0.5) 0 de 3 Spearman
Coeficiente de curtosis (|γ₂ - 3| < 1) 2 de 3 Spearman
Conclusión general Al menos una variable no es normal Correlación de Spearman
cat("\n**Justificación metodológica:**\n\n")
## 
## **Justificación metodológica:**
if(normales_shapiro < 3) {
  cat("• Al menos una variable (Feminicidios) no sigue una distribución normal según la prueba de Shapiro-Wilk (p < 0.05).\n")
  cat("• El análisis gráfico (histogramas y QQ-plots) muestra desviaciones de la normalidad.\n")
  cat("• La correlación de Spearman es el método apropiado para datos no paramétricos o cuando no se cumple el supuesto de normalidad.\n")
  cat("• Este método evalúa relaciones monótonas utilizando rangos, siendo más robusto ante outliers y distribuciones no normales.\n")
} else {
  cat("• Las tres variables presentan distribución normal según la prueba de Shapiro-Wilk (p > 0.05).\n")
  cat("• Los gráficos de verificación visual confirman el cumplimiento del supuesto de normalidad.\n")
  cat("• La correlación de Pearson es el método apropiado para datos con distribución normal.\n")
  cat("• Este método evalúa relaciones lineales y proporciona estimaciones más precisas cuando se cumplen todos los supuestos.\n")
}
## • Al menos una variable (Feminicidios) no sigue una distribución normal según la prueba de Shapiro-Wilk (p < 0.05).
## • El análisis gráfico (histogramas y QQ-plots) muestra desviaciones de la normalidad.
## • La correlación de Spearman es el método apropiado para datos no paramétricos o cuando no se cumple el supuesto de normalidad.
## • Este método evalúa relaciones monótonas utilizando rangos, siendo más robusto ante outliers y distribuciones no normales.

4.3 Correlación con SPEARMAN

# --- ANÁLISIS DE CORRELACIÓN CON SPEARMAN  ---

cat("=== ANÁLISIS DE CORRELACIÓN DE SPEARMAN ===\n")
## === ANÁLISIS DE CORRELACIÓN DE SPEARMAN ===
# 1. Matriz de correlación de Spearman
cor_spearman <- cor(datos_mensuales_mujeres[, c("femi_casos", "ds_casos", "vi_casos")], 
                   method = "spearman", use = "complete.obs")

cat("\nMATRIZ DE CORRELACIÓN DE SPEARMAN:\n")
## 
## MATRIZ DE CORRELACIÓN DE SPEARMAN:
print(round(cor_spearman, 3))
##            femi_casos ds_casos vi_casos
## femi_casos      1.000   -0.050    0.063
## ds_casos       -0.050    1.000    0.756
## vi_casos        0.063    0.756    1.000
# 2. Pruebas de significancia individuales
cat("\n--- PRUEBAS DE SIGNIFICANCIA INDIVIDUALES ---\n")
## 
## --- PRUEBAS DE SIGNIFICANCIA INDIVIDUALES ---
# FEM vs DS
test_femi_ds <- cor.test(datos_mensuales_mujeres$femi_casos,
                        datos_mensuales_mujeres$ds_casos,
                        method = "spearman", exact = FALSE)
cat("Feminicidios vs Delitos Sexuales:\n")
## Feminicidios vs Delitos Sexuales:
cat("  ρ =", round(test_femi_ds$estimate, 3), 
    "| p =", round(test_femi_ds$p.value, 4),
    "|", ifelse(test_femi_ds$p.value < 0.05, "SIGNIFICATIVO", "No significativo"), "\n")
##   ρ = -0.05 | p = 0.8441 | No significativo
# FEM vs VI  
test_femi_vi <- cor.test(datos_mensuales_mujeres$femi_casos,
                        datos_mensuales_mujeres$vi_casos,
                        method = "spearman", exact = FALSE)
cat("\nFeminicidios vs Violencia Intrafamiliar:\n")
## 
## Feminicidios vs Violencia Intrafamiliar:
cat("  ρ =", round(test_femi_vi$estimate, 3),
    "| p =", round(test_femi_vi$p.value, 4),
    "|", ifelse(test_femi_vi$p.value < 0.05, "SIGNIFICATIVO", "No significativo"), "\n")
##   ρ = 0.063 | p = 0.8026 | No significativo
# DS vs VI
test_ds_vi <- cor.test(datos_mensuales_mujeres$ds_casos,
                      datos_mensuales_mujeres$vi_casos,
                      method = "spearman", exact = FALSE)
cat("\nDelitos Sexuales vs Violencia Intrafamiliar:\n")
## 
## Delitos Sexuales vs Violencia Intrafamiliar:
cat("  ρ =", round(test_ds_vi$estimate, 3),
    "| p =", round(test_ds_vi$p.value, 4),
    "|", ifelse(test_ds_vi$p.value < 0.05, "SIGNIFICATIVO", "No significativo"), "\n")
##   ρ = 0.756 | p = 3e-04 | SIGNIFICATIVO
# 3. Interpretación de fuerza de correlación
cat("\n--- INTERPRETACIÓN DE LA FUERZA DE CORRELACIÓN ---\n")
## 
## --- INTERPRETACIÓN DE LA FUERZA DE CORRELACIÓN ---
cat("|ρ| < 0.3 : Correlación débil\n")
## |ρ| < 0.3 : Correlación débil
cat("0.3 ≤ |ρ| < 0.7 : Correlación moderada\n")
## 0.3 ≤ |ρ| < 0.7 : Correlación moderada
cat("|ρ| ≥ 0.7 : Correlación fuerte\n")
## |ρ| ≥ 0.7 : Correlación fuerte
# 4. Crear tabla resumen
resumen_correlaciones <- data.frame(
  Comparación = c("Feminicidios - Delitos Sexuales",
                  "Feminicidios - Violencia Intrafamiliar",
                  "Delitos Sexuales - Violencia Intrafamiliar"),
  Rho_Spearman = c(round(test_femi_ds$estimate, 3),
                   round(test_femi_vi$estimate, 3),
                   round(test_ds_vi$estimate, 3)),
  P_valor = c(round(test_femi_ds$p.value, 4),
              round(test_femi_vi$p.value, 4),
              round(test_ds_vi$p.value, 4)),
  Significancia = c(ifelse(test_femi_ds$p.value < 0.05, "Sí (p < 0.05)", "No"),
                    ifelse(test_femi_vi$p.value < 0.05, "Sí (p < 0.05)", "No"),
                    ifelse(test_ds_vi$p.value < 0.05, "Sí (p < 0.05)", "No")),
  Fuerza = c(
    ifelse(abs(test_femi_ds$estimate) >= 0.7, "Fuerte",
           ifelse(abs(test_femi_ds$estimate) >= 0.3, "Moderada", "Débil")),
    ifelse(abs(test_femi_vi$estimate) >= 0.7, "Fuerte",
           ifelse(abs(test_femi_vi$estimate) >= 0.3, "Moderada", "Débil")),
    ifelse(abs(test_ds_vi$estimate) >= 0.7, "Fuerte",
           ifelse(abs(test_ds_vi$estimate) >= 0.3, "Moderada", "Débil"))
  ),
  Dirección = c(
    ifelse(test_femi_ds$estimate > 0, "Positiva", "Negativa"),
    ifelse(test_femi_vi$estimate > 0, "Positiva", "Negativa"),
    ifelse(test_ds_vi$estimate > 0, "Positiva", "Negativa")
  )
)


print(resumen_correlaciones)
##                                  Comparación Rho_Spearman P_valor Significancia
## 1            Feminicidios - Delitos Sexuales       -0.050  0.8441            No
## 2     Feminicidios - Violencia Intrafamiliar        0.063  0.8026            No
## 3 Delitos Sexuales - Violencia Intrafamiliar        0.756  0.0003 Sí (p < 0.05)
##   Fuerza Dirección
## 1  Débil  Negativa
## 2  Débil  Positiva
## 3 Fuerte  Positiva
# 5. Visualización de correlaciones
library(corrplot)

corrplot(cor_spearman, method = "color", type = "upper",
         tl.col = "black", tl.srt = 45,
         title = "Matriz de Correlación de Spearman\nViolencia Contra Mujeres",
         mar = c(0,0,2,0),
         addCoef.col = "black",
         number.cex = 1.2,
         col = colorRampPalette(c("blue", "white", "#4B0082"))(200))

# 6. Gráficos de dispersión con líneas de tendencia
library(ggplot2)
library(patchwork)

# FEM vs DS
p1 <- ggplot(datos_mensuales_mujeres, aes(x = ds_casos, y = femi_casos)) +
  geom_point(size = 3, color = "darkred", alpha = 0.7) +
  geom_smooth(method = "lm", se = FALSE, color = "red", linetype = "dashed") +
  labs(title = "Feminicidios vs Delitos Sexuales",
       x = "Delitos Sexuales (mensuales)",
       y = "Feminicidios (mensuales)") +
  theme_minimal()

# FEM vs VI
p2 <- ggplot(datos_mensuales_mujeres, aes(x = vi_casos, y = femi_casos)) +
  geom_point(size = 3, color = "darkblue", alpha = 0.7) +
  geom_smooth(method = "lm", se = FALSE, color = "blue", linetype = "dashed") +
  labs(title = "Feminicidios vs Violencia Intrafamiliar",
       x = "Violencia Intrafamiliar (mensuales)",
       y = "Feminicidios (mensuales)") +
  theme_minimal()

# DS vs VI
p3 <- ggplot(datos_mensuales_mujeres, aes(x = vi_casos, y = ds_casos)) +
  geom_point(size = 3, color = "darkgreen", alpha = 0.7) +
  geom_smooth(method = "lm", se = FALSE, color = "green", linetype = "dashed") +
  labs(title = "Delitos Sexuales vs Violencia Intrafamiliar",
       x = "Violencia Intrafamiliar (mensuales)",
       y = "Delitos Sexuales (mensuales)") +
  theme_minimal()

# Combinar gráficos
(p1 + p2) / p3 + 
  plot_annotation(title = "Relaciones entre Tipos de Violencia Contra Mujeres",
                  subtitle = "Correlación de Spearman - Período: Enero 2024 a Junio 2025")

4.3.1 Interpretación de resultados del análisis de correlación de SPEARMAN

A continuación, se presenta la interpretación de las correlaciones estadísticas identificadas entre los tipos de violencia contra las mujeres analizados:

  1. Correlación entre Delitos Sexuales y Violencia Intrafamiliar
  • Correlación: Fuerte y positiva (ρ = 0.756)

  • Significancia estadística: Sí (p = 0.0003)

  • Interpretación: Existe una relación estadísticamente significativa y fuerte entre los casos de delitos sexuales y los casos de violencia intrafamiliar. Cuando aumentan los casos de uno de estos tipos de violencia, tiende a aumentar también el otro en el mismo periodo. Esto sugiere que pueden compartir determinantes sociales, estacionales o contextuales comunes, o que las condiciones que favorecen un tipo de violencia también están asociadas al otro.

  1. Correlación entre Feminicidios y Delitos Sexuales
  • Correlación: Débil y negativa (ρ = -0.050)

  • Significancia estadística: No (p = 0.8441)

  • Interpretación: No existe una relación lineal significativa entre el número de feminicidios y el de delitos sexuales registrados mensualmente. La correlación es prácticamente nula y no estadísticamente significativa, lo que indica que las variaciones en una variable no se asocian con variaciones en la otra en el periodo estudiado.

  1. Correlación entre Feminicidios y Violencia Intrafamiliar
  • Correlación: Débil y positiva (ρ = 0.063)

  • Significancia estadística: No (p = 0.8026)

  • Interpretación: No se encontró una relación significativa entre los casos de feminicidios y los de violencia intrafamiliar. Aunque la dirección es ligeramente positiva, la correlación es muy débil y no alcanza significación estadística, por lo que no puede afirmarse que exista un vínculo lineal entre estas dos formas de violencia en los datos analizados.

# --- GRÁFICO DE DISPERSIÓN: CORRELACIÓN ESTADÍSTICAMENTE SIGNIFICATIVA ---

library(ggplot2)

# Configuración de colores
color_puntos <- "#4B0082"      # Púrpura oscuro para puntos
color_linea <- "#8B0000"       # Rojo oscuro para línea (significativo)
color_fondo <- "#FAF9FF"       # Fondo claro
color_texto <- "#2C2C2C"       # Texto principal

# Crear el gráfico
ggplot(datos_mensuales_mujeres, aes(x = vi_casos, y = ds_casos)) +
  
  # 1. Puntos de dispersión
  geom_point(
    size = 5,
    color = color_puntos,
    alpha = 0.7,
    shape = 19
  ) +
  
  # 2. Línea de tendencia LOESS (no paramétrica)
  geom_smooth(
    method = "loess",
    formula = y ~ x,
    color = color_linea,
    fill = alpha("#9370DB", 0.2),  # Área de confianza
    linewidth = 2,
    se = TRUE  # Mostrar intervalo de confianza
  ) +
  
  # 3. Etiqueta de la correlación
  annotate(
    "text",
    x = min(datos_mensuales_mujeres$vi_casos) + 
        diff(range(datos_mensuales_mujeres$vi_casos)) * 0.1,
    y = max(datos_mensuales_mujeres$ds_casos) * 0.95,
    label = paste(
      "ρ =", round(test_ds_vi$estimate, 3), "\n",
      "p < 0.001"
    ),
    size = 6,
    color = "#8B0000",
    fontface = "bold",
    hjust = 0,
    lineheight = 0.9
  ) +
  
  # 4. Títulos y etiquetas
  labs(
    title = "CORRELACIÓN ESTADÍSTICAMENTE SIGNIFICATIVA",
    subtitle = "Delitos Sexuales vs Violencia Intrafamiliar contra Mujeres",
    x = "Casos de Violencia Intrafamiliar (mensuales)",
    y = "Casos de Delitos Sexuales (mensuales)",
    caption = paste(
      "Método: Correlación de Spearman | ",
      "Período: ", 
      format(min(datos_mensuales_mujeres$fecha), "%B %Y"), 
      " a ",
      format(max(datos_mensuales_mujeres$fecha), "%B %Y"),
      " | n = ", nrow(datos_mensuales_mujeres), " meses",
      sep = ""
    )
  ) +
  
  # 5. Escalas
  scale_x_continuous(
    labels = scales::comma,
    expand = expansion(mult = c(0.05, 0.05))
  ) +
  scale_y_continuous(
    labels = scales::comma,
    expand = expansion(mult = c(0.05, 0.05))
  ) +
  
  # 6. Tema personalizado
  theme_minimal(base_size = 14) +
  theme(
    # Título principal
    plot.title = element_text(
      size = 20,
      face = "bold",
      color = color_texto,
      hjust = 0.5,
      margin = margin(b = 10)
    ),
    
    # Subtítulo
    plot.subtitle = element_text(
      size = 16,
      color = "#4B0082",
      hjust = 0.5,
      margin = margin(b = 15)
    ),
    
    # Etiquetas de ejes
    axis.title = element_text(
      size = 14,
      face = "bold",
      color = color_texto
    ),
    
    axis.title.x = element_text(margin = margin(t = 10)),
    axis.title.y = element_text(margin = margin(r = 10)),
    
    # Texto de ejes
    axis.text = element_text(
      size = 12,
      color = "#666666"
    ),
    
    # Leyenda de correlación (no aplica aquí)
    legend.position = "none",
    
    # Cuadrícula
    panel.grid.major = element_line(
      color = "#F0F0F0",
      linewidth = 0.5
    ),
    panel.grid.minor = element_blank(),
    
    # Fondo
    panel.background = element_rect(
      fill = color_fondo,
      color = NA
    ),
    plot.background = element_rect(
      fill = "white",
      color = NA
    ),
    
    # Márgenes
    plot.margin = margin(20, 20, 20, 20),
    
    # Pie de gráfico
    plot.caption = element_text(
      size = 11,
      color = "#666666",
      hjust = 0.5,
      margin = margin(t = 15)
    )
  )

# Opcional: Guardar el gráfico en alta calidad
# ggsave("correlacion_significativa.png", width = 10, height = 7, dpi = 300)

4.4 Entendamos esta correlación

Una correlación nos dice si estas dos variables “se mueven juntas” o no.

La FUERZA de la correlación: ρ = 0.756

Escala de fuerzas:

  • 0 a 0.3 = Correlación débil

  • 0.3 a 0.7 = Correlación moderada

  • 0.7 a 1.0 = Correlación FUERTE

Nuestro resultado: ρ = 0.756

¡Esto está en la categoría FUERTE! Es como si estas dos variables fueran compañeras de baque muy coordinadas.

La DIRECCIÓN: Positiva (+)

“Positiva” significa: Cuando una variable aumenta, la otra también aumenta. Cuando una disminuye, la otra también disminuye.

La SIGNIFICANCIA ESTADÍSTICA: p = 0.0003

El valor “p”

Es la probabilidad de que este resultado sea PURA CASUALIDAD.

La regla de oro:

  • p < 0.05 = Es POCO PROBABLE que sea casualidad (tomamos el resultado en serio)

  • p ≥ 0.05 = Podría ser casualidad (no confiamos tanto)

Nuestro resultado: p = 0.0003

¡Esto es MUY PEQUEÑO! Significa:

“Si en realidad NO HUBIERA relación entre estas variables, la probabilidad de encontrar una correlación tan fuerte (0.756) por pura casualidad sería de solo 0.03%”

Es decir, 3 de cada 10,000 veces obtendríamos este resultado por suerte. ¡Es casi imposible!

5 Conclusión General

El hallazgo más relevante del análisis es la correlación fuerte y significativa entre Delitos Sexuales y Violencia Intrafamiliar, que sugiere una posible dinámica conjunta o factores de riesgo compartidos entre estas dos manifestaciones de violencia. Por el contrario, los feminicidios no mostraron una asociación lineal significativa con los otros dos tipos de violencia en el periodo observado, lo que puede indicar que sus patrones, causas inmediatas o factores desencadenantes operan de manera más independiente o responden a variables no capturadas en este análisis mensual.

Nota metodológica: Todos los resultados se basan en un análisis no paramétrico (Spearman) con datos de 18 meses (enero 2024 a junio 2025) y un nivel de significancia de α = 0.05.

La significancia estadística se evalúa comparando el valor p con un umbral predefinido (α=0.05). Un valor p menor a 0.05 indica que es muy improbable que la correlación observada sea producto del azar, permitiendo concluir que existe una asociación estadísticamente significativa. En este análisis, solo la correlación entre Delitos Sexuales y Violencia Intrafamiliar superó este umbral (p=0.0003), mientras que las asociaciones que involucran a los Feminicidios presentaron valores p muy altos (p>0.80), lo que significa que no hay evidencia suficiente para afirmar que existan correlaciones lineales reales más allá de la variación aleatoria esperada en los datos.

En memoria de las mujeres víctimas de violencia.
Este análisis busca contribuir a la prevención y erradicación de la violencia de género en Colombia.