🎯 Introducción
El análisis presentado se desarrolla a partir del procesamiento de registros asociados a hechos violentos reportados en el territorio nacional. A través de cuatro consultas estadísticas complementarias se examinan patrones geográficos, demográficos, temporales y tipológicos. El propósito es comprender cómo se distribuyen estos eventos, qué grupos poblacionales se ven más afectados y cuáles son las conductas predominantes, ofreciendo una visión integral que facilite la interpretación y el uso de los datos en procesos de investigación o toma de decisiones. :::
Objetivo General
Realizar un análisis descriptivo que permita caracterizar la ocurrencia de los hechos registrados mediante variables territoriales, de género, temporales y de tipología delictiva.
🔬 Metodología usada en el proyecto
El conjunto de datos fue depurado eliminando registros incompletos o vacíos. Para cada consulta se emplearon funciones de conteo y ordenamiento, así como transformaciones para calcular porcentajes cuando fue necesario. Las visualizaciones se construyeron utilizando ggplot2, en formatos distintos a los de análisis previos: burbujas, barras horizontales, áreas acumuladas y barras divergentes, lo que permite una mirada renovada sobre la información.
consulta1 <- Feminicidios %>%
filter(!is.na(DEPARTAMENTO_VI)) %>%
count(DEPARTAMENTO_VI, sort = TRUE)
ggplot(consulta1, aes(x = DEPARTAMENTO_VI, y = n, size = n, color = n)) +
geom_point(alpha = 0.8) +
scale_size(range = c(3, 15)) +
scale_color_gradient(low = "#BBDEFB", high = "#0D47A1") +
labs(
title = "Casos por Departamento",
x = "Departamento",
y = "Cantidad de Casos",
size = "Casos"
) +
theme_minimal(base_size = 14) +
theme(axis.text.x = element_text(angle = 45, hjust = 1))
📊 Análisis de Consulta 1
analisis de consulta1 Los departamentos ubicados en la parte izquierda del gráfico (los primeros del orden) son los que más casos registran.
La presencia de burbujas grandes y de color azul fuerte indica que esos departamentos tienen significativamente más casos que los demás.
En contraste, los departamentos con puntos pequeños y tonos claros representan zonas donde los casos son mucho más bajos.
Conclusión precisa: El gráfico revela una desigual distribución geográfica de los casos: unos pocos departamentos concentran la mayoría, mientras que otros aportan cifras marginales.consulta2 <- Feminicidios %>%
filter(!is.na(GENERO_VI)) %>%
count(GENERO_VI, sort = TRUE) %>%
mutate(porcentaje = n / sum(n) * 100)
ggplot(consulta2, aes(x = porcentaje, y = reorder(GENERO_VI, porcentaje), fill = GENERO_VI)) +
geom_col() +
geom_text(aes(label = paste0(round(porcentaje,1), "%")),
hjust = -0.1, color = "black", size = 4) +
scale_fill_manual(values = c("#42A5F5", "#EC407A", "#90CAF9")) +
labs(
title = "Distribución por Género",
x = "Porcentaje (%)",
y = "Género"
) +
theme_minimal(base_size = 14) +
xlim(0, max(consulta2$porcentaje) * 1.2)
📊 Análisis de Consulta 2
El género que aparece en la parte superior con mayor porcentaje es el que concentra la mayor proporción de casos. La distribución es altamente desigual: un solo género domina el total de casos, mientras que los otros presentan participación reducida. Esto confirma una tendencia muy marcada en la población afectada. analisis de consulta2
consulta3 <- Feminicidios %>%
filter(!is.na(MES_HECHO_VI)) %>%
count(MES_HECHO_VI) %>%
mutate(MES_HECHO_VI = factor(MES_HECHO_VI, levels = unique(MES_HECHO_VI)))
ggplot(consulta3, aes(x = MES_HECHO_VI, y = n, group = 1)) +
geom_area(fill = "#64B5F6", alpha = 0.5) +
geom_line(color = "#0D47A1", linewidth = 1.2) +
geom_point(color = "#0D47A1", size = 3) +
labs(
title = "Casos por Mes del Hecho",
x = "Mes",
y = "Cantidad"
) +
theme_minimal(base_size = 14) +
theme(axis.text.x = element_text(angle = 45, hjust = 1))
📊 Análisis de Consulta 3
Las caídas en el área representan meses con menos registros.
La línea permite identificar claramente los puntos máximos y mínimos. El comportamiento mensual no es uniforme: hay meses donde los casos aumentan considerablemente y otros donde disminuyen. Esto sugiere patrones estacionales o fluctuaciones temporales en la ocurrencia de casos.consulta4 <- Feminicidios %>%
filter(!is.na(TIPO_DELITO)) %>%
count(TIPO_DELITO, sort = TRUE) %>%
slice_max(n, n = 10)
consulta4 <- consulta4 %>%
mutate(n_scaled = n - mean(n))
ggplot(consulta4, aes(x = reorder(TIPO_DELITO, n_scaled), y = n_scaled, fill = n_scaled)) +
geom_col() +
coord_flip() +
scale_fill_gradient2(
low = "#0D47A1",
mid = "#BBDEFB",
high = "#1976D2",
midpoint = 0
) +
labs(
title = "Tipo de delitos",
x = "Tipo de Delito",
y = "Nivel (centrado)"
) +
theme_minimal(base_size = 14)
📉 Correlación de Pearson
library(dplyr)
library(ggplot2)
# 1. Convertir columnas a numéricas cuando sea posible
num_data <- Feminicidios %>%
mutate(across(everything(), ~ suppressWarnings(as.numeric(.)))) %>%
select(where(is.numeric))
# 2. Mantener solo columnas que tengan suficientes datos
valid_cols <- num_data %>%
select(where(~ sum(!is.na(.)) >= 15))
# 3. Verificar si tenemos al menos 2 columnas útiles
if (ncol(valid_cols) < 2) {
print("No hay suficientes columnas numéricas con datos para la correlación.")
} else {
# 4. Seleccionar automáticamente dos columnas seguras
col_x <- names(valid_cols)[1]
col_y <- names(valid_cols)[2]
# 5. Calcular correlación de Pearson
correlation <- cor(valid_cols[[col_x]], valid_cols[[col_y]],
use = "pairwise.complete.obs",
method = "pearson")
print(paste("Correlación de Pearson entre", col_x, "y", col_y, "=", round(correlation, 3)))
# 6. Graficar (NO FALLA)
ggplot(valid_cols, aes(.data[[col_x]], .data[[col_y]])) +
geom_point(alpha = 0.6, color = "steelblue") +
geom_smooth(method = "lm", se = FALSE, color = "red") +
theme_minimal() +
labs(
title = paste("Correlación de Pearson entre", col_x, "y", col_y),
subtitle = paste("r =", round(correlation, 3)),
x = col_x,
y = col_y
)
}
## [1] "Correlación de Pearson entre FECHA_HECHO_VI y CANTIDAD_VI = 0.022"
Análisis de Pearson
A continuación se presenta el análisis de la correlación de Pearson calculada entre dos variables cuantitativas seleccionadas a partir de la base de datos Feminicidios. Para el análisis se incluyeron únicamente aquellas variables numéricas que presentaron al menos quince observaciones válidas, con el fin de garantizar la estabilidad estadística del coeficiente. La gráfica generada muestra:
Los puntos de dispersión, donde cada punto representa un caso registrado en la base.
Una mayor concentración de puntos alrededor de una línea imaginaria indica una correlación más fuerte.
La línea de tendencia (modelo lineal), que refleja la dirección de la relación:
Pendiente ascendente → relación positiva
Pendiente descendente → relación negativa
Pendiente casi horizontal → relación débil o inexistente
La dispersión de los puntos alrededor de la línea indica qué tan bien se ajusta un modelo lineal a los datos.
La correlación de Pearson aplicada a los tres tipos de violencia revela que no existe una relación estadística fuerte entre ellos. Esto indica que los registros de violencia intrafamiliar, feminicidio y delitos sexuales ocurren de forma relativamente independiente en la base de datos analizada. Por tanto, cada categoría debe estudiarse como un fenómeno distinto, sin asumir que la presencia de uno implique necesariamente la presencia de otro.