#------------------ 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 y Reciclaje en la India
# Etapa: Estadistica Multivariable
# Integrantes: Jazmin Guañuna, Nayely Perugachi, Helen Taipe, Gabriela Usiña
# Fecha: 20/07/2025

#Regresión Exponencial#

#Cargamos nuestros datos
library(readr)
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
Waste_Management_and_Recycling_India_csv_xd <- read_delim("Waste_Management_and_Recycling_India.csv xd.csv", 
                                                          delim = ";", escape_double = FALSE, trim_ws = TRUE)
## Rows: 850 Columns: 13
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ";"
## chr (5): City/District, Waste Type, Disposal Method, Landfill Name, Landfill...
## dbl (8): Waste Generated (Tons/Day), Recycling Rate (%), Population Density ...
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
datos<-Waste_Management_and_Recycling_India_csv_xd
names(datos)[names(datos) == "Cost of Waste Management (₹/Ton)"] <- "Cost of Waste Management (rupia/Ton)"

#Extraer las variables

residuos_generados<-datos$`Waste Generated (Tons/Day)`
costo_gestion<-datos$`Cost of Waste Management (rupia/Ton)`

#Definir la variable dependiente(y) e independiente(x)

x <- residuos_generados
y <- costo_gestion
summary(x)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##     511    2866    5283    5262    7757    9980
summary(y)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##     503    1648    2853    2778    3855    4999
#Diagrama de dispersión

plot(x,y, main = "Gráfica No1: Diagrama de dispersión entre el costo de gestión 
     y los residuos generados",
     xlab = "Residuos generados(ton/dia)", ylab = "Costo de gestión (rupia/Ton)")

#Proceso de seperación de intervalos
DatosF <- data.frame(x = datos$`Waste Generated (Tons/Day)`,y =datos$`Cost of Waste Management (rupia/Ton)`)

DatosF <- datos %>%
  filter(`Waste Generated (Tons/Day)`> 2000, 
         `Waste Generated (Tons/Day)`< 3585 , 
         `Cost of Waste Management (rupia/Ton)`> 3100, 
         `Cost of Waste Management (rupia/Ton)` < 3400) %>%
  select(x = `Waste Generated (Tons/Day)`, y = `Cost of Waste Management (rupia/Ton)`)

DatosF <- DatosF %>%
  mutate(x_group = round(x / 10) *10 ) %>% 
  group_by(x_group) %>%
  slice_min(y, n = 1) %>%       
  ungroup() %>%
  select(x = x_group, y)

x <- DatosF$x
y <- DatosF$y

#Cálculo de los paámetros
# y=ae^bx

#### Linealización ####
# lny=lna+bx
# y1=BO+B1x
# b=B1
# BO=lna
# a = a^BO

y1<-log(y)
y1
## [1] 8.076826 8.082402 8.078068 8.130648 8.093157 8.127109
regresionexponencial<-lm(y1~x)
regresionexponencial
## 
## Call:
## lm(formula = y1 ~ x)
## 
## Coefficients:
## (Intercept)            x  
##   7.938e+00    6.061e-05
beta0 <- regresionexponencial$coefficients[1]
beta1 <- regresionexponencial$coefficients[2]
b <-beta1
b
##            x 
## 6.060858e-05
a <-exp(beta0)
a
## (Intercept) 
##    2800.416
# y=2800.416*e^(0.00006060858x)

plot(x, y,
     main = "Gráfica No2: Modelo de regresión potencial",
     xlab = "Residuos generados (ton/día)",
     ylab = "Costo de gestión (rupia/Ton)")
curve((a*exp(1)^(x*b)),col="blue3",add = T)

#TEST
r<-cor(x,y1)
r
## [1] 0.8527062
#Coeficiente de determinación
r2<-(r^2)*100
r2
## [1] 72.71078
###Restricciones#




#Predicción
"¿Cuál será el costo de gestión de residuos (en rupias por tonelada) 
si se generan 3000 toneladas de residuos por día?"
## [1] "¿Cuál será el costo de gestión de residuos (en rupias por tonelada) \nsi se generan 3000 toneladas de residuos por día?"
# y=2800.416*e^(0.00006060858x)
# y=2800.416*e^(0.00006060858(3000))

a <- 2800.416
b <- 0.00006060858

# Valor de residuos generados
x3000<- 3000

# Cálculo del costo de gestión
prediccion3000<- a * exp(b * x3000)
prediccion3000
## [1] 3358.833
#Conclusión
# Entre el costo de gestión  y los residuos generados del Estudio
# de residuos de la India dentro de los intervalos 2000 y 3585 toneladas por día
# para residuos generados y 3100 y 3400 rupias por tonelada para costo de gestión
# existe una relacion de tipo potencial representado por
# y=938.33x^0.159 siendo x los residuos generados en (ton/dia) , y el costo de 
# gestión en (rupia/Ton) .
# Cuando tenemos 2500 toneladas por día de residuos generados el costo de gestión
# esperado es  3261.666 rupias por tonelada.
# Ademas el costo de gestión esta influenciado en un 71.94 % por los residuos generados
#mientras que el 28.06 % se debe a otros factores.