#------------------ UNIVERSIDAD CENTRAL DEL ECUADOR
##-----Facultad de Ingeniería en Geología, Minas, Petróleos 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
# Cargar datos
library(readr)
datos <- read.csv("Waste_Management_and_Recycling_India.csv xd.csv",
header = TRUE, sep = ";", dec = ".")
# MODELO POLINÓMICO AGRUPADO
# Cargar librerías necesarias
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(knitr)
# 1. Extraer y limpiar variables
costo <- as.numeric(gsub(",", ".", datos$Cost.of.Waste.Management....Ton.))
capacidad <- as.numeric(gsub(",", ".", datos$Landfill.Capacity..Tons.))
# 2. Crear tabla y eliminar NA/0
tabla_raw <- data.frame(costo = costo, capacidad = capacidad)
tabla_raw <- tabla_raw[!apply(tabla_raw, 1, function(fila) {
any(is.na(fila) | fila == 0)
}), ]
# 3. Agrupar por intervalos de 500
tabla_raw$grupo_costo <- cut(tabla_raw$costo,
breaks = seq(floor(min(tabla_raw$costo)),
ceiling(max(tabla_raw$costo)),
by = 500),
include.lowest = TRUE,
right = FALSE)
# 4. Calcular promedio por grupo
tabla_agrupada <- tabla_raw %>%
group_by(grupo_costo) %>%
summarise(x = mean(costo), y = mean(capacidad), .groups = "drop")
# 5. Ajustar modelo polinómico cuadrático
modelo_poly <- lm(y ~ x + I(x^2), data = tabla_agrupada)
a <- coef(modelo_poly)[1]
b <- coef(modelo_poly)[2]
c <- coef(modelo_poly)[3]
# 6. Gráfico
plot(tabla_agrupada$x, tabla_agrupada$y,
main = "Modelo Polinómico (agrupado): Costo vs Capacidad de Vertedero",
xlab = "Costo de Gestión (₹/Ton)",
ylab = "Capacidad promedio (Toneladas)",
col = "deepskyblue", pch = 16)
curve(a + b*x + c*x^2,
from = min(tabla_agrupada$x),
to = max(tabla_agrupada$x),
add = TRUE, col = "red", lwd = 2)

# 7. Coeficiente de determinación
r <- cor(tabla_agrupada$y, predict(modelo_poly))
r2 <- (r^2) * 100
# 8. Estimación puntual
x0 <- 3000 # costo elegido
y0 <- a + b * x0 + c * x0^2
# Cálculo puntual para x = 3000
x0 <- 3000
y0 <- a + b * x0 + c * x0^2
# Crear gráfico vacío y añadir el texto explicativo
plot(1, type = "n", axes = FALSE, xlab = "", ylab = "") # Gráfico en blanco
text(x = 1, y = 1,
labels = paste("¿Cuál es la capacidad estimada del vertedero (toneladas)",
"\ncuando el costo de gestión es de ₹3.000 por tonelada?",
"\n\nR ≈", round(y0, 2), "toneladas"),
cex = 2.2, # Tamaño del texto
col = "blue", # Color azul
font = 6) # Fuente negrita

# 9. Tabla resumen
Tabla_resumen <- data.frame(
Variables = "Costo de gestión vs Capacidad de vertedero",
Modelo = paste0("y = ", round(a, 2), " + ", round(b, 4), "*x + ", round(c, 7), "*x²"),
Restricciones = paste0("x ∈ [", round(min(tabla_agrupada$x)), ", ", round(max(tabla_agrupada$x)), "]"),
Coef_Pearson = paste0("r = ", round(r, 4)),
Coef_Determinacion = paste0("R² = ", round(r2, 2), "%"),
Estimacion = paste0("y ≈ ", round(y0, 2), " toneladas cuando x = ₹", x0)
)
# Mostrar tabla (en consola o informe)
kable(Tabla_resumen, caption = "Resumen del Modelo Polinómico Agrupado")
Resumen del Modelo Polinómico Agrupado
| Costo de gestión vs Capacidad de vertedero |
y = 57684.04 + 0.8412x + -0.0001168x² |
x ∈ [765, 4754] |
r = 0.1674 |
R² = 2.8% |
y ≈ 59156.7 toneladas cuando x = ₹3000 |