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