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

#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

plot(x,y,main = "Gráfica No1: Modelo de regresión potencial",
     xlab = "Residuos generados(ton/dia)",
     ylab ="Costo de gestión (rupia/Ton)" )

#Cálculo de los parámetros
# y=ax^b

#### Linealización ####
# lny=lna+blnx
# y1=BO+B1x1
# b=B1
# a=e^BO

x1<-log(x)
y1<-log(y)
regresionpotencial<-lm(y1~x1)
regresionpotencial
## 
## Call:
## lm(formula = y1 ~ x1)
## 
## Coefficients:
## (Intercept)           x1  
##      6.8441       0.1592
#Parámetros a y b 
beta0<-regresionpotencial$coefficients[1]
beta1<-regresionpotencial$coefficients[2]
b<-beta1
b
##        x1 
## 0.1592387
a<-exp(beta0)
a
## (Intercept) 
##    938.3308
# y=938.33x^0.159
plot(x,y,main = "Gráfica No1: Modelo de regresión potencial",
     xlab = "Residuos generados(ton/dia)",
     ylab ="Costo de gestión (rupia/Ton)" )
curve(a*x^b, from= min(x), to = max(x), add = T, col="red" )

#Test de bondad
#PERSON
r<-cor(x1,y1)
r
## [1] 0.8481595
#Coeficiente de determinación
r2<-(r^2)*100
r2
## [1] 71.93745
###Restricciones
#Restricciones del dominio
# y debe estar entre 503 y 4999
# 



#Predicción
#¿Cuál será el costo de gestión de residuos esperado si la cantidad 
# de residuos generados es de 2500 toneladas por día?
# y=938.33x^0.159
# y=938.33(2500)^0.159

a<- 938.3308 
b<-0.1592387 
x_prediccion <- 2500
prediccion2800 <- a * x_prediccion^b
prediccion2800
## [1] 3261.666
#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.