#------------------ UNIVERSIDAD CENTRAL DEL ECUADOR
##-----Facultad de Ingeniería en Geología, Minas, Petróleos y Ambiental
###-----------------Carrera de Ingeniería Ambiental
# Proyecto: Estudio de Residuos y Reciclaje en la India
# Etapa: Estadistica Inferencial
# Nombre: Helen Taipe
# Fecha: 20/07/2025
bd<- datos <- read.csv2("Waste_Management_and_Recycling_India.csv xd.csv",
sep = ";",
dec = ",",
stringsAsFactors = FALSE)
names(bd)
## [1] "City.District" "Waste.Type"
## [3] "Waste.Generated..Tons.Day." "Recycling.Rate...."
## [5] "Population.Density..People.km.." "Municipal.Efficiency.Score..1.10."
## [7] "Disposal.Method" "Cost.of.Waste.Management....Ton."
## [9] "Awareness.Campaigns.Count" "Landfill.Name"
## [11] "Landfill.Location..Lat..Long." "Landfill.Capacity..Tons."
## [13] "Year"
names(bd) <- c(
"Ciudad",
"Tipo_Residuo",
"Residuos_Generados_TonDia",
"Tasa_Reciclaje_Porc",
"Densidad_Poblacional",
"Eficiencia_Municipal",
"Metodo_Disposicion",
"Costo_Gestion_Residuos",
"Campanas_Concientizacion",
"Nombre_Relleno",
"Ubicacion_Relleno",
"Capacidad_Relleno_Ton",
"Anio"
)
#install.packages("naniar")
#install.packages("tidyr")
library(naniar)
library(dplyr)
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
library(tidyr)
bd <- bd %>%
separate(Ubicacion_Relleno, into = c("Latitud", "Longitud"), sep = ",", remove = FALSE) %>%
mutate(
Latitud = as.numeric(trimws(Latitud)),
Longitud = as.numeric(trimws(Longitud)))
# ESTADPISTICA INFERENCIAL
# 1. Selección de variable continua
x <- bd$Capacidad_Relleno_Ton
# 2. Histograma
hist(x, main = "Gráfica No.1: de Frecuencias de la Capacidad de Vertedero",
xlab = "Capacidad",
col = "lightblue",
breaks = 10)

# 3 - 4 Conjetura de Modelo Probabilístico
# Los datos aparentar conjeturar a una distribución normal
# Cálculo de parámetros (media y desviación estándar)
media <- mean(x, na.rm = TRUE)
desv <- sd(x, na.rm = TRUE)
cat("Media:", round(media,2), "\n")
## Media: 58934.62
cat("Desviación estándar:", round(desv, 2), "\n")
## Desviación estándar: 19413.63
cat("En promedio las ciudades de la India la capacidad de relleno es de",
media
,"toneladas de residuos al dia.")
## En promedio las ciudades de la India la capacidad de relleno es de 58934.62 toneladas de residuos al dia.
# Histograma con densidad
hist(x, prob= TRUE, breaks=4,ylim = c(0,0.00002),
col = "lightblue",
main = "Gráfica No.2: Modelo Normal de la Variable Capacidad de Vertedero
en India",
xlab = "Capacidad de Vertedero (ton)") # Añadir curva normal teórica
curve(dnorm(x ,mean = media, sd = desv),
col = "red", lwd = 2, add = TRUE)

# 5. Test de Bondad de Ajuste (Chi-Cuadrado para normalidad)
u <- mean(x)
sigma <- sd(x)
# Histograma con 5 intervalos sin graficar
hlongitud <- hist(x, breaks = 9, plot = FALSE)
# Frecuencias observadas
Fo <- hlongitud$counts
Fo
## [1] 50 125 125 100 225 75 100 50
liminf <- hlongitud$breaks[1:8]
limsup <- hlongitud$breaks[2:9]
P <- c()
for (i in 1:length(Fo)) {
P[i] <- pnorm(limsup[i], u, sigma) - pnorm(liminf[i], u, sigma)
}
P
## [1] 0.04560265 0.09664342 0.15797845 0.19920448 0.19377222 0.14540296 0.08416377
## [8] 0.03757608
# Frecuencias esperadas
Fe <- P * length(x)
Fe
## [1] 38.76225 82.14691 134.28169 169.32381 164.70639 123.59252 71.53920
## [8] 31.93967
h<-length(hlongitud$counts)
P<-c(0)
for (i in 1:h) {
P[i] <-(pnorm(hlongitud$breaks[i+1],u,sigma)-
pnorm(hlongitud$breaks[i],u,sigma))}
#Frecuencia esperada
FE<-P*length(hlongitud)
plot(Fo,Fe,main="Gráfica No.3:Correlación entre la frecuencia observada y la
frecuencia esperada en el Modelo Normal ",
xlab="Frecuencia Observada(FO)",
ylab="Frecuencia Esperada(FE)",col="blue3")
abline(lm(Fe ~ Fo), col="red",lwd=2)

Correlación<-cor(Fo,Fe)*100
Correlación
## [1] 67.41208
# Estadístico chi-cuadrado manual
X2 <- sum((((Fo - Fe)^2) / Fe))
X2
## [1] 117.3482
# Valor crítico para gl = 5-1-2 = 2, nivel 99%
VC <- qchisq(0.95, df = 6)
X2>VC
## [1] TRUE
# 6. Cálculo de Probabilidades (Ej: ¿P[X > 60000 toneladas/día]?)
p_mayor_100 <- 1 - pnorm(60000, mean = media, sd = desv)
cat("P[X > 100] =", round(p_mayor_100, 4), "\n")
## P[X > 100] = 0.4781
# 7. Estimación puntual (media y desviación estándar)
cat("Estimación puntual (media):", round(media, 2), "\n")
## Estimación puntual (media): 58934.62
cat("Estimación puntual (desv. estándar):", round(desv, 2), "\n")
## Estimación puntual (desv. estándar): 19413.63
# 8. Estimación por Intervalo de Confianza para la media (nivel 95%)
n <- length(na.omit(x))
error_est <- qt(0.975, df = n - 1) * desv / sqrt(n)
li <- media - error_est
ls <- media + error_est
cat("IC del 95% para la media:", round(li, 2), "a", round(ls, 2), "\n")
## IC del 95% para la media: 57627.65 a 60241.59
#### Conclusiones ####
# La variable de la capacidad de los rellenos sanitarios (en toneladas) se modeliza
#a través de un modelo normal. A pesar de esto se rechazó la hipótesis nula en la prueba de bondad de ajuste (X² = 117.35 > VC = 12.59).
# Sin embargo, si se estima una aproximación normal para efectos de análisis,
# se obtienen los siguientes parámetros: media ≈ 58934.62 toneladas y desviación estándar ≈ 19413.63 toneladas.
# Podemos afirmar que la media aritmética poblacional se encuentra entre [57627.65, 60241.59] toneladas con un 95% de confianza.