#------------------ 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)

# Histograma
HIST<- hist(densidad_filtrada,
     breaks = breaks_filtrados,
     col = "orange2",
     freq = FALSE,
     main = "Gráfica No. 114: 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)

# 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. 116: 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(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
# PROBABILIDAD
# Secuencia de valores para el eje x
x <- seq(min(densidad_filtrada), max(densidad_filtrada), 0.1)

# Rango de interés: entre 25000 y 27000 personas/km²
x_area <- seq(25000, 27000, length.out = 100)
y_area <- dexp(x_area - base, rate = lambda)

# Calcular la probabilidad acumulada entre 25000 y 27000
prob_area <- pexp(27000 - base, rate = lambda) - pexp(25000 - base, rate = lambda)
porcentaje <- round(prob_area * 100, 2)

# Graficar la curva de densidad
plot(x,
     dexp(x - base, rate = lambda),
     type = "l",
     col = "blue",
     lwd = 2,
     main = "Gráfica No. 117: Cálculo de Probabilidad de la Densidad Poblacional\nen el Estudio de Residuos de la India",
     xlab = "Densidad poblacional (Personas/km²)",
     ylab = "Densidad de probabilidad",
     cex.main = 0.9)

# Resaltar el área bajo la curva
polygon(c(19000, x_area, 19500),
        c(0, y_area, 0),
        col = rgb(0, 0, 1, alpha = 0.3),
        border = NA)

# Leyenda
legend("topright",
       legend = c("Modelo Exponencial", "Área entre 25.000 y 27.000"),
       col = c("blue", rgb(0, 0, 1, alpha = 0.3)),
       lwd = c(2, NA),
       pch = c(NA, 15),
       pt.cex = 1,
       bty = "n",
       cex = 0.8)

# Porcentaje de probabilidad calculada
text(x = 19500,
     y = max(y_area) + 0.00001,
     labels = paste0(porcentaje, "%"),
     col = "blue",
     font = 2,
     cex = 0.9)

range(densidad_filtrada)
## [1] 18195 24032