#------------------ 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: Estadistica Descriptiva
# Integrantes: Jazmin Guañuna, Nayely Perugachi, Helen Taipe, Gabriela Usiña
# Fecha: 26/5/2025

# VARIABLE CUANTITATIVA CONTINUA: LONGITUD

#Carga de datos

library(readr)
Longitud_INDIA1 <- read_delim("COORDENADAS.csv", 
                             delim = ";", escape_double = FALSE, trim_ws = TRUE)
## Rows: 39 Columns: 3
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ";"
## chr (1): Vertedero
## dbl (1): Longitud
## num (1): Latitud
## 
## ℹ 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.
datos<-Longitud_INDIA1
#Extraemos la variable continua
longitud<-datos$Longitud
# Quita los NA
longitud <- na.omit(longitud)

# Verifica que sea numérico
str(longitud)
##  num [1:34] 73 77.3 77.6 80.3 88.4 ...
##  - attr(*, "na.action")= 'omit' int [1:5] 35 36 37 38 39
# Procedimiento Sturges
min_long <- min(longitud)
max_long <- max(longitud)
R <- max_long - min_long
k <- floor(1 + (3.3 * log10(length(longitud))))
A <- R / k

# Límites
li <- seq(from = min_long, to = max_long - A, by = A)
ls <- seq(from = min_long + A, to = max_long, by = A)
li <- round(li, 2)
ls <- round(ls, 2)

MC <- (li + ls) / 2
MC <- (li + ls) / 2
MC <- round(MC, 2)  # Redondear a 2 decimales

I1 <- subset(longitud, longitud>=li[1] & longitud<ls[1])
length(I1)
## [1] 7
# Frecuencia absoluta
ni <- c()
for (i in 1:k) {
  if (i == k) {
    ni[i] <- length(subset(longitud, longitud >= li[i] & longitud <= ls[i]))
  } else {
    ni[i] <- length(subset(longitud, longitud >= li[i] & longitud < ls[i]))
  }
}


# Frecuencias Relativas y Acumuladas
n <- sum(ni)
hi <- (ni / n) * 100
sum(hi)
## [1] 100
Ni_asc <- cumsum(ni)
Ni_dsc <- rev(cumsum(rev(ni)))
Hi_asc <- cumsum(hi)
Hi_dsc <- rev(cumsum(rev(hi)))

# Tabla de frecuencias
TDF_longitud <- data.frame(li, ls, MC, ni, round(hi, 2),
                           Ni_asc, round(Hi_asc, 2),
                           Ni_dsc, round(Hi_dsc, 2))

colnames(TDF_longitud) <- c("Li", "Ls", "Mc", "ni", "hi (%)",
                            "Ni", "Hi (%)", "Nidsc", "Hidsc (%)")
TDF_longitud
##      Li    Ls    Mc ni hi (%) Ni Hi (%) Nidsc Hidsc (%)
## 1 70.80 74.28 72.54  7  21.21  7  21.21    33    100.00
## 2 74.28 77.76 76.02 10  30.30 17  51.52    26     78.79
## 3 77.76 81.24 79.50  9  27.27 26  78.79    16     48.48
## 4 81.24 84.72 82.98  3   9.09 29  87.88     7     21.21
## 5 84.72 88.20 86.46  2   6.06 31  93.94     4     12.12
## 6 88.20 91.68 89.94  2   6.06 33 100.00     2      6.06
# Crear Fila de Totales
totales <- c(
  li= "-",
  ls= "-",
  MC= "-",
  ni= sum(ni),
  hi= sum(hi),
  Ni_asc= "-",
  Ni_dsc= "-",
  Hi_asc= "-",
  Hi_dsc= "-") 
TDF_longitud_con_totales <- rbind(TDF_longitud,totales) 

#Mostrar tabla final
TDF_longitud_con_totales
##      Li    Ls    Mc ni hi (%) Ni Hi (%) Nidsc Hidsc (%)
## 1  70.8 74.28 72.54  7  21.21  7  21.21    33       100
## 2 74.28 77.76 76.02 10   30.3 17  51.52    26     78.79
## 3 77.76 81.24  79.5  9  27.27 26  78.79    16     48.48
## 4 81.24 84.72 82.98  3   9.09 29  87.88     7     21.21
## 5 84.72  88.2 86.46  2   6.06 31  93.94     4     12.12
## 6  88.2 91.68 89.94  2   6.06 33    100     2      6.06
## 7     -     -     - 33    100  -      -     -         -
#Histograma
Hitograma <- hist(longitud,
                  breaks = seq(min(longitud), max(longitud), A),
                  main = "Gráfica No.86: 
     Distribución de la Cantidad de  Longitud 
     en el Estudio de Residuos de la India",
                  xlab = "Longitud (°)",
                  ylab = "Cantidad",
                  col = "blue3")

## Procedimiento con R
Histograma_longitud <- hist(longitud, 
                            main = "Gráfica No. 87: 
        Distribución de Cantidad de Longitud
        en el Estudio de Residuos de la India",
                            xlab = "Longitud (°)", 
                            ylab = "Cantidad", 
                            col = "purple3")

# Limites del histograma
limites <- Histograma_longitud$breaks
liminf <- limites[-length(limites)]
limsup <- limites[-1]
MC <- Histograma_longitud$mids
ni <- Histograma_longitud$counts

# Confirmar que todos los vectores tengan la misma longitud
stopifnot(length(liminf) == length(limsup), 
          length(MC) == length(ni))

# Total de datos
n <- sum(ni)

# Frecuencia relativa 
hi <- (ni / n) * 100

# Frecuencias acumuladas
Niasc <- cumsum(ni)
Nidsc <- rev(cumsum(rev(ni)))
Hiasc <- cumsum(hi)
Hidsc <- rev(cumsum(rev(hi)))

# Redondear 
hi_r <- round(hi, 2)
Hiasc_r <- round(Hiasc, 2)
Hidsc_r <- round(Hidsc, 2)

# Tabla de frecuencias
Tabla_Longitud <- data.frame(
  liminf = liminf,
  limsup = limsup,
  MC = MC,
  ni = ni,
  `hi (%)` = hi_r,
  Ni = Niasc,
  Nidsc = Nidsc,
  `Hi (%)` = Hiasc_r,
  `Hidsc (%)` = Hidsc_r
)

# Fila de totales 
totales <- data.frame(
  liminf = "-",
  limsup = "-",
  MC = "-",
  ni = sum(ni),
  `hi (%)` = round(sum(hi), 2),  
  Ni = "-",
  Nidsc = "-",
  `Hi (%)` = "-",
  `Hidsc (%)` = "-"
)

# Combinar tabla + totales
TDF.totales <- rbind(Tabla_Longitud, totales)

# Mostrar tabla
TDF.totales
##   liminf limsup   MC ni hi.... Ni Nidsc Hi.... Hidsc....
## 1     70     75 72.5  9  26.47  9    34  26.47       100
## 2     75     80 77.5 15  44.12 24    25  70.59     73.53
## 3     80     85 82.5  6  17.65 30    10  88.24     29.41
## 4     85     90 87.5  3   8.82 33     4  97.06     11.76
## 5     90     95 92.5  1   2.94 34     1    100      2.94
## 6      -      -    - 34 100.00  -     -      -         -
# Histograma R ni Local
Histograma<- hist(longitud,
                  breaks=limites,
                  main = "Gráfica No. 88:
          Distribución de la Cantidad de Longitud 
          en el Estudio de Residuos de la India",
                  ylab = "Cantidad",
                  xlab = "Longitud (°)",
                  col = "blue3")

# Histograma R ni Global
Histograma<- hist(longitud,
                  breaks=limites,
                  main = "Gráfica No. 89: 
          Distribución de la Cantidad de Longitud 
          en el Estudio de Residuos de la India",
                  ylab = "Cantidad",
                  xlab = "Longitud (°)",
                  col = "purple3", ylim = c(0,length(longitud)))

# Histograma R hi Local
barplot(hi,space = 0, ylab = "Porcentaje (%)", xlab = "Longitud (°)",
        names.arg = Tabla_Longitud$MC, 
        main = "Gráfica No. 90: 
          Distribución de la Cantidad de Longitud 
          en el Estudio de Residuos de la India",
        col = "blue3") 

# Histograma R hi Global
barplot(hi,space = 0, ylab = "Porcentaje (%)",xlab = "Longitud (°)",
        names.arg = Tabla_Longitud$MC,
        main = "Gráfica No. 91: 
          Distribución de la Cantidad de Longitud 
          en el Estudio de Residuos de la India", 
        ylim=c(0,100),
        col = "purple3") 

# DIAGRAMA DE CAJA
boxplot(longitud, horizontal=T, 
        col="green3",
        main="Gráfica No. 92:
        Diagrama de Caja de la Cantidad de Longitud 
        en el Estudio de Residuos de la India",
        xlab= "Longitud (°)")

# OJIVAS Ni
plot(limsup,Niasc,col="blue",
     main="Gráfica No. 93:
        Ojivas Ascendente y Descendente de la Cantidad de Longitud 
        en el Estudio de Residuos de la India",
     ylab = "Cantidad", 
     xlab="Longitud (°)", 
     type="o",  pch=16, 
     xlim = c(70,95))

lines(liminf,Nidsc,col="red",type="o", pch=16)

# OJIVAS Hi
plot(limsup,Hiasc,col="blue",
     main="Gráfica No. 93:
        Ojivas Ascendente y Descendente del Porcentaje de Longitud 
        en el Estudio de Residuos de la India",
     ylab = "Porcentaje (%)", 
     xlab="Longitud (°)", 
     type="o", pch=16,
     ylim = c(0,100),
     xlim = c(70,95))

lines(liminf,Hidsc,col="red",type="o", pch=16)

# Indicadores Estadísticos 

#Tendencia Central

# Media Aritmética
X <- mean(longitud)
X
## [1] 78.28674
# Mediana
Me <- median(longitud)
Me
## [1] 77.70049
#Moda
Mo <- "[75,80]"
Mo
## [1] "[75,80]"
# Dispersión 

# Varianza
Varianza <- var(longitud)
Varianza
## [1] 22.14808
# Desviación estándar
Sd <- sd(longitud)
Sd
## [1] 4.706174
# Coeficiente de variación
CV <- (sd(longitud)/X)*100
CV
## [1] 6.011458
# INDICADORES DE FORMA
install.packages("e1071")  
## Installing package into '/cloud/lib/x86_64-pc-linux-gnu-library/4.4'
## (as 'lib' is unspecified)
library(e1071)

# Coeficiente de Asimetría
As <- skewness(longitud)
As
## [1] 0.8350638
# Curtosis
K <- kurtosis(longitud)
K
## [1] 0.4228312
# Tabla de Indicadores
Variable <- "Longitud"
Rango <- "[68.74325,95.8263 ]"


Tabla_indicadores <- data.frame(Variable,Rango,round(X,3),Me,Mo,round(Sd,3),round(CV,3),round(As,3),round(K,3))
colnames(Tabla_indicadores) <- c("Variable","Rango","X", "Me", "Mo","Sd","CV","As","K")
Tabla_indicadores
##   Variable               Rango      X       Me      Mo    Sd    CV    As     K
## 1 Longitud [68.74325,95.8263 ] 78.287 77.70049 [75,80] 4.706 6.011 0.835 0.423