#------------------ UNIVERSIDAD CENTRAL DEL ECUADOR
##-----Faculta 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 Descriptiva
# Integrantes: Jazmin Guañuna, Nayely Perugachi, Helen Taipe, Gabriela Usiña
# Fecha: 26/5/2025
#------ Procedimiento Manual
setwd("/cloud/project")
datos <- read.csv("DATOS.csv", header = T, sep = ";", dec = ".")
str(datos)
## 'data.frame': 850 obs. of 14 variables:
## $ City.District : chr "Mumbai" "Mumbai" "Mumbai" "Mumbai" ...
## $ Waste.Type : chr "Plastic" "Organic" "E-Waste" "Construction" ...
## $ Waste.Generated..Tons.Day. : int 6610 1181 8162 8929 5032 7456 7118 9189 8609 6632 ...
## $ Recycling.Rate.... : int 68 56 53 56 44 73 37 57 48 71 ...
## $ Population.Density..People.km.. : int 11191 11191 11191 11191 11191 11191 11191 11191 11191 11191 ...
## $ Municipal.Efficiency.Score..1.10.: int 9 5 8 5 7 9 6 10 8 6 ...
## $ Disposal.Method : chr "Composting" "Composting" "Incineration" "Landfill" ...
## $ Cost.of.Waste.Management....Ton. : int 3056 2778 3390 1498 2221 3195 3686 1791 1681 2311 ...
## $ Awareness.Campaigns.Count : int 14 12 13 14 16 6 14 12 20 12 ...
## $ Landfill.Name : chr "Mumbai Landfill" "Mumbai Landfill" "Mumbai Landfill" "Mumbai Landfill" ...
## $ Landfill.Location..Lat. : chr "19.1244" "19.1245" "19.1246" "19.1247" ...
## $ Landfill.Location..Long. : chr "" "" "" "" ...
## $ Landfill.Capacity..Tons. : int 45575 45575 45575 45575 45575 45575 45575 45575 45575 45575 ...
## $ Year : int 2019 2019 2019 2019 2019 2020 2020 2020 2020 2020 ...
#Extraer la variable cuantitativa continua
residuos_generados <- datos$Waste.Generated..Tons.Day.
residuos_generados <- na.omit(residuos_generados)
# Determinar intevalos y amplitud
min <- min(residuos_generados)
max <- max(residuos_generados)
R <- max-min
k <- 1+(3.3*log10(length(residuos_generados)))
k <- floor(k)
A <- R/k
liminf <- seq(from=min, to=max-A, by=A)
limsup <- seq(from=min+A, to=max, by=A)
# Crear intervalos
n <- c()
i <- c(1:k)
for (i in 1:k) {
if (i==10)
n[i] <- length(subset(residuos_generados,residuos_generados>=liminf[i] &
residuos_generados<=limsup[i]))
else
n[i] <- length(subset(residuos_generados,residuos_generados>=liminf[i]&
residuos_generados<limsup[i]))
}
MC <- (limsup+liminf)/2
MC
## [1] 984.45 1931.35 2878.25 3825.15 4772.05 5718.95 6665.85 7612.75 8559.65
## [10] 9506.55
ni <- n
sum(ni)
## [1] 850
hi <- ni/sum(ni)*100
hi
## [1] 10.352941 10.117647 9.058824 10.941176 9.294118 10.000000 8.823529
## [8] 9.764706 10.235294 11.411765
Niasc <- cumsum(ni)
Niasc
## [1] 88 174 251 344 423 508 583 666 753 850
Hiasc <- cumsum(hi)
Hiasc
## [1] 10.35294 20.47059 29.52941 40.47059 49.76471 59.76471 68.58824
## [8] 78.35294 88.58824 100.00000
Nidsc <- rev(cumsum(rev(ni)))
Nidsc
## [1] 850 762 676 599 506 427 342 267 184 97
Hidsc <- rev(cumsum(rev(hi)))
Hidsc
## [1] 100.00000 89.64706 79.52941 70.47059 59.52941 50.23529 40.23529
## [8] 31.41176 21.64706 11.41176
TablaResiduos_generados <- data.frame(liminf,limsup,MC,n,round(hi,2),Niasc,
round(Hiasc,2),Nidsc,round(Hidsc,2))
colnames(TablaResiduos_generados) <- c("Liminf","Limsup","MC","ni","hi (%)",
"Niasc","Hiasc (%)","Nidsc","Hidsc (%)")
# Crear totales
totales <- c(Liminf="-",
Limsup="-",
MC="-",
ni=sum(ni),
hi=sum(hi),
Niasc="-",
Hiasc="-",
Nidsc="-",
Hidsc="-")
TablaResiduos_generadostotal <- rbind(TablaResiduos_generados,totales)
TablaResiduos_generadostotal
## Liminf Limsup MC ni hi (%) Niasc Hiasc (%) Nidsc Hidsc (%)
## 1 511 1457.9 984.45 88 10.35 88 10.35 850 100
## 2 1457.9 2404.8 1931.35 86 10.12 174 20.47 762 89.65
## 3 2404.8 3351.7 2878.25 77 9.06 251 29.53 676 79.53
## 4 3351.7 4298.6 3825.15 93 10.94 344 40.47 599 70.47
## 5 4298.6 5245.5 4772.05 79 9.29 423 49.76 506 59.53
## 6 5245.5 6192.4 5718.95 85 10 508 59.76 427 50.24
## 7 6192.4 7139.3 6665.85 75 8.82 583 68.59 342 40.24
## 8 7139.3 8086.2 7612.75 83 9.76 666 78.35 267 31.41
## 9 8086.2 9033.1 8559.65 87 10.24 753 88.59 184 21.65
## 10 9033.1 9980 9506.55 97 11.41 850 100 97 11.41
## 11 - - - 850 100 - - - -
# Gráfica de Distribución de Frecuencia
Histo_residuos <- hist(residuos_generados,
breaks=seq(min(residuos_generados),
max(residuos_generados),A),
main = "Gráfica No. 41:
Distribución de la Cantidad de Residuos Generados
en el Estudio de Residuos en la India",
ylab = "Cantidad",
xlab = "Residuos generados (Ton/Día)",
col = "blue4")

Histogramaresiduos <- hist(residuos_generados, main = "Gráfica No. 42:
Distribución de la Cantidad de Residuos Generados
en el Estudio de Residuos en la India",
col = "blue4",
ylab = "Cantidad", xlab = "Residuos generados")

# Crear tabla
limites <- Histogramaresiduos$breaks
liminf <- limites[1:10]
limsup <- limites[2:11]
MC <- Histogramaresiduos$mids
ni <- Histogramaresiduos$counts
ni
## [1] 58 83 85 85 94 85 80 87 94 99
hi <- ni/sum(ni)*100
hi
## [1] 6.823529 9.764706 10.000000 10.000000 11.058824 10.000000 9.411765
## [8] 10.235294 11.058824 11.647059
Niasc <- cumsum(ni)
Niasc
## [1] 58 141 226 311 405 490 570 657 751 850
Hiasc <- cumsum(hi)
Hiasc
## [1] 6.823529 16.588235 26.588235 36.588235 47.647059 57.647059
## [7] 67.058824 77.294118 88.352941 100.000000
Nidsc <- rev(cumsum(rev(ni)))
Nidsc
## [1] 850 792 709 624 539 445 360 280 193 99
Hidsc <- rev(cumsum(rev(hi)))
Hidsc
## [1] 100.00000 93.17647 83.41176 73.41176 63.41176 52.35294 42.35294
## [8] 32.94118 22.70588 11.64706
TDFResiduos_generados <- data.frame(liminf,limsup,MC,ni,round(hi,2),Niasc,
round(Hiasc,2),Nidsc,round(Hidsc,2))
colnames(TDFResiduos_generados) <- c("Liminf","Limsup","MC","ni","hi (%)",
"Niasc","Hiasc (%)","Nidsc","Hidsc (%)")
# Crear totales
totales <- c(
liminf="-",
limsup="-",
MC="-",
ni=sum(ni),
hi=sum(hi),
Niasc="-",
Hiasc="-",
Nidsc="-",
Hidsc="-")
TDFResiduos_generadosTotal <- rbind(TDFResiduos_generados,totales)
TDFResiduos_generadosTotal
## Liminf Limsup MC ni hi (%) Niasc Hiasc (%) Nidsc Hidsc (%)
## 1 0 1000 500 58 6.82 58 6.82 850 100
## 2 1000 2000 1500 83 9.76 141 16.59 792 93.18
## 3 2000 3000 2500 85 10 226 26.59 709 83.41
## 4 3000 4000 3500 85 10 311 36.59 624 73.41
## 5 4000 5000 4500 94 11.06 405 47.65 539 63.41
## 6 5000 6000 5500 85 10 490 57.65 445 52.35
## 7 6000 7000 6500 80 9.41 570 67.06 360 42.35
## 8 7000 8000 7500 87 10.24 657 77.29 280 32.94
## 9 8000 9000 8500 94 11.06 751 88.35 193 22.71
## 10 9000 10000 9500 99 11.65 850 100 99 11.65
## 11 - - - 850 100 - - - -
# Gráficas de Distribución de Frecuencia
# GDF ni local
Histograma_residuos <- hist(residuos_generados,
breaks = Histogramaresiduos$breaks,
main = "Gráfica No. 43:
Distribución de Cantidad de Residuos Generados
en el Estudio de Residuos en la India",
ylab = "Cantidad",
xlab = "Residuos generados (ton/día)",
col = "blue3")

# GDF ni global
Histograma_residuos <- hist(residuos_generados,
breaks = Histogramaresiduos$breaks,
main = "Gráfica No. 44:
Distribución Global de Cantidad de Residuos
Generados en el Estudio de Residuos en la India",
ylab = "Cantidad",
xlab = "Residuos generados (ton/día)",
col = "purple3",
ylim = c(0,length(residuos_generados)))

# GDF hi local
barplot(TDFResiduos_generados$`hi (%)`,space = 0,
main = "Gráfica No. 45:
Distribución del Porcentaje de Residuos Generados
en el Estudio de Residuos en la India",
ylab = "Porcentaje (%)",
xlab = "Residuos generados (ton/día)",
names.arg = TDFResiduos_generados$MC,
col = "blue3")

# GDF hi global
barplot(TDFResiduos_generados$`hi (%)`,space = 0,
main = "Gráfica No. 46:
Distribución Global del Porcentaje de Residuos Generados
en el Estudio de Residuos en la India",
ylab = "Porcentaje (%)",
xlab = "Residuos generados (ton/día)",
ylim = c(0,100),
names.arg = TDFResiduos_generados$MC,
col = "purple3")

# Diagrama de caja
boxplot(residuos_generados, main = "Gráfica No. 47:
Distribución de la Cantidad de Residuos Generados
en el Estudio de Residuos en la India",
xlab = "Residuos generados (Ton/Día)", horizontal = T,
col = "orange2" )

# Ojivas
plot(limsup, Niasc, type = "o", col = "blue", pch = 16,
main = "Gráfico No. 48:
Ojivas Ascendente y Descendente de la Cantidad de Residuos
Generados en el Estudio de Residuos en la India",
xlab = "Residuos generados (Ton/Día)",
ylab = "Cantidad")
lines(liminf, Nidsc,type = "o",col = "red3", pch = 16)

plot(limsup, Hiasc, type = "o", col = "blue", pch = 16,
main = "Gráfico No. 49:
Ojivas Ascendente y Descendente del Porcentaje de Residuos
Generados en el Estudio de Residuos en la India",
xlab = "Residuos generados (Ton/Día)",
ylab = "Porcentaje (%)")
lines(liminf, Hidsc,type = "o",col = "red3", pch = 16)

#-----------INDICADORES
#--- Indicadores de Tendencia Central
# Mediana
Me <- median(residuos_generados)
Me
## [1] 5283
# Media
X <- mean(residuos_generados)
X
## [1] 5262.249
# Moda
Mo <- "[9000,10000]"
Mo
## [1] "[9000,10000]"
#--- Indicadores de Dispersión
# Varianza
var(residuos_generados)
## [1] 7767284
# Desviación estandar
sd <- sd(residuos_generados)
sd
## [1] 2786.985
# Coeficiente de variación
CV <- (sd(residuos_generados)/X)*100
CV
## [1] 52.96185
#--- Indicadores de Forma
# Coeficiente de Asimetría
install.packages("e1071")
## Installing package into '/cloud/lib/x86_64-pc-linux-gnu-library/4.4'
## (as 'lib' is unspecified)
library(e1071)
As <- skewness(residuos_generados)
As
## [1] -0.02373252
# Curtosis
K <- kurtosis(residuos_generados)
K
## [1] -1.22953
Variable <- "Residuos generados"
Rango <- "[511, 9980]"
Tabla_indicadores <- data.frame(Variable,Rango,round(X,3),Me,Mo,round(sd,2),round(CV,2),round(As,2),round(K,2))
colnames(Tabla_indicadores) <- c("Variable","Rango","X", "Me", "Mo","sd","CV","As","K")
Tabla_indicadores
## Variable Rango X Me Mo sd CV As
## 1 Residuos generados [511, 9980] 5262.249 5283 [9000,10000] 2786.98 52.96 -0.02
## K
## 1 -1.23