#------------------ UNIVERSIDAD CENTRAL DEL ECUADOR
##-----Facultad de Ingeniería en Geología, Minas, Petróleo y Ambiental
###-----------------Carrera de Ingeniería Ambiental
# Proyecto: Estudio de Residuos en la India
# Etapa: Estadistica Inferencial
# Integrantes: Jazmin Guañuna, Nayely Perugachi, Helen Taipe, Gabriela Usiña
# Fecha: 12/7/2025
setwd("/cloud/project")
datos <- read.csv("DATOS.csv", header = T, sep = ";", dec = ".")
str(datos)
## 'data.frame': 850 obs. of 14 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. : chr "19.1244" "19.1245" "19.1246" "19.1247" ...
## $ Landfill.Location..Long. : chr "" "" "" "" ...
## $ 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 ...
#Extraer la variable cuantitativa continua
residuos_generados <- datos$Waste.Generated..Tons.Day.
residuos_generados <- na.omit(residuos_generados)
min <- min(residuos_generados)
max <- max(residuos_generados)
# Gráfica
# Calcular histograma pero no graficar aún
Hist <- hist(residuos_generados, plot = FALSE, breaks = "Sturges")
# Establecer en 0 la primera barra
Hist$counts[1] <- 0
Hist$density[1] <- 0
# Volver a graficar sin la primera barra
plot(Hist, col = "skyblue",
main = "Gráfica No. 104:Distribución de Probabilidad de Residuos Generados
en el Estudio de Residuos en la India",
cex.main=0.9,
xlab = "Residuos Generados (Ton/día)",
ylab = "Densidad de probabilidad",
xlim = c(1000,10000))

# Conjetura
plot(Hist, freq = FALSE, col = "skyblue",
main = "Gráfica No. 105: Comparación de Realidad y Modelo de los Residuos Generados
en el Estudio de Residuos en la India",
cex.main=0.9,
xlab = "Residuos Generados (Ton/día)",
ylab = "Densidad de probabilidad",
xlim = c(1000,10000))
x <- seq(min,max,0.01)
y <- dunif(x,min, max)
lines(x,y, col="red", lwd=2)

alturas <- Hist$density
base <- diff(Hist$breaks)
area <- alturas*base
sum(area)
## [1] 0.9317647
# Test
FO <- Hist$counts
FO
## [1] 0 83 85 85 94 85 80 87 94 99
P <- c()
FE <- c()
for (i in 1:10) {
P[i] <- punif(Hist$breaks[i+1],min, max)-
punif(Hist$breaks[i], min, max)
FE[i] <- P[i]*length(residuos_generados)
}
FE
## [1] 43.89587 89.76661 89.76661 89.76661 89.76661 89.76661 89.76661 89.76661
## [9] 89.76661 87.97127
# X2
X2 <- sum(((FO-FE)^2)/FE)
#Vc <- qchisq(0.95,grados de libertad)
Vc <- qchisq(0.99999999,8)
X2 < Vc
## [1] TRUE
#Intervalos de confianza
x <- mean(residuos_generados)
n<-length(residuos_generados)
cs<-sd(residuos_generados) #cuasidesviación
LiminfIC <- x-(2*(cs/sqrt(n)))
LiminfIC
## [1] 5071.064
LimsupIC <- x+(2*(cs/sqrt(n)))
LimsupIC
## [1] 5453.435
# P(5071.064 < u < 5453.435) = 95%
# Estimación
# Definir intervalo a sombrear
# ¿ Cual es la probabilidad de que se genere entre 2000 a 3000 toneladas de residuos al día?
a <- 2000
b <- 3000
# Crear secuencia de puntos
x_modelo <- seq(min, max, length.out = 1000)
y_modelo <- dunif(x_modelo, min, max)
prob <- punif(b, min, max) - punif(a, min, max)
porcentaje <- round(prob * 100, 2)
# Crear curva del modelo uniforme
plot(x_modelo, y_modelo, type = "l", lwd = 2, col = "red",
main = "Gráfica No. 106: Cálculo de Probabilidad de Residuos Generados
en el Estudio de Residuos en la India",
xlab = "Residuos generados (Ton/día)",
ylab = "Densidad de probabilidad")
x_sombra <- seq(a, b, length.out = 500)
y_sombra <- dunif(x_sombra, min, max)
polygon(c(a, x_sombra, b), c(0, y_sombra, 0),
col = rgb(0.1, 0.4, 1, 0.4), border = NA)
legend("topright",
legend = c("Modelo uniforme", paste("Área entre", a, "y", b)),
col = c("red", rgb(0.1, 0.4, 1, 0.4)),
lwd = c(2, 10),
bty = "n")
text(x = 2500, y = 0.00013 * 0.9,
labels = paste0("Área = ", porcentaje, "%"),
col = "black", cex = 1, font = 1)

#Probabilidad de 10.56 % o 0.10
#Tablas de conclusiones
library(knitr)
# Tabla 1: Modelo de distribución uniforme
tabla_modelos_1 <- data.frame(
"Residuos Generados (Ton/día)" = c("[511, 9980]", ""),
"Modelo" = c("Uniforme", ""),
"Test de Chi-cuadrado" = c("Aprobado", "")
)
# Tabla 2: Intervalo de confianza
tabla_intervalos <- data.frame(
"Intervalo de Confianza" = c("Límite Inferior", "Límite Superior"),
"Grado de Confianza (%)" = c(99.99, 99.99),
"Residuos Generados(Ton/día)" = c(LiminfIC,LimsupIC)
)
# Mostrar tabla 1 con título
kable(tabla_modelos_1, align = "c", caption = "Tabla 1: Conclusiones del Modelo Uniforme para Residuos Generados")
Tabla 1: Conclusiones del Modelo Uniforme para Residuos
Generados
| [511, 9980] |
Uniforme |
Aprobado |
|
|
|
# Mostrar tabla 2 con título
kable(tabla_intervalos, align = "c", caption = "Tabla 2: Intervalos de Confianza de la Media de Residuos Generados")
Tabla 2: Intervalos de Confianza de la Media de Residuos
Generados
| Límite Inferior |
99.99 |
5071.064 |
| Límite Superior |
99.99 |
5453.435 |