#------------------ 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: Estadística Inferencial
# Cargar los datos
datos <- read.csv("Waste_Management_and_Recycling_India.csv", header = TRUE, sep = ";", dec = ".")
# Estructura
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 y limpiar la variable
densidad_poblacional <- datos$Population.Density..People.km..
densidad_poblacional <- na.omit(densidad_poblacional)
# Filtrado
densidad_filtrada <- densidad_poblacional[densidad_poblacional >= 18000 & densidad_poblacional <= 30000]
breaks_filtrados <- seq(18000, 30000, by = 2000)
# Desplazamiento para aplicar exponencial
base <- 18000
densidad <- densidad_filtrada - base
# Calcular lambda para la exponencial
lambda <- 1 / mean(densidad)
hist(densidad_filtrada,
breaks = breaks_filtrados,
col = "orange2",
freq = FALSE,
main = "Gráfica No. 115: Distribución de Probabilidad de la Densidad Poblacional
en el Estudio de Residuos de la India",
xlab = "Densidad poblacional (Personas/km²)",
ylab = "Densidad de probabilidad", cex.main = 0.9)

# Histograma
HIST<- hist(densidad_filtrada,
breaks = breaks_filtrados,
col = "orange2",
freq = FALSE,
main = "Gráfica No. 116: Comparación de Realidad y Modelo de la Densidad Poblacional
en el Estudio de Residuos de la India",
xlab = "Densidad poblacional (Personas/km²)",
ylab = "Densidad de probabilidad", cex.main = 0.9)
# Superponer curva exponencial desplazada
curve(dexp(x - base, rate = lambda),
from = 18000, to = 30000,
col = "blue", lwd = 2, add = TRUE)

FO <- (HIST$counts/length(densidad_filtrada))*100
FO
## [1] 50.000000 16.666667 25.000000 8.333333 0.000000 0.000000
liminf<- HIST$breaks[1:6]
limsup<- HIST$breaks[2:7]
P<-c()
for (i in 1:length(HIST$counts))
{P[i] <-(pexp(limsup[i],rate=lambda)-pexp(liminf[i],rate=lambda))
}
P
## [1] 0.00083203781 0.00040779291 0.00019986479 0.00009795642 0.00004800976
## [6] 0.00002353023
# PEARSON
FE <- P *100
FE
## [1] 0.083203781 0.040779291 0.019986479 0.009795642 0.004800976 0.002353023
cor(FO,FE)
## [1] 0.9310261
plot(FO, FE,
main = "Gráfica No. 117: Correlación entre la Frecuencia Observada
y Frecuencia Esperada en el modelo Exponencial",
xlab = "Frecuencia Observada",
ylab = "Frecuencia Esperada",
col = "darkgreen", pch = 19, cex.main=0.9)
modelo_lineal <- lm(FE ~ FO)
abline(modelo_lineal, col = "red", lwd = 2)

# CHI CUADRADO
x2<-sum(((FO-FE)^2)/FE)
x2
## [1] 75019.07
VC<- qchisq(0.9999999999999,6)
VC
## [1] 72.9779
x2> VC
## [1] TRUE
# INTERVALOS DE CONFIANZA
V <- densidad_filtrada
limite_inf <- mean(V) - 2 * (sd(V) / sqrt(length(V)))
limite_sup <- mean(V) + 2 * (sd(V) / sqrt(length(V)))
# PROBABILIDAD
# Secuencia de valores para el eje x
x <- seq(min(densidad_filtrada), max(densidad_filtrada), 0.1)
x_area <- seq(25000, 27000, length.out = 100)
y_area <- dexp(x_area - base, rate = lambda)
prob_area <- pexp(27000 - base, rate = lambda) - pexp(25000 - base, rate = lambda)
porcentaje <- round(prob_area * 100, 2)
x <- seq(min(densidad_filtrada), max(densidad_filtrada), 0.1)
plot(x,
dexp(x - base, rate = lambda),
type = "l",
col = "blue",
lwd = 2,
main = "Gráfica No. 118: Cálculo de Probabilidad de la Densidad Poblacional
en el Estudio de Residuos de la India",
ylab = "Densidad de probabilidad",
xlim = c(24000, 27500),
ylim = c(0, max(y_area) * 4),
cex.main = 0.9)
polygon(c(25000, x_area, 27000),
c(0, y_area, 0),
col = rgb(0, 0, 1, alpha = 0.4),
border = NA)
lines(x, dexp(x - base, rate = lambda),
col = "blue",
lwd = 2)
legend("topright",
legend = c("Modelo Exponencial", "Área entre 25.000 y 27.000"),
col = c("blue", rgb(0, 0, 1, alpha = 0.4)),
lwd = c(2, NA),
pch = c(NA, 15),
pt.cex = 1.2,
bty = "n",
cex = 0.8)
text(x = 25200,
y = max(y_area) + 0.000002,
labels = paste0(porcentaje, "%"),
col = "blue",
font = 2,
cex = 0.9)

cat("La probabilidad de que la densidad poblacional esté entre 25,000 y 27,000 personas/km² es de:",
round(prob_area * 100, 2), "%\n")
## La probabilidad de que la densidad poblacional esté entre 25,000 y 27,000 personas/km² es de: 4.2 %
# Cargar librería para formatear tablas
library(knitr)
# === Tabla 1: Modelo de distribución exponencial para densidad poblacional ===
tabla_modelos_1 <- data.frame(
"Densidad Poblacional (personas/km²)" = c("[18.000, 30.000]", ""),
"Modelo" = c("Exponencial", ""),
"Parámetro" = c(paste("λ =", round(lambda, 5)), ""),
"Test de Pearson" = c(round(cor(FO, FE), 2), ""),
"Dominio del Modelo" = c("x ∈ (18000, ∞)", "")
)
# === Intervalo de confianza al 95% ===
media <- mean(densidad_filtrada)
n <- length(densidad_filtrada)
desv <- sd(densidad_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),
"Densidad Poblacional (personas/km²)" = c(limite_inf, limite_sup)
)
# === Mostrar tablas con formato ===
kable(tabla_modelos_1, align = "c", caption = "Tabla 1: Conclusiones del Modelo Exponencial para la Densidad Poblacional")
Tabla 1: Conclusiones del Modelo Exponencial para la Densidad
Poblacional
| [18.000, 30.000] |
Exponencial |
λ = 0.00036 |
0.93 |
x ∈ (18000, ∞) |
|
|
|
|
|
kable(tabla_intervalos, align = "c", caption = "Tabla 2: Intervalo de Confianza del 95% para la Densidad Poblacional")
Tabla 2: Intervalo de Confianza del 95% para la Densidad
Poblacional
| Límite Inferior |
95 |
20561.47 |
| Límite Superior |
95 |
21047.69 |