#------------------ 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
datos <- read.csv2("Waste_Management_and_Recycling_India.csv xd.csv",
sep = ";",
dec = ",",
stringsAsFactors = FALSE)
# Identificar x,y ----------
y <- datos$Recycling.Rate....
x <- datos$Population.Density..People.km..
# Tabla pares de valores ---------
tabla <- data.frame(x,y)
length(x); length(y)
## [1] 850
## [1] 850
# Depuración -------------
#1) Filtrar filas eliminando aquellas con NA, 0 en cualquiera de las columnas
tabla_limpia <- tabla[!apply(tabla, 1, function(fila) {
any(is.na(fila) | fila == 0 | fila == "" | fila == "-Inf")
}), ]
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
#2) Identificar filas únicas por 'x' dejando la de menor 'y'
tabla_filtrada <- tabla_limpia %>%
group_by(x) %>%
filter(y == min(y)) %>%
ungroup()
#3) Renumerar las filas de la tabla filtrada
tabla_dep <- tabla_filtrada %>%
mutate(row_number = row_number()) %>%
select(-row_number)
# Conjetura de modelo matemático: Modelo Logarítmico --------------
x1 <- log(as.numeric(tabla_dep$x))
x1 <- log(tabla_dep$x)
RegresionLogaritmica <- lm(tabla_dep$y ~ x1)
RegresionLogaritmica
##
## Call:
## lm(formula = tabla_dep$y ~ x1)
##
## Coefficients:
## (Intercept) x1
## 26.928 0.507
# Cálculo de parámetros de regresión logarítmica --------------
a <- RegresionLogaritmica$coefficients[1]; a
## (Intercept)
## 26.92774
b <- RegresionLogaritmica$coefficients[2]; b
## x1
## 0.5070359
# Ecuación logarítmica ------ y = 26,92 - 0,50*ln(x)
# Gráfica de la regresión -----------
plot(tabla_dep$x, tabla_dep$y,
col = 4,
pch = 16, # Tipo de punto
main = "Gráfica N.: Regresión Logarítmica",
xlab = "O3 (ppb)",
ylab = "NO (ppb)")
# Curva de regresión logarítmica
curve(a + b * log(x),
from = min(tabla_dep$x),
to = max(tabla_dep$x),
add = TRUE,
col = "red",
lwd = 2)

cor(log(tabla_dep$x), tabla_dep$y)
## [1] 0.1605694
# Test de Pearson
r <- cor(log(tabla_dep$x), tabla_dep$y)
print(paste("Correlación de Pearson (log):", round(r, 4)))
## [1] "Correlación de Pearson (log): 0.1606"
# Coeficiente de Determinación
r2 <- (r^2) * 100
print(paste("Coeficiente de determinación:", round(r2, 2), "%"))
## [1] "Coeficiente de determinación: 2.58 %"
x <- tabla_dep$x
y <- tabla_dep$y
# Dominio de x para logaritmo (x debe ser > 0)
restriccion_x <- range(x[x > 0])
cat("Restricción: el modelo logarítmico es válido para x ∈ [", restriccion_x[1], ",", restriccion_x[2], "]\n")
## Restricción: el modelo logarítmico es válido para x ∈ [ 2335 , 24032 ]
# Validar si hay valores inválidos (<= 0)
any(x <= 0) # Debe ser FALSE para modelo log
## [1] FALSE
# Para y: se recomienda también verificar rango
range(y)
## [1] 30 37
# Parámetros del modelo logarítmico
a <- 26.92
b <- -0.50
# Estimar y para x = 10000
x_estimado <- 10000
y_estimado <- a + b * log(x_estimado)
# Crear gráfico vacío y añadir texto explicativo
plot(1, type = "n", axes = FALSE, xlab = "", ylab = "") # Gráfico en blanco
text(x = 1, y = 1,
labels = paste("Qué tasa de reciclaje (%) se espera",
"\ncuando la densidad poblacional sea de 10,000 hab/km²",
"\n\nR =", round(y_estimado, 3), "%"),
cex = 2.2, # Tamaño del texto
col = "blue", # Color azul
font = 6) # Fuente negrita

# Definir parámetros del modelo logarítmico
a <- 26.92
b <- -0.50
# Valor de entrada para la estimación
x0 <- 10000
# Estimación puntual
y0 <- a + b * log(x0) # <<<<<< AQUÍ estaba el problema: debes definir esto antes de usarlo
# Coeficientes de correlación y determinación
r <- cor(log(tabla_dep$x), tabla_dep$y)
r2 <- (r^2) * 100
# Crear tabla resumen
Tabla_resumen <- data.frame(
Variables = "Densidad poblacional vs Tasa de reciclaje",
Modelo = "y = 26,92 - 0,50 * ln(x)",
Restricciones = "x > 0; x ∈ [129, 24791]",
Coef_Pearson = paste0("r = ", round(r, 4)),
Coef_Determinacion = paste0("R² = ", round(r2, 2), "%"),
Estimacion = paste0("y ≈ ", round(y0, 2), "% cuando x = ", x0)
)
# Mostrar la tabla (opcional)
print(Tabla_resumen)
## Variables Modelo
## 1 Densidad poblacional vs Tasa de reciclaje y = 26,92 - 0,50 * ln(x)
## Restricciones Coef_Pearson Coef_Determinacion
## 1 x > 0; x ∈ [129, 24791] r = 0.1606 R² = 2.58%
## Estimacion
## 1 y ≈ 22.31% cuando x = 10000