#------------------ 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: Estadística Inferencial
# Integrantes: Jazmin Guañuna, Nayely Perugachi, Helen Taipe, Gabriela Usiña
# Fecha: 12/7/2025
#REGRESIÓN LINEAL #
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(readr)
# Leer 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.
names(datos)[names(datos) == "Cost of Waste Management (₹/Ton)"] <- "Cost of Waste Management (rupia/Ton)"
# Filtrar solo datos del año 2023
datos_2023 <- datos %>%
filter(Year == 2023)
# Calcular promedios por ciudad: residuos y costo
promedios_ciudad <- datos_2023 %>%
group_by(`City/District`) %>%
summarise(
x = mean(`Waste Generated (Tons/Day)`, na.rm = TRUE), # Promedio de residuos
y = mean(`Cost of Waste Management (rupia/Ton)`, na.rm = TRUE) # Promedio de costo de gestión
)
# Verificar primeras filas
head(promedios_ciudad)
## # A tibble: 6 × 3
## `City/District` x y
## <chr> <dbl> <dbl>
## 1 Agra 4630. 2732.
## 2 Ahmedabad 6563. 2786.
## 3 Allahabad 6150. 3142.
## 4 Amritsar 5326. 2526.
## 5 Bengaluru 5826. 3052.
## 6 Bhopal 5846. 1887.
# Gráfico de dispersión
plot(promedios_ciudad$x, promedios_ciudad$y,
main = "Gráfica No 119 :Diagrama de Dispersión entre Costo de Gestión
y Residuos Generados en el 2023",
xlab = "Residuos generados (Tons/Día)",
ylab = "Costo de gestión (rupia/Ton)",
pch = 19, col = "blue")

subset_intervalo <- promedios_ciudad %>%
filter(x > 6200, x < 6800)
# Verificar subconjunto
head(subset_intervalo)
## # A tibble: 6 × 3
## `City/District` x y
## <chr> <dbl> <dbl>
## 1 Ahmedabad 6563. 2786.
## 2 Coimbatore 6716. 3440.
## 3 Gwalior 6400. 2651.
## 4 Mumbai 6545. 2616.
## 5 Rajkot 6330. 1981.
## 6 Surat 6673. 3465.
# 1.Identificar las dos variables de manera lógica
promresiduos<-subset_intervalo$x
promcosto<-subset_intervalo$y
# 2.Definir la variable dependiente e independiente
x<-promresiduos
y<-promcosto
# 3.Diagrama de dispersión o pares de puntos
plot(x, y,
main = "Gráfica No.120: Dispersión de pares de puntos en el Intervalo
Definido entre del Costo de Gestión y Residuos Generados ",
xlab = "Residuos generados (Tons/Día)",
ylab = "Costo de gestión (rupia/Ton)",
pch = 19, col = "blue")

# 4. Conjetura
#Linea recta
# 5.Sobreponer la curva y cálculo de los parámetros
regresionlineal <- lm(y ~ x, data = subset_intervalo)
regresionlineal
##
## Call:
## lm(formula = y ~ x, data = subset_intervalo)
##
## Coefficients:
## (Intercept) x
## -20476.397 3.561
# y=-20476.397 +3.561x
summary(regresionlineal)
##
## Call:
## lm(formula = y ~ x, data = subset_intervalo)
##
## Residuals:
## 1 2 3 4 5 6 7
## -112.426 -1.177 335.724 -217.010 -84.781 177.361 -97.691
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -2.048e+04 3.938e+03 -5.200 0.00347 **
## x 3.561e+00 6.035e-01 5.901 0.00199 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 210.1 on 5 degrees of freedom
## Multiple R-squared: 0.8744, Adjusted R-squared: 0.8493
## F-statistic: 34.82 on 1 and 5 DF, p-value: 0.001988
plot(x, y,
main = "Gráfica No.121 :Modelo y Realidad en el Intervalo Definido
entre Costo de Gestión y Residuos Generados ",
xlab = "Residuos generados (Tons/Día)",
ylab = "Costo de gestión (rupia/Ton)",
pch = 19, col = "blue", ylim =c(1500,4000), xlim =c(6000,7000))
abline(regresionlineal, col = "red", lwd = 2)

# 6. Realizar el Test de bondad
#TEST
r<-cor(x,y)
r
## [1] 0.9351169
#Coeficiente de determinación
r2<-(r^2)*100
r2
## [1] 87.44437
# 7.Predicción
#¿Cuál será el costo de gestión de residuos (en rupias por tonelada) si una ciudad
#genera en promedio 6500 toneladas de residuos al día en 2023?
x6500 <- 6500
prediccion <- -20476.397 + 3.561 * 6500
prediccion
## [1] 2670.103
# Conclusiones
# En el intervalo entre el costo de gestión y los residuos generados del Estudio
# de residuos de la India existe una relacion de tipo lineal representado por:
# y=-20476.397 +3.561x
#Siendo x los residuos generados en (ton/dia) & y el costo
# de gestión en (rupias/ton),dentro del intervalo seleccionado no existen
#restricciones
# Además el costo de gestión esta influenciado en un 87.44 % por los residuos generados
#mientras que el 12.56 % se debe a otros factores.