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

# Cargar librerías

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
library(scatterplot3d)
options(scipen = 999)

# Cargar los datos
datos <- 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.
capacidadvertedero<-datos$`Landfill Capacity (Tons)`
residuosgenerados<-datos$`Waste Generated (Tons/Day)`
densidadpoblacional<-datos$`Population Density (People/km²)`

#Selección de la variable dependiente e independientes

y<-capacidadvertedero
x1<-residuosgenerados
x2<-densidadpoblacional

capacidadregresion <- scatterplot3d(x1,x2, y,
                                    main = "Gráfica No1: Diagrama de dispersión de Capacidad de
Vertedero ,Residuos Generados y Densidad Poblacional",
                                    xlab = "Residuos generados (Tons/día)",
                                    ylab = "Densidad poblacional (habitante/km²)",
                                    zlab = "Capacidad del vertedero (Tons)",
                                    color = "darkgreen",
                                    pch = 16,
                                    angle = 75)

# Filtrado de datos

datos_filtrados <- datos %>%
  mutate(
    capacidadvertedero = as.numeric(`Landfill Capacity (Tons)`),
    residuosgenerados = as.numeric(`Waste Generated (Tons/Day)`),
    densidadpoblacional = as.numeric(`Population Density (People/km²)`)
  ) %>%
  filter(
    !is.na(capacidadvertedero) & !is.na(residuosgenerados) & !is.na(densidadpoblacional),
    capacidadvertedero >= 50000 & capacidadvertedero <= 110000,
    residuosgenerados >= 3000 & residuosgenerados <= 5000,
    densidadpoblacional >= 4000 & densidadpoblacional <= 7500
  )

# Extraemos las variables después del filtrado

y <- datos_filtrados$capacidadvertedero
x1 <- datos_filtrados$residuosgenerados
x2 <- datos_filtrados$densidadpoblacional

datosregresion<- data.frame(y, x1,x2)

# Regresión lineal múltiple
regresionmultiple <- lm(y ~ x1 + x2, data = datosregresion)
regresionmultiple
## 
## Call:
## lm(formula = y ~ x1 + x2, data = datosregresion)
## 
## Coefficients:
## (Intercept)           x1           x2  
## 122286.5008      -0.8244      -8.3470
# y=122286.5008-0.8244x1-8.3470x2

capacidadregresion <- scatterplot3d(x1,x2, y,
                                    main = "Gráfica No2: Diagrama de dispersión y modelo de Capacidad de
Vertedero ,Residuos Generados y Densidad Poblacional",
                                    xlab = "Residuos generados (Tons/día)",
                                    ylab = "Densidad poblacional (habitante/km²)",
                                    zlab = "Capacidad del vertedero (Tons)",
                                    color = "darkgreen",
                                    pch = 16,
                                    angle = 250)
capacidadregresion$plane3d(regresionmultiple, col = "red")

# TEST
#PERSON
r<-cor(y, x1 + x2)
r
## [1] -0.9227435
#Coeficiente de determinación
r2<-(r^2)*100
r2
## [1] 85.14556
#Restricciones
# y=122286.5008-0.8244x1-8.3470x2
# 0=122286.5008-0.8244x1-8.3470x2





#Predicción
#¿Qué capacidad debería tener un vertedero que reciba 4000 toneladas de 
#residuos diarios en un área con una densidad poblacional de 6000 hab/km²?

# y=122286.5008-0.8244x1-8.3470x2
# y=122286.5008-0.8244(4000)-8.3470(6000)

intercepto <- 122286.5008
coefx1 <- -0.8244  # residuos generados
coefx2 <- -8.3470  # densidad poblacional

# Valores a predecir
residuos <- 5000
densidad <- 7500

# Cálculo de la capacidad estimada del vertedero
capacidadprediccion <- intercepto + coefx1 * residuos + coefx2 * densidad
capacidadprediccion
## [1] 55562
#Conclusión
# Entre capacidad de vertedero (tons),densidad poblacional(habitante/km²) 
# y residuos generados (tons/dia) existe una relacion de tipo multiple 
# con la ecuación y=122286.5008-0.8244x1-8.3470x2 siendo y la capacidad de 
# vertedero,x1 residuos generados y x2 densidad poblacional.
# Donde la capacidad de vertedero depende en un 85.15 % de la densidad poblacional
# y los residuos generados mientras que el 14.85% depende de otros factores.