Resumen

En este informe se presenta un análisis exploratorio y descriptivo del sacrificio de ganado bovino en los municipios del Valle del Cauca durante 2018 y 2019. Se emplean técnicas gráficas y estadísticas para describir la distribución de machos, hembras, el total de animales sacrificados y el peso en pie (toneladas). También se examinan relaciones bivariadas (correlaciones y dispersiones) y se muestran visualizaciones por municipio. El documento está diseñado para ser reproducible: basta con situar el archivo Excel con el nombre por defecto en la misma carpeta o cambiar el parámetro datafile.

#1. Introducción El estudio del sacrificio de ganado bovino constituye un aspecto clave para comprender la dinámica productiva y económica del Valle del Cauca. Su análisis estadístico permite identificar tendencias, patrones y desigualdades entre municipios, aportando información relevante para procesos de toma de decisiones, planeación territorial y evaluación de la actividad ganadera regional. #2. Datos y metodología ##2.1 Fuente de datos Los datos provienen del archivo Excel especificado en df. Contiene 85 observaciones y 8 variables (Municipio, Machos Sacrificados, Promedio en Kg Machos, Hembras Sacrificadas, Promedio en Kg Hembras, Animales Sacrificados, Peso en pie en Tn, Año). ## 2.2 Craga y preparación

2.3 Exploración inicial

3. Estadística descritiva

En esta sección se calculan las medidas estadísticas descriptivas fundamentales para cada variable cuantitativa. ## 3.1 Tabla de resumen

# Tabla resumen estadisticas descriptivas

get_mode <- function(v) {
  uniques <- unique(v)
  uniques[which.max(tabulate(match(v, uniques)))]
}

variables <- data.frame(
  Machos.Sacrificados = df$Machos.Sacrificados,
  Hembras.Sacrificadas = df$Hembras.Sacrificadas,
  Animales.Sacrificados = df$Animales.Sacrificados,
  Peso.en.pie.en.Tn = df$Peso.en.pie.en.Tn
)

tabla_stats <- data.frame(
  Variable = colnames(variables),
  Media = sapply(variables, mean, na.rm = TRUE),
  Mediana = sapply(variables, median, na.rm = TRUE),
  Moda = sapply(variables, get_mode),
  Varianza = sapply(variables, var, na.rm = TRUE),
  Desv_Estandar = sapply(variables, sd, na.rm = TRUE)
)

tabla_stats
##                                    Variable    Media Mediana Moda Varianza
## Machos.Sacrificados     Machos.Sacrificados 2049.141    1066 1822 12425727
## Hembras.Sacrificadas   Hembras.Sacrificadas 1128.094     595  953  4430193
## Animales.Sacrificados Animales.Sacrificados 3177.235    1685 2775 31559000
## Peso.en.pie.en.Tn         Peso.en.pie.en.Tn 1311.424     699  699  5614424
##                       Desv_Estandar
## Machos.Sacrificados        3525.014
## Hembras.Sacrificadas       2104.802
## Animales.Sacrificados      5617.740
## Peso.en.pie.en.Tn          2369.478

4. Distribuciones univariadas

Se presentan diagramas de caja e histogramas para visualizar la forma de las distribuciones y detectar asimetrías y valores atípicos.

4.1 Boxplots

boxplot(df$Machos.Sacrificados, col="skyblue", main="Machos Sacrificados",
        ylim=c(0, 10000))

boxplot(df$Hembras.Sacrificadas, col ="pink",main="Hembras Sacrificadas",
        ylim=c(0,4000))

boxplot(df$Animales.Sacrificados, col="lightgreen",main="Animales sacrificados",
        ylim=c(0,12000))

boxplot(df$Peso.en.pie.en.Tn, col="orange",main="Peso en pie en Tn",
        ylim=c(0,5000))

par(mfrow=c(1,1))  # volver a 1 gráfico

4.2 Histogramas

media_machos <- mean(df$Machos.Sacrificados, na.rm = TRUE)
mediana_machos <- median(df$Machos.Sacrificados, na.rm = TRUE)
moda_machos <- get_mode(df$Machos.Sacrificados)


hist(df$Machos.Sacrificados, col = "skyblue",
     main = "Histograma Machos Sacrificados con Media, Mediana y Moda",
     xlab = "Machos Sacrificados")
abline(v = media_machos, col = "red", lwd = 2, lty = 1)
abline(v = mediana_machos, col = "green", lwd = 2, lty = 2)
abline(v = moda_machos, col = "blue", lwd = 2, lty = 3)
legend("topright",
       legend = c("Media", "Mediana", "Moda"),
       col = c("red", "green", "blue"),
       lwd = 2,
       lty = c(1, 2, 3))

# Histogramas para Hembras Sacrificadas
media_hembras <- mean(df$Hembras.Sacrificadas, na.rm = TRUE)
mediana_hembras <- median(df$Hembras.Sacrificadas, na.rm = TRUE)
moda_hembras <- get_mode(df$Hembras.Sacrificadas)

hist(df$Hembras.Sacrificadas, col = "gray",
     main = "Histograma Hembras Sacrificadas con Media, Mediana y Moda",
     xlab = "Hembras Sacrificadas")
abline(v = media_hembras, col = "red", lwd = 2, lty = 1)
abline(v = mediana_hembras, col = "green", lwd = 2, lty = 2)
abline(v = moda_hembras, col = "blue", lwd = 2, lty = 3)
legend("topright",
       legend = c("Media", "Mediana", "Moda"),
       col = c("red", "green", "blue"),
       lwd = 2,
       lty = c(1, 2, 3))

# Histograma para Peso en pie en Tn
media_peso <- mean(df$Peso.en.pie.en.Tn, na.rm = TRUE)
mediana_peso <- median(df$Peso.en.pie.en.Tn, na.rm = TRUE)
moda_peso <- get_mode(df$Peso.en.pie.en.Tn)

hist(df$Peso.en.pie.en.Tn, col = "orange",
     main = "Histograma Peso en pie en Tn con Media, Mediana y Moda",
     xlab = "Peso en pie en Tn")
abline(v = media_peso, col = "red", lwd = 2, lty = 1)
abline(v = mediana_peso, col = "green", lwd = 2, lty = 2)
abline(v = moda_peso, col = "blue", lwd = 2, lty = 3)
legend("topright",
       legend = c("Media", "Mediana", "Moda"),
       col = c("red", "green", "blue"),
       lwd = 2,
       lty = c(1, 2, 3))

5. Distribución por año

plot(df$Machos.Sacrificados, df$Hembras.Sacrificadas, col="blue",
     main="Dispersión Machos vs Hembras",
     xlab="Machos Sacrificados", ylab="Hembras Sacrificadas", xlim =c(0,10000))

plot(df$Animales.Sacrificados, df$Peso.en.pie.en.Tn, col="red",
     main="Dispersión Animales vs Peso en pie",
     xlab="Animales Sacrificados", ylab="Peso en pie en Tn", xlim =c(0,15000))

# 6. Análisis bivariado

6.1 Correlación entre Machos y Hembras

#Declarar las variables a comparar
Machos<-c(df$Machos.Sacrificados)
Hembras<-c(df$Hembras.Sacrificadas)

#Determinar la correlación entre ellas
cor(Machos,Hembras)
## [1] 0.9908458
cor.test(Machos,Hembras)
## 
##  Pearson's product-moment correlation
## 
## data:  Machos and Hembras
## t = 66.867, df = 83, p-value < 2.2e-16
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
##  0.9859218 0.9940527
## sample estimates:
##       cor 
## 0.9908458
#Graficar
pairs(Machos~Hembras)

#Matriz de correlación
data <-data.frame(Machos,Hembras)
chart.Correlation(data)

## 6.2 Diagramas de dispersión

plot(df$Machos.Sacrificados, df$Hembras.Sacrificadas, col="blue",
     main="Dispersión Machos vs Hembras",
     xlab="Machos Sacrificados", ylab="Hembras Sacrificadas", xlim =c(0,10000))

plot(df$Animales.Sacrificados, df$Peso.en.pie.en.Tn, col="red",
     main="Dispersión Animales vs Peso en pie",
     xlab="Animales Sacrificados", ylab="Peso en pie en Tn", xlim =c(0,15000))

# 7. Comparación por municipio

##Declarar variable cualitativa y cuantitativa
Cualitativa<- c(df$Municipio)
Cuantitativa<-c(df$Animales.Sacrificados)

#Diagrama de cajas 
boxplot(Cuantitativa~Cualitativa)

# 8. Serie de tiempos básica > Nota: con solo 2 años la capacidad de pronóstico es limitada; el gráfico sirve para visualizar cambios entre 2018 y 2019.

serie <- ts(df$Animales.Sacrificados, start = min(df$Año), frequency = 1)

autoplot(serie) +
  labs(title = "Pronóstico en el tiempo",
       x = "Año",
       y = "Animales Sacrificados") +
  theme_bw()

9. Conclusiones