#paquetes
library(readr)
library(ggplot2)
library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(broom)
library(ggpubr)
library(tidyr)

Introduccion

Este informe tiene como propósito describir y examinar la tasa de violencia en el departamento del Atlántico en Colombia, utilizando el modelo de regresión múltiple para establecer el porcentaje de violencia entre hombres y mujeres y así obtener una tasa global de ambos grupos. Trabajamos en R Marwdown para crear nuestra modelo de regresión múltiple en donde usamos diferentes paquetes de library para usarlos como ayuda, empezando con la base de datos que encontramos en https://www.datos.gov.co/ donde usamos la de Tasa Violencia en el departamento del atlántico después de meter los datos procedemos a renombrar las columnas para que se vean más claras en donde tenemos:

#Base de datos de Tasa de violencia en el departamento del Atlántico 
datos <- read_csv("Tasa_de_violencia_en_el_departamento_del_Atl_ntico_20250530.csv")
## Rows: 99 Columns: 8
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (8): Municipio, Violencia Contra, Hombre Casos, Tasa x 100.000 hab, Muje...
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.

Seguimos cambiando los nombres de las columnas de nuestras variables para que resulten más comprensibles.

#Renombramos las columnas para que se vean mas claras
datos <- datos %>%
  rename(
    Tasa_hombres = `Tasa x 100.000 hab`,
    Tasa_mujeres = `Tasa x100.000 hab`,
    Tasa_total = `Tasa x 100.000 hab 1`
  )

Luego convertimos los datos a numéricos y los limpiamos; después de limpiar los datos procedemos a hacer una revisión de supuestos e independencia de las tasas de hombres, mujeres y el total

#Convertimos los datos a numericos y despues limpiamos en algunas filas ya que se encuentran NA
datos$Tasa_total <- as.numeric(as.character(datos$Tasa_total))
## Warning: NAs introduced by coercion
datos$Tasa_hombres <- suppressWarnings(as.numeric(as.character(datos$Tasa_hombres)))
datos$Tasa_mujeres <- suppressWarnings(as.numeric(as.character(datos$Tasa_mujeres)))

datos_limpios <- datos %>%
  filter(!is.na(Tasa_total) & !is.na(Tasa_mujeres) & !is.na(Tasa_hombres))

En los datos numericos vamos a analizar la relación entre varias variables, en este caso se esta analizando la relación entre las tasas de violencia. El grafico representa una dispersión entre las variables Tasa_Hombres, Tasa_Mujeres y Tasa_total. Cada punto representa una observación y esto nos permite observar patrones de asosiación entre las variables.

datos_numericos <- datos_limpios %>% select_if(is.numeric)
pairs(datos_numericos)

En nuestra regresión múltiple se da a ver el resultado de las tasas tanto mujer como de hombre no difiere significativamente de cero, lo que da a entender que: Hipótesis Nula en Hombres: no tiene ninguna relación y la tasa total no aporta al modelo significativamente. Hipótesis Alternativa en Hombres: Hay una relación significativa entre la tasa de violencia hacia hombre y la tasa total.

Hipótesis Nula de Mujeres: No hay ninguna relación entre la tasa de violencia hacia mujeres y la tasa total de violencia. Hipótesis Alternativa en Mujeres: Existe una relación entre la tasa de violencia hacia las mujeres y la tasa total.

Para el Modelo Completo Hipótesis Nula: Ninguna de las variables independientes explica la tasa total. Hipótesis Alternativa: Al menos uno de los coeficientes es diferente de cero.

REVISION DE SUPUESTOS

La correlación entre Tasa_hombres y Tasa_total (0.903) y entre Tasa_mujeres y Tasa_total (0.763) indica que ambas variables independientes contribuyen significativamente a la tasa total. Por otro lado, la correlación entre Tasa_hombres y Tasa_mujeres (0.429) es moderada, lo cual es positivo para el modelo, ya que indica que no hay multicolinealidad fuerte entre ellas.

#Independencia (Correlaciones)
cor(datos_limpios[, c("Tasa_hombres", "Tasa_mujeres", "Tasa_total")])
##              Tasa_hombres Tasa_mujeres Tasa_total
## Tasa_hombres    1.0000000    0.4290314  0.9032759
## Tasa_mujeres    0.4290314    1.0000000  0.7631845
## Tasa_total      0.9032759    0.7631845  1.0000000

Seguimos con la Normalidad (histograma) en donde observamos una distribución muy concentrada en tasas bajas, pero con algunos picos aislados de violencia.

#Normalidad (Histogramas) 
hist(datos_limpios$Tasa_hombres,
     main = "Histograma de Tasa de Violencia en Hombres",
     xlab = "Tasa por 100.000 habitantes",
     col = "skyblue",
     border = "black")

hist(datos_limpios$Tasa_mujeres,
     main = "Histograma de Tasa de Violencia en Mujeres",
     xlab = "Tasa por 100.000 habitantes",
     col = "skyblue",
     border = "black")

hist(datos_limpios$Tasa_total,
     main = "Histograma de Tasa total de Violencia",
     xlab = "Tasa por 100.000 habitantes",
     col = "skyblue",
     border = "black")

Para verificar el supuesto de linealidad en nuestro modelo, se utilizo los siguientes graficos que muestran la relación entre las variables independientes (Tasa_hombres y Tasa_mujeres) y la variable dependiente (Tasa_total).

En la Linealidad (Tasa mujeres) el grafico representa la relación entre la tasa de violencia hacia mujeres, podemos ver una tendencia general ascendente lo que sugiere que es un poco mayor la violencia contra las mujeres sin embargo no es del todo lineal ya que hay varios puntos dispersos (especialmente en tasas bajas entre 0 y 50 en ambos ejes) lo que nos indica una fuerte variabilidad.

#Linealidad  
plot(Tasa_total ~ Tasa_hombres, data = datos_numericos)

plot(Tasa_total ~ Tasa_mujeres, data = datos_numericos)

Ambos gráficos apoyan el cumplimiento del supuesto de linealidad. Esto indica que las variables independientes tienen una relación lineal con la variable dependiente, lo cual es adecuado para aplicar el modelo de regresión múltiple.

#Modelo de regresión multiple
RegMul <- lm(Tasa_total ~ Tasa_hombres + Tasa_mujeres, data = datos_limpios)
RegMul
## 
## Call:
## lm(formula = Tasa_total ~ Tasa_hombres + Tasa_mujeres, data = datos_limpios)
## 
## Coefficients:
##  (Intercept)  Tasa_hombres  Tasa_mujeres  
##      -0.4499        0.4944        0.5296
summary(RegMul)
## 
## Call:
## lm(formula = Tasa_total ~ Tasa_hombres + Tasa_mujeres, data = datos_limpios)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -33.487  -1.237   0.037   0.450  48.781 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  -0.449931   0.982124  -0.458    0.648    
## Tasa_hombres  0.494444   0.008537  57.921   <2e-16 ***
## Tasa_mujeres  0.529609   0.014017  37.784   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 7.216 on 92 degrees of freedom
## Multiple R-squared:  0.9889, Adjusted R-squared:  0.9886 
## F-statistic:  4081 on 2 and 92 DF,  p-value: < 2.2e-16
#Homocedasticidad 
par(mfrow = c(2, 2))
plot(RegMul)

datos_ <- datos_numericos %>%
  pivot_longer(
    cols = c(Tasa_hombres, Tasa_mujeres),
    names_to = "Genero",
    values_to = "Tasa_genero"
  )

ggplot(datos_, aes(x = Tasa_genero, y = Tasa_total, color = Genero)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE) +
  labs(
    title = "Relación entre Tasa Total y Tasa por Género",
    x = "Tasa por Género (Hombres y Mujeres)",
    y = "Tasa Total"
  ) +
  theme_minimal()
## `geom_smooth()` using formula = 'y ~ x'

En conclusión, El análisis de regresión múltiple nos muestra que la violencia hacia hombres y mujeres influye significativamente en la tasa total de violencia y ambas variables están relacionadas con la tasa total.