UNIVERSIDAD CENTRAL DEL ECUADOR
ESTUDIO ESTADÍSTICO DE LA CONTAMINACIÓN DEL SUELO Y SU IMPACTO EN LA SALUD
FECHA: 19/11/2025
# =========================
# ESTADÍSTICA Descriptiva
# Fecha: 19/11/2025
# =========================
# -------------------------
# Cargar datos
# -------------------------
setwd("C:/Users/Alexander/Downloads")
# Extraemos los datos
df <- read.csv("soil_pollution_diseases.csv", sep = ",", stringsAsFactors = FALSE)
# 1. Cargar dataset CSV
df <- read.csv("soil_pollution_diseases.csv", sep = ",", stringsAsFactors = FALSE)
# 2. Convertir la columna a fecha (formato día/mes/año)
df$Date_Reported <- as.Date(df$Date_Reported, format = "%Y-%m-%d")
# 3. Crear columnas separadas de día, mes y año
df$Day <- as.integer(format(df$Date_Reported, "%d"))
df$Month <- as.integer(format(df$Date_Reported, "%m"))
df$Year <- as.integer(format(df$Date_Reported, "%Y"))
#Extraemos la variable Discreta
Mes <- df$Month
# TABLA DE DISTRIBUCIÓN DE FRECUENCIAS DE MESES
TDF.Mes <- table(Mes)
Tabla_Mes <- as.data.frame(TDF.Mes)
# Frecuencias relativas (porcentaje)
hi <- (Tabla_Mes$Freq / sum(Tabla_Mes$Freq)) * 100
ni <- Tabla_Mes$Freq
Tabla_Mes <- data.frame(Tabla_Mes, hi)
# Acumuladas
Niasc <- cumsum(ni)
Hiasc <- cumsum(hi)
Nidsc <- rev(cumsum(rev(ni)))
Hidsc <- rev(cumsum(rev(hi)))
Tabla_mes_final <- data.frame(
Mes = Tabla_Mes$Mes,
ni = Tabla_Mes$Freq,
`hi (%)` = round(Tabla_Mes$hi, 2),
Ni_asc = Niasc,
`Hi_asc(%)` = round(Hiasc, 2),
Ni_dsc = Nidsc,
`Hi_dsc(%)` = round(Hidsc, 2)
)
# Totales
Tabla_mes_final$Mes <- as.character(Tabla_mes_final$Mes)
totales <- c(
Mes = "Total",
ni = sum(ni),
`hi (%)` = 100,
Ni_asc = "-",
`Hi_asc(%)` = "-",
Ni_dsc = "-",
`Hi_dsc(%)` = "-"
)
TDF_meses_total <- rbind(Tabla_mes_final, totales)
# FORMATO gt
library(gt)
tabla_meses_gt <- TDF_meses_total %>%
gt() %>%
tab_header(
title = md("*Tabla N° 3*"),
subtitle = md("**Tabla de distribución de simples y acumuladas de los meses del estudio**")
) %>%
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"
) %>%
tab_style(
style = cell_text(weight = "bold"),
locations = cells_body(
rows = Mes == "Total"
)
)
tabla_meses_gt
| Tabla N° 3 | ||||||
| Tabla de distribución de simples y acumuladas de los meses del estudio | ||||||
| Mes | ni | hi.... | Ni_asc | Hi_asc... | Ni_dsc | Hi_dsc... |
|---|---|---|---|---|---|---|
| 1 | 235 | 7.83 | 235 | 7.83 | 3000 | 100 |
| 2 | 240 | 8 | 475 | 15.83 | 2765 | 92.17 |
| 3 | 253 | 8.43 | 728 | 24.27 | 2525 | 84.17 |
| 4 | 268 | 8.93 | 996 | 33.2 | 2272 | 75.73 |
| 5 | 247 | 8.23 | 1243 | 41.43 | 2004 | 66.8 |
| 6 | 243 | 8.1 | 1486 | 49.53 | 1757 | 58.57 |
| 7 | 281 | 9.37 | 1767 | 58.9 | 1514 | 50.47 |
| 8 | 248 | 8.27 | 2015 | 67.17 | 1233 | 41.1 |
| 9 | 224 | 7.47 | 2239 | 74.63 | 985 | 32.83 |
| 10 | 242 | 8.07 | 2481 | 82.7 | 761 | 25.37 |
| 11 | 262 | 8.73 | 2743 | 91.43 | 519 | 17.3 |
| 12 | 257 | 8.57 | 3000 | 100 | 257 | 8.57 |
| Total | 3000 | 100 | - | - | - | - |
| Autor: Grupo 3 | ||||||
# Gráfico de barras - Frecuencia absoluta por Mes
barplot(ni,
main = "Gráfica N°1: Distribución de la contaminación del suelo según el Mes",
xlab = "Mes",
ylab = "Cantidad de registros",
col = "skyblue",
ylim = c(0, max(ni)),
names.arg = Tabla_Mes$Mes,
las = 2,
cex.names = 0.8)
# Gráfico global frecuencia
barplot(ni,
main = "Gráfica N°2: Distribución de la contaminación del suelo según el Mes",
xlab = "Mes",
ylab = "Cantidad de registros",
col = "skyblue",
ylim = c(0, 3000),
names.arg = Tabla_Mes$Mes,
las = 2,
cex.names = 0.8)
# Gráfico de barras - Porcentaje por Mes
barplot(hi,
main = "Gráfica N°3: Distribución porcentual de los meses en los
que se realizó el estudio de contaminación del suelo",
xlab = "Mes",
ylab = "%",
col = "lightgreen",
names.arg = Tabla_Mes$Mes,
las = 2,
cex.names = 0.8)
# Gráfico global porcentaje
barplot(hi,
main = "Gráfica N°4: Distribución porcentual de los meses en los
que se realizó el estudio de contaminación del suelo",
xlab = "Mes",
ylab = "%",
col = "lightgreen",
ylim = c(0, 100),
names.arg = Tabla_Mes$Mes,
las = 2,
cex.names = 0.8)
# DIAGRAMA DE CAJA Y BIGOTE - Mes
boxplot(Mes,
horizontal = TRUE,
col = "brown",
main = "Gráfica N°5: Distribución de los Meses del Estudio de
Contaminación del Suelo",
xlab = "Mes")
# Ojiva cantidades
x_pos <- 1:length(Tabla_Mes$Mes)
plot(x_pos, Nidsc,
main = "Gráfica N°6: Distribución Ascendentes
y Descendentes de los meses del estudio de contaminación del suelo",
xlab = "Meses",
ylab = "Cantidad",
col = "orange",
type = "p",
lwd = 3,
xaxt = "n")
lines(x_pos, Niasc,
col = "green",
type = "p",
lwd = 3)
axis(1, at = x_pos, labels = Tabla_Mes$Mes)
# Ojiva porcentual
plot(x_pos, Hidsc,
main = "Gráfica N°7: Distribución porcentual
Ascendentes y Descendentes de los meses del estudio",
xlab = "Meses",
ylab = "Porcentaje %",
col = "red",
type = "p",
lwd = 2,
xaxt = "n")
lines(x_pos, Hiasc,
col = "blue",
type = "p",
lwd = 3)
axis(1, at = x_pos, labels = Tabla_Mes$Mes)
# ===============================
# INDICADORES ESTADISTICOS
# ===============================
# Indicadores de Tendencia Central
# Media aritmética
media <- round(mean(Mes),0)
media
## [1] 7
# Moda
max_frecuencia <- max(Tabla_Mes$Freq)
moda <- Tabla_Mes$Mes[Tabla_Mes$Freq == max_frecuencia]
moda
## [1] 7
## Levels: 1 2 3 4 5 6 7 8 9 10 11 12
# Mediana
mediana <- median(Mes)
mediana
## [1] 7
# ===============================
# INDICADORES DE DISPERSIÓN
# ===============================
# Varianza
varianza <- var(Mes)
varianza
## [1] 11.81366
# Desviación Estándar
sd <- sd(Mes)
sd
## [1] 3.437101
# Coeficiente de Variación
cv <- round((sd / media) * 100, 2)
cv
## [1] 49.1
# ===============================
# INDICADORES DE FORMA
# ===============================
library(e1071)
# Asimetría
asimetria <- skewness(Mes, type = 2)
asimetria
## [1] 0.01030819
# Curtosis
curtosis <- kurtosis(Mes)
curtosis
## [1] -1.204518
# ===============================
# TABLA RESUMEN FINAL
# ===============================
tabla_indicadores <- data.frame(
"Variable" = c("Mes"),
"Rango" = c(paste0("[", min(Mes), " ; ", max(Mes), "]")),
"X" = c(round(media,0)),
"Me" = c(round(mediana,0)),
"Mo" = c(paste(moda, collapse = ", ")),
"V" = c(round(varianza,2)),
"Sd" = c(round(sd,0)),
"Cv" = c(cv),
"As" = c(round(asimetria,2)),
"K" = c(round(curtosis,2)),
"Valores_Atipicos" = "No hay presencia de valores atípicos"
)
library(gt)
tabla_indicadores_gt <- tabla_indicadores %>%
gt() %>%
tab_header(
title = md("*Tabla N°2*"),
subtitle = md("**Indicadores estadísticos de la variable Mes**")
) %>%
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"
) %>%
tab_style(
style = cell_text(weight = "bold"),
locations = cells_body(
rows = Variable == "Mes"
)
)
tabla_indicadores_gt
| Tabla N°2 | ||||||||||
| Indicadores estadísticos de la variable Mes | ||||||||||
| Variable | Rango | X | Me | Mo | V | Sd | Cv | As | K | Valores_Atipicos |
|---|---|---|---|---|---|---|---|---|---|---|
| Mes | [1 ; 12] | 7 | 7 | 7 | 11.81 | 3 | 49.1 | 0.01 | -1.2 | No hay presencia de valores atípicos |
| Autor: Grupo 3 | ||||||||||
##------------##
## CONCLUSION ##
##------------##
# La variable Año fluctua entre 1 y 12, y gira entorno a 7 con una desviación estandar de 3 siendo un conjuto de datos heterogeneo, los valores de acumulan de manera debil en la parte media de la variable. Sin presencia de valores atipicos.