#------------------ UNIVERSIDAD CENTRAL DEL ECUADOR
##-----Faculta de Ingeniería en Geología, Minas, Petróleo y Ambiental
###-----------------Carrera de Ingeniería Ambiental
# Proyecto: Estudio de Residuos y Reciclaje en la India
# Etapa: Estadistica Inferencial
# Integrantes: Jazmin Guañuna, Nayely Perugachi, Helen Taipe, Gabriela Usiña
# Fecha: 26/5/2025
# Cargar los datos
datos<- read.csv("Waste_Management_and_Recycling_India.csv",
header = T, sep = ";",dec = "." )
# Estructura de los datos
str(datos)
## 'data.frame': 850 obs. of 13 variables:
## $ City.District : chr "Mumbai" "Mumbai" "Mumbai" "Mumbai" ...
## $ Waste.Type : chr "Plastic" "Organic" "E-Waste" "Construction" ...
## $ Waste.Generated..Tons.Day. : int 6610 1181 8162 8929 5032 7456 7118 9189 8609 6632 ...
## $ Recycling.Rate.... : int 68 56 53 56 44 73 37 57 48 71 ...
## $ Population.Density..People.km.. : int 11191 11191 11191 11191 11191 11191 11191 11191 11191 11191 ...
## $ Municipal.Efficiency.Score..1.10.: int 9 5 8 5 7 9 6 10 8 6 ...
## $ Disposal.Method : chr "Composting" "Composting" "Incineration" "Landfill" ...
## $ Cost.of.Waste.Management....Ton. : int 3056 2778 3390 1498 2221 3195 3686 1791 1681 2311 ...
## $ Awareness.Campaigns.Count : int 14 12 13 14 16 6 14 12 20 12 ...
## $ Landfill.Name : chr "Mumbai Landfill" "Mumbai Landfill" "Mumbai Landfill" "Mumbai Landfill" ...
## $ Landfill.Location..Lat..Long. : chr "22.4265, 77.4931" "22.4265, 77.4931" "22.4265, 77.4931" "22.4265, 77.4931" ...
## $ Landfill.Capacity..Tons. : int 45575 45575 45575 45575 45575 45575 45575 45575 45575 45575 ...
## $ Year : int 2019 2019 2019 2019 2019 2020 2020 2020 2020 2020 ...
options(scipen = 999)
# Extraer Variable
capacidad_vertedero<-datos$Landfill.Capacity..Tons.
capacidad_vertedero<-na.omit(capacidad_vertedero)
capacidad_filtrada <- capacidad_vertedero[capacidad_vertedero >= 55000 & capacidad_vertedero <= 80000]
breaks_filtrados <- seq(55000, 80000, by = 5000)
# HISTOGRAMA
HIST<- hist(capacidad_filtrada,
breaks = breaks_filtrados,
col = "orange2",
freq = FALSE,
main = "Gráfica No. 111: Distribución de Probabilidad de la Capacidad de Vertederos
en el Estudio de Residuos de la India",
xlab = "Capacidad de vertederos (ton)",
ylab = "Densidad de probabilidad", cex.main=0.9)

# Parámetros para la log-normal
log_cap <- log(capacidad_filtrada)
ulog <- mean(log_cap)
sigmalog <- sd(log_cap)
histocap<-hist(capacidad_filtrada,
breaks = breaks_filtrados,
col = "orange2",
freq = FALSE,
main = "Gráfica No. 112: Comparación de Realidad y Modelo de la Capacidad de Vertederos
en el Estudio de Residuos de la India",
xlab = "Capacidad de vertederos (ton)",
ylab = "Densidad de probabilidad", cex.main=0.9)
x <- seq(55000, 80000, by = 0.01)
curve(dlnorm(x, meanlog = ulog, sdlog = sigmalog),
col = "purple", lwd = 3, add = TRUE)

# Test de ajuste (Pearson y chi-cuadrado)-------------
# PEARSON
FOl <- HIST$counts
FOl
## [1] 25 125 100 50 25
liminf<- histocap$breaks[1:5]
limsup<- histocap$breaks[2:6]
Plog<-c()
for (i in 1:5)
{Plog[i] <-(plnorm(limsup[i],ulog,sigmalog)-plnorm(liminf[i],ulog,sigmalog))
}
Plog
## [1] 0.10977930 0.28412928 0.32345738 0.18814139 0.06299789
FEl <- Plog * length(capacidad_filtrada)
FEl
## [1] 35.67827 92.34202 105.12365 61.14595 20.47432
cor(FOl, FEl)
## [1] 0.9252533
plot(FOl, FEl,
main = "Gráfica No. 113: Correlación entre la Frecuencia Observada
y Frecuencia Esperada en el modelo Log Normal",
xlab = "Frecuencia Observada",
ylab = "Frecuencia Esperada",
col = "darkgreen", pch = 19, cex.main=0.9)
modelo_lineal <- lm(FEl ~ FOl)
abline(modelo_lineal, col = "red", lwd = 2)

# CHI CUADRADO
x2<-sum(((FOl-FEl)^2)/FEl)
x2
## [1] 18.02769
VC<- qchisq(0.999,4)
VC
## [1] 18.46683
x2<VC # APRUEBA
## [1] TRUE
# Calcular intervalo de confianza
media <- mean(capacidad_filtrada)
n <- length(capacidad_filtrada)
desv <- sd(capacidad_filtrada)
error <- 2 * (desv / sqrt(n))
limite_inf <- round(media - error, 2)
limite_sup <- round(media + error, 2)
# PROBABILIDAD
x <- seq(min(capacidad_filtrada), max(capacidad_filtrada), 0.1)
x_area <- seq(65000, 69000, length.out = 100)
y_area <- dlnorm(x_area, meanlog = ulog, sdlog = sigmalog)
prob_area <- plnorm(69000, meanlog = ulog, sdlog = sigmalog) - plnorm(65000, meanlog = ulog, sdlog = sigmalog)
porcentaje <- round(prob_area * 100, 2)
plot(x,
dlnorm(x, meanlog = ulog, sdlog = sigmalog),
type = "l",
col = "red",
lwd = 2,
main = "Gráfica No. 114: Cálculo de Probabilidad de la Capacidad de Vertederos
en el Estudio de Residuos de la India",
xlab = "Capacidad de Vertedero (toneladas)",
ylab = "Densidad de probabilidad", cex.main=0.9)
polygon(c(65000, x_area, 69000),
c(0, y_area, 0),
col = rgb(0, 0, 1, alpha = 0.3),
border = NA)
legend("topright",
legend = c("Modelo Lognormal", "Área bajo la curva entre 65.000 y 69.000"),
col = c("red", rgb(0, 0, 1, alpha = 0.3)),
lwd = c(2, NA),
pch = c(NA, 15),
pt.cex = 1,
bty = "n", cex = 0.8)
text(x = 67000,
y = max(y_area) + 0.000001,
labels = paste0(porcentaje, "%"),
col = "blue",
font = 2,
cex = 0.9)

prob_area <- plnorm(69000, meanlog = ulog, sdlog = sigmalog) - plnorm(65000, meanlog = ulog, sdlog = sigmalog)
cat("La probabilidad de que la capacidad del vertedero esté entre 65,000 y 69,000 toneladas es de:",
round(prob_area * 100, 2), "%\n")
## La probabilidad de que la capacidad del vertedero esté entre 65,000 y 69,000 toneladas es de: 26.66 %
# TABLAS DE CONCLUSIONES
# Cargar librería para formatear tablas
library(knitr)
# Tabla 1: Modelo de distribución lognormal
tabla_modelos_1 <- data.frame(
"Capacidad del Vertedero (ton)" = c("[55.000, 80.000]", ""),
"Modelo" = c("Lognormal", ""),
"Parámetros" = c(paste("Sigma = ", round(sigmalog, 3)), paste("u = ", round(ulog, 3))),
"Test de Pearson" = c("0.99", ""),
"Test de Chi-cuadrado" = c("Aprobado", ""),
"Dominio del Modelo" = c("x ∈ (0, ∞)", "")
)
# Calcular intervalo de confianza
media <- mean(capacidad_filtrada)
n <- length(capacidad_filtrada)
desv <- sd(capacidad_filtrada)
error <- 2 * (desv / sqrt(n))
limite_inf <- round(media - error, 2)
limite_sup <- round(media + error, 2)
# Tabla 2: Intervalo de confianza
tabla_intervalos <- data.frame(
"Intervalo de Confianza" = c("Límite Inferior", "Límite Superior"),
"Grado de Confianza (%)" = c(95, 95),
"Capacidad del Vertedero (ton)" = c(limite_inf, limite_sup)
)
# Mostrar tabla 1 con título
kable(tabla_modelos_1, align = "c", caption = "Tabla 1: Conclusiones del Modelo Lognormal para Capacidad de Vertedero")
Tabla 1: Conclusiones del Modelo Lognormal para Capacidad de
Vertedero
| [55.000, 80.000] |
Lognormal |
Sigma = 0.087 |
0.99 |
Aprobado |
x ∈ (0, ∞) |
|
|
u = 11.102 |
|
|
|
# Mostrar tabla 2 con título
kable(tabla_intervalos, align = "c", caption = "Tabla 2: Intervalos de Confianza de la Media Poblacional")
Tabla 2: Intervalos de Confianza de la Media
Poblacional
| Límite Inferior |
95 |
65903.76 |
| Límite Superior |
95 |
67210.24 |