UNIVERSIDAD CENTRAL DEL ECUADOR

ESTUDIO ESTADÍSTICO DE LA CONTAMINACIÓN DEL SUELO Y SU IMPACTO EN LA SALUD

FECHA: 01/12/2025

#Estadistica Descriptiva


#1/12/2025



#Cargar los Datos

datos<-read.csv("soil_pollution_diseases.csv",header = TRUE,dec = ".",
                sep = ",")



#Nivel_Enfermedad

Nivel_Enfermedad<-datos$Disease_Severity

# Tabla de distribución de frecuencia

TDF_Nivel_Enfermedad<-data.frame(table(Nivel_Enfermedad))

ni <- TDF_Nivel_Enfermedad$Freq
hi <- round((ni / sum(ni)) * 100, 2)
Nivel_Enfermedad <- TDF_Nivel_Enfermedad$Nivel_Enfermedad
TDF_Nivel_Enfermedad <- data.frame(Nivel_Enfermedad, ni, hi)
Summary <- data.frame(Nivel_Enfermedad = "TOTAL", ni = sum(ni),hi = 100)

TDF_Enfermedad_suma<-rbind(TDF_Nivel_Enfermedad, Summary)
colnames(TDF_Enfermedad_suma) <- c("Nivel Enfermedad", "ni", "hi(%)")


# Ordenar la tabla en el orden deseado
TDF_Enfermedad_suma$`Nivel Enfermedad` <- factor(
  TDF_Enfermedad_suma$`Nivel Enfermedad`,
  levels = c("Severe", "Moderate", "Mild", "TOTAL")
)

TDF_Enfermedad_suma <- TDF_Enfermedad_suma[
  order(TDF_Enfermedad_suma$`Nivel Enfermedad`),
]

# TABLA 
library(gt)
library(dplyr)

TDF_Enfermedad_suma%>%
  gt() %>%
  tab_header(
    title = md("*Tabla Nro. 1*"),
    subtitle = md("**Tabla de distribución de frecuencias de los niveles de enfermedad**")
  ) %>%
  tab_source_note(
    source_note = md("Autor: Grupo 3")
  ) %>%
  tab_options(
    table.border.top.color = "black",
    table.border.bottom.color = "black",
    table.border.top.style = "solid",
    table.border.bottom.style = "solid",
    column_labels.border.top.color = "black",
    column_labels.border.bottom.color = "black",
    column_labels.border.bottom.width = px(2),
    row.striping.include_table_body = TRUE,
    heading.border.bottom.color = "black",
    heading.border.bottom.width = px(2),
    table_body.hlines.color = "gray",
    table_body.border.bottom.color = "black"
  )
Tabla Nro. 1
Tabla de distribución de frecuencias de los niveles de enfermedad
Nivel Enfermedad ni hi(%)
Severe 1023 34.10
Moderate 998 33.27
Mild 979 32.63
TOTAL 3000 100.00
Autor: Grupo 3
#Graficas
# Diagrama de barrras local ni

barplot(ni, main = "Gráfica N°1: Distribución de frecuencias 
        de los Niveles de Enfermedad",
        xlab = "Niveles de enfermedad",
        ylab = "Cantidad",
        col = "red",
        ylim = c(0,1000),
        las = 2,
        cex.names = 0.6,
        names.arg = TDF_Nivel_Enfermedad$Nivel_Enfermedad)

#Diagrama de barras global ni 

barplot(ni, main = "Gráfica N°2: Distribución de frecuencias 
        de los niveles de enfermedad",
        xlab = "Niveles de Enfermedad",
        ylab = "Cantidad",
        col = "skyblue",
        ylim = c(0,3000),
        las=2,
        cex.names = 0.6,
        names.arg = TDF_Nivel_Enfermedad$Nivel_Enfermedad)

#Diagrama de barras local hi(%)

barplot(hi, main = "Gráfica N°3: Distribución de frecuencias porcentual 
        de los niveles de enfermedad",
        xlab = "Niveles de Enfermedad",
        ylab = "Porcentaje",
        col = "green",
        ylim = c(0,40),
        las = 2,
        cex.names = 0.6,
        names.arg = TDF_Nivel_Enfermedad$Nivel_Enfermedad)

#Diagrama de barras global hi(%)

barplot(hi, main = "Gráfica N°4: Distribución de frecuencias porcentual 
        de los niveles de enfermedad",
        xlab = "Niveles de Enfermedad",
        ylab = "Porcentaje",
        col = "blue",
        ylim = c(0,100),
        las = 2,
        cex.names = 0.6,
        names.arg = TDF_Nivel_Enfermedad$Nivel_Enfermedad)

#Diagrama circular

etiqueta_pie <- paste(TDF_Nivel_Enfermedad$hi, "%")
pie(hi,
    main = "Gráfica N°5 Distribución porcentual de los niveles de enfermedad",
    radius = 1,
    labels = etiqueta_pie,
    col = rev(heat.colors(length(hi))),
    cex = 0.9,
    cex.main = 1)

legend("topright",
       legend = TDF_Nivel_Enfermedad$Nivel_Enfermedad,
       fill = colores <- c(rev(heat.colors(11))),
       cex = 0.9,
       title = "Leyenda")

#Indicadores

moda <- function(x) {
  frec <- table(x)         
  names(frec)[which.max(frec)]  
}

# Moda 
moda(datos$Disease_Severity)
## [1] "Severe"
#Mediana

niveles_severidad <- c("Mild", "Moderate", "Severe")


datos$Disease_Severity <- factor(datos$Disease_Severity,
                                 levels = niveles_severidad,
                                 ordered = TRUE)


mediana_ordinal <- function(x) {
  x <- x[!is.na(x)]       
  cod <- as.numeric(x)     
  m_cod <- median(cod)     
  levels(x)[round(m_cod)]  
}


mediana_ordinal(datos$Disease_Severity)
## [1] "Moderate"