El presente informe tiene como finalidad analizar la base de datos proporcionada, la cual contiene información relacionada con diversas variables numéricas y categóricas relevantes para el estudio. A través de técnicas estadísticas descriptivas y correlacionales, se busca comprender el comportamiento general de los datos, identificar patrones, relaciones entre variables y obtener conclusiones que aporten al entendimiento del conjunto de información recopilada.
Este análisis se enmarca dentro del programa de formación TAD-11 del SENA Colombo Alemán, como parte del desarrollo de competencias en análisis de datos y generación de informes estadísticos.
Realizar un análisis estadístico descriptivo y correlacional de la base de datos con el fin de identificar patrones, tendencias y relaciones relevantes entre las variables estudiadas, utilizando herramientas de visualización y técnicas estadísticas que permitan una interpretación clara y fundamentada de los hallazgos.
Para el desarrollo de este análisis se aplicó una metodología estructurada en las siguientes fases:
Se importó la base de datos desde el archivo BD_CONSOLIDADA.xlsx y se realizó un proceso exhaustivo de limpieza que incluyó: - Eliminación de valores faltantes (NA) - Normalización de espacios en blanco - Conversión de tipos de datos - Validación de integridad de la información
Se diseñaron y ejecutaron cuatro consultas estratégicas sobre las variables más relevantes del conjunto de datos: - Distribución por departamento - Distribución temporal (mensual) - Segmentación por grupos de edad - Clasificación por mecanismo causal
Para cada consulta se calcularon estadísticas descriptivas como frecuencias, porcentajes y medidas de tendencia central.
Cada consulta fue representada mediante gráficos apropiados: - Gráficos de barras horizontales para comparaciones categóricas - Gráficos de barras verticales para series temporales - Inclusión de etiquetas numéricas para facilitar la lectura - Paleta de colores consistente y profesional
Se aplicó el coeficiente de correlación de Pearson para identificar relaciones lineales entre variables numéricas, generando: - Matriz de correlación completa - Heatmap visualizado con escala de colores - Interpretación de las correlaciones significativas
Cada hallazgo fue analizado de manera cualitativa y cuantitativa, estableciendo conexiones entre las variables y extrayendo insights relevantes para la comprensión del fenómeno estudiado.
Consulta1 <- Feminicidios %>%
filter(!is.na(DEPT_HECHO_F)) %>%
count(DEPT_HECHO_F, name = "Casos") %>%
arrange(desc(Casos))
kable(Consulta1, caption = "📍 Distribución de Casos por Departamento (sin valores NA)") %>%
kable_styling(full_width = FALSE, bootstrap_options = c("striped", "hover", "condensed"))
| DEPT_HECHO_F | Casos |
|---|---|
| Atlántico | 23 |
| Valle del Cauca | 20 |
| Antioquia | 15 |
| Santander | 14 |
| Bolívar | 11 |
| Bogotá, D.C. | 10 |
| Nariño | 8 |
| Cesar | 6 |
| Cundinamarca | 6 |
| Cauca | 5 |
| Huila | 5 |
| Magdalena | 5 |
| Norte de Santander | 5 |
| Caquetá | 4 |
| Risaralda | 4 |
| Sucre | 4 |
| Arauca | 3 |
| Boyacá | 2 |
| La Guajira | 2 |
| Tolima | 2 |
| Archipiélago de San Andrés, Providencia y Santa Catalina | 1 |
| Casanare | 1 |
| Chocó | 1 |
| Córdoba | 1 |
| Meta | 1 |
ggplot(Consulta1, aes(x = reorder(DEPT_HECHO_F, Casos), y = Casos)) +
geom_col(fill = "#ff6b9d", alpha = 0.9) +
geom_text(aes(label = Casos), hjust = -0.2, size = 4, color = "#c44569", fontface = "bold") +
coord_flip() +
theme_minimal(base_size = 13) +
labs(
title = "Distribución de Casos por Departamento",
subtitle = "Análisis geográfico de la incidencia registrada",
x = "Departamento",
y = "Número de Casos",
caption = "Fuente: BD_CONSOLIDADA.xlsx | SENA TAD-11"
) +
theme(
plot.title = element_text(face = "bold", size = 16, color = "#c44569"),
plot.subtitle = element_text(size = 12, color = "#8e44ad"),
axis.title = element_text(face = "bold"),
panel.grid.major.x = element_line(color = "#ffe4f0"),
panel.grid.minor = element_blank()
) +
expand_limits(y = max(Consulta1$Casos) * 1.15)
La distribución geográfica muestra una marcada heterogeneidad entre departamentos, con algunos territorios presentando cifras significativamente superiores al promedio nacional. Esta concentración sugiere la necesidad de implementar estrategias focalizadas en las regiones con mayor incidencia.
Consulta2 <- Feminicidios %>%
filter(!is.na(MES_HECHO_F)) %>%
count(MES_HECHO_F, name = "Casos") %>%
arrange(match(MES_HECHO_F,
c("ENERO","FEBRERO","MARZO","ABRIL","MAYO","JUNIO",
"JULIO","AGOSTO","SEPTIEMBRE","OCTUBRE","NOVIEMBRE","DICIEMBRE")))
kable(Consulta2, caption = "📆 Distribución Mensual de Casos") %>%
kable_styling(full_width = FALSE, bootstrap_options = c("striped", "hover", "condensed"))
| MES_HECHO_F | Casos |
|---|---|
| ENERO | 26 |
| FEBRERO | 15 |
| MARZO | 20 |
| ABRIL | 24 |
| MAYO | 12 |
| JUNIO | 14 |
| JULIO | 17 |
| AGOSTO | 5 |
| SEPTIEMBRE | 4 |
| OCTUBRE | 9 |
| NOVIEMBRE | 9 |
| DICIEMBRE | 4 |
ggplot(Consulta2, aes(x = factor(MES_HECHO_F, levels = MES_HECHO_F), y = Casos)) +
geom_col(fill = "#c44569", alpha = 0.9) +
geom_text(aes(label = Casos), vjust = -0.5, size = 4, color = "#8e44ad", fontface = "bold") +
theme_minimal(base_size = 13) +
labs(
title = "Distribución Temporal de Casos por Mes",
subtitle = "Análisis de estacionalidad en la incidencia",
x = "Mes del Año",
y = "Número de Casos",
caption = "Fuente: BD_CONSOLIDADA.xlsx | SENA TAD-11"
) +
theme(
plot.title = element_text(face = "bold", size = 16, color = "#c44569"),
plot.subtitle = element_text(size = 12, color = "#8e44ad"),
axis.title = element_text(face = "bold"),
axis.text.x = element_text(angle = 45, hjust = 1),
panel.grid.major.y = element_line(color = "#ffe4f0"),
panel.grid.minor = element_blank()
) +
expand_limits(y = max(Consulta2$Casos) * 1.15)
Este comportamiento temporal sugiere factores estacionales que podrían estar relacionados con dinámicas sociales, económicas o culturales específicas del período. La identificación de estos períodos críticos permite orientar estrategias preventivas en los momentos de mayor riesgo.
Consulta3 <- Feminicidios %>%
filter(!is.na(GRUPO_EDAD_VICTIMA_F)) %>%
count(GRUPO_EDAD_VICTIMA_F, name = "Casos") %>%
arrange(desc(Casos))
kable(Consulta3, caption = "👥 Distribución de Casos por Grupo de Edad") %>%
kable_styling(full_width = FALSE, bootstrap_options = c("striped", "hover", "condensed"))
| GRUPO_EDAD_VICTIMA_F | Casos |
|---|---|
| 25 a 29 años | 27 |
| 20 a 24 años | 22 |
| 30 a 34 años | 19 |
| 35 a 39 años | 18 |
| 40 a 44 años | 16 |
| 45 a 49 años | 12 |
| 18 a 19 | 10 |
| 60 a 64 años | 8 |
| 15 a 17 años | 6 |
| 50 a 54 años | 5 |
| 55 a 59 años | 5 |
| 10 a 14 años | 4 |
| 5 a 9 años | 2 |
| 75 a 79 años | 2 |
| 0 a 4 años | 1 |
| 65 a 69 años | 1 |
| 70 a 74 años | 1 |
ggplot(Consulta3, aes(x = reorder(GRUPO_EDAD_VICTIMA_F, Casos), y = Casos)) +
geom_col(fill = "#8e44ad", alpha = 0.9) +
geom_text(aes(label = Casos), hjust = -0.2, size = 4, color = "#5f27cd", fontface = "bold") +
coord_flip() +
theme_minimal(base_size = 13) +
labs(
title = "Distribución de Casos por Grupo de Edad",
subtitle = "Análisis demográfico de las víctimas",
x = "Grupo de Edad",
y = "Número de Casos",
caption = "Fuente: BD_CONSOLIDADA.xlsx | SENA TAD-11"
) +
theme(
plot.title = element_text(face = "bold", size = 16, color = "#8e44ad"),
plot.subtitle = element_text(size = 12, color = "#c44569"),
axis.title = element_text(face = "bold"),
panel.grid.major.x = element_line(color = "#ffe4f0"),
panel.grid.minor = element_blank()
) +
expand_limits(y = max(Consulta3$Casos) * 1.15)
Las edades entre 30–44 años también muestran alta incidencia, concentrando aproximadamente el 33% de los casos totales. Esto indica que la mayor vulnerabilidad se encuentra en la población económicamente activa entre 20 y 44 años. Hay representación significativa en todas las franjas etarias, incluyendo menores de edad, lo que evidencia la amplitud del problema a través de diferentes grupos demográficos.
Consulta4 <- Feminicidios %>%
filter(!is.na(MECANISMO_CASUAL_F)) %>%
count(MECANISMO_CASUAL_F, name = "Casos") %>%
arrange(desc(Casos))
kable(Consulta4, caption = "⚔️ Distribución por Mecanismo Causal") %>%
kable_styling(full_width = FALSE, bootstrap_options = c("striped", "hover", "condensed"))
| MECANISMO_CASUAL_F | Casos |
|---|---|
| Cortopunzante | 56 |
| Generadores de asfixia | 37 |
| Proyectil de arma de fuego | 35 |
| Cortocontundente | 13 |
| Contundente | 12 |
| Cortante | 2 |
| Térmico | 2 |
| Por determinar | 1 |
| Punzante | 1 |
ggplot(Consulta4, aes(x = reorder(MECANISMO_CASUAL_F, Casos), y = Casos)) +
geom_col(fill = "#2ecc71", alpha = 0.85) +
geom_text(aes(label = Casos), hjust = -0.2, size = 4, color = "#27ae60", fontface = "bold") +
coord_flip() +
theme_minimal(base_size = 13) +
labs(
title = "Distribución de Casos por Mecanismo Causal",
subtitle = "Análisis del tipo de violencia empleada",
x = "Mecanismo Causal",
y = "Número de Casos",
caption = "Fuente: BD_CONSOLIDADA.xlsx | SENA TAD-11"
) +
theme(
plot.title = element_text(face = "bold", size = 16, color = "#27ae60"),
plot.subtitle = element_text(size = 12, color = "#8e44ad"),
axis.title = element_text(face = "bold"),
panel.grid.major.x = element_line(color = "#ffe4f0"),
panel.grid.minor = element_blank()
) +
expand_limits(y = max(Consulta4$Casos) * 1.15)
La prevalencia del arma blanca sugiere actos de violencia en contextos de proximidad física, lo que podría estar relacionado con violencia intrafamiliar o de pareja. La diferencia significativa entre los mecanismos causales indica patrones específicos de comportamiento violento que requieren estrategias de prevención diferenciadas.
Feminicidios_num <- Feminicidios %>%
mutate(across(everything(), ~ suppressWarnings(as.numeric(.))))
# Seleccionar solo variables numéricas con datos
numericas_validas <- Feminicidios_num %>%
select(where(~ is.numeric(.) && sum(!is.na(.)) > 1))
# Validación
if (ncol(numericas_validas) < 2) {
cat("⚠️ No hay suficientes variables numéricas para calcular la correlación de Pearson.\n")
} else {
# Matriz de correlación
Matriz_cor <- cor(numericas_validas, use = "pairwise.complete.obs", method = "pearson")
# Mostrar matriz en formato tabla
kable(round(Matriz_cor, 3), caption = "📊 Matriz de Correlación de Pearson") %>%
kable_styling(full_width = FALSE, bootstrap_options = c("striped", "hover", "condensed"))
# Preparar datos para el heatmap
Matriz_larga <- melt(Matriz_cor)
# Heatmap con etiquetas
ggplot(Matriz_larga, aes(Var1, Var2, fill = value)) +
geom_tile(color = "white", size = 0.5) +
geom_text(aes(label = round(value, 2)), size = 3.5, color = "black", fontface = "bold") +
scale_fill_gradient2(
low = "#3498db",
high = "#e74c3c",
mid = "white",
midpoint = 0,
limit = c(-1, 1),
name = "Correlación\n(r)"
) +
theme_minimal(base_size = 12) +
labs(
title = "Matriz de Correlación de Pearson",
subtitle = "Relaciones lineales entre variables numéricas",
x = "",
y = "",
caption = "Fuente: BD_CONSOLIDADA.xlsx | SENA TAD-11"
) +
theme(
plot.title = element_text(face = "bold", size = 16, color = "#c44569", hjust = 0.5),
plot.subtitle = element_text(size = 12, color = "#8e44ad", hjust = 0.5),
axis.text.x = element_text(angle = 45, hjust = 1, vjust = 1),
axis.text.y = element_text(angle = 0),
legend.position = "right",
panel.grid = element_blank()
) +
coord_fixed()
}
Para evaluar la relación lineal entre las variables numéricas seleccionadas, se aplicó el coeficiente de correlación de Pearson. Esta medida estadística toma valores entre -1 y 1, donde:
El análisis estadístico realizado sobre la base de datos BD_CONSOLIDADA.xlsx ha permitido obtener una comprensión integral del fenómeno estudiado a través de múltiples dimensiones analíticas. Los hallazgos revelan patrones significativos que aportan valor para la toma de decisiones informadas.
En conclusión, este análisis cumplió satisfactoriamente con los objetivos planteados, generando conocimiento valioso sobre las características, distribución y patrones presentes en los datos. La metodología aplicada demostró ser efectiva para extraer insights significativos y puede replicarse en futuros estudios con conjuntos de datos similares.
Para el desarrollo de este análisis estadístico se utilizaron las siguientes librerías del ecosistema R:
# Instalación (solo primera vez)
install.packages(c("readxl", "dplyr", "tidyr", "kableExtra", "ggplot2", "reshape2"))
# Carga de librerías
library(readxl)
library(dplyr)
library(tidyr)
library(kableExtra)
library(ggplot2)
library(reshape2)
# Información de la sesión R
sessionInfo()
# Versiones de paquetes específicos
packageVersion("ggplot2")
packageVersion("dplyr")
Programa de Formación TAD-11
Análisis Estadístico con R
```