#------------------ 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 Inferencial
# Integrantes: Jazmin Guañuna, Nayely Perugachi, Helen Taipe, Gabriela Usiña
# Fecha: 15/07/2025

#VARIABLE CUANTITATIVA CONTINUA:LATITUD 

#Extraemos los datos
library(readr)
Latitud_INDIA1 <- read_delim("Latitud INDIA1.csv", 
                             delim = ";", escape_double = FALSE, trim_ws = TRUE)
## Rows: 850 Columns: 3
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ";"
## chr (1): NOMBRE
## 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<-Latitud_INDIA1
#Extraemos la variable continua
latitud<-datos$LATITUD


histograma<-hist(latitud,freq=FALSE,
     main = "Gráfica No.108 :Distribución de Probabilidad de 
     Latitud de Vertederos en la India ",
     xlab = "Latitud (°)",
     ylab = "Densidad de probabilidad",
     col = "orange3")

limites<-histograma$breaks
limites
##  [1]  8 10 12 14 16 18 20 22 24 26 28 30 32
#Agrupamos 
lat1<-latitud[latitud >= 8 & latitud <= 16]

Histolat1 <- hist(lat1,
                   breaks = seq(min(lat1), max(lat1), length.out = 5),
                   freq = F, 
                   main = "Gráfica No.109 :Distribución de Probabilidad de Latitud de Vertederos
            en el intervalo de 8 a 16 grados decimales", 
                   xlab = "Latitud (°)",
                   ylab = "Densidad de probabilidad",
                   col = "skyblue3")

#Cojetura del modelo
#Uniforme

a <- min(lat1)
b <- max(lat1)  

x <- seq(a, b, 0.01)
y <- dunif(x, min=a, max=b)
lines(x, y, col="red", lwd=2)

#Tests

FO <- Histolat1$counts
FO
## [1] 25 25 25 50
P <- c()
FE <- c()

for (i in 1:4) {
  P[i] <- punif(Histolat1$breaks[i+1],a, b)-
    punif(Histolat1$breaks[i], a, b)
  FE[i] <- P[i]*length(lat1)
}

FE
## [1] 31.25 31.25 31.25 31.25
correlacion<-cor(FO, FE)*100
correlacion
## [1] 39.6059
###CHI-CUADRADO###

x2<-sum((FE-FO)^2/FE)
x2
## [1] 15
#Valor crítico
grados_libertad1 <- length(lat1)-1
grados_libertad1
## [1] 124
vc<-qchisq(0.95,grados_libertad1)
vc
## [1] 150.9894
x2<vc
## [1] TRUE
#Cálculo de probabilidades

"¿Cuál es la probailidad de que un vertedero de la India se encuentre ubicado 
entre 9° y 12° de latitud? "
## [1] "¿Cuál es la probailidad de que un vertedero de la India se encuentre ubicado \nentre 9° y 12° de latitud? "
pvertedero9y12<- punif(12,a,b)-punif(9,a,b)
pvertedero9y12
## [1] 0.6537895
#La probabilidad es de 65.37%


##################################################
# Segundo subconjunto: latitudes mayores a 16 
lat2 <- latitud[latitud > 16]

#Gráfica 
Histolat2 <- hist(lat2,
                   breaks = seq(min(lat2), max(lat2), length.out = 5),
                   freq = F, 
                   main = "Gráfica No.110 :Distribución de Probabilidad de Latitud de Vertederos
            en el intervalo de 16 a 32 grados decimales ", 
                   xlab = "Latitud (°)",
                   ylab = "Densidad de probabilidad",
                   col = "skyblue4",
                   ylim=c(0,0.12))

#Conjetura del modelo normal:Cálculo de parámetros

u<-mean(lat2) #media aritmética
sigma<-sd(lat2) #desviación estandar

#Sobreponemos la curva normal
x<-seq(min(lat2),max(lat2),0.01)
Histolat2 <- hist(lat2,
                  breaks = seq(min(lat2), max(lat2), length.out = 5),
                  freq = F, 
                  main = "Gráfica No.111 :Comparación de la Realidad y el Modelo de la Latitud
          del Estudio de Residuos de la India", 
                  xlab = "Latitud (°)",
                  ylab = "Densidad de probabilidad",
                  col = "skyblue4",
                  ylim=c(0,0.12))
curve(dnorm(x,u,sigma),type="l",add=TRUE,lwd=4,col="red")

#Tests
####PEARSON####
#Frecuencia observada
FO<-Histolat2$counts
FO
## [1] 125 250 250 100
h<-length(Histolat2$counts)
P<-c(0)
for (i in 1:h) {
  P[i] <-(pnorm(Histolat2$breaks[i+1],u,sigma)-
            pnorm(Histolat2$breaks[i],u,sigma))}

#Frecuencia esperada
FE<-P*length(lat2)
plot(FO,FE,main="Gráfica No.112:Correlación entre la frecuencia observada y la 
     frecuencia esperada en el Modelo Normal ",
                 xlab="Frecuencia Observada(FO)",
                 ylab="Frecuencia Esperada(FE)",col="blue3")
abline(lm(FE ~ FO), col="red",lwd=2)

Correlación<-cor(FO,FE)*100
Correlación
## [1] 99.4895
###CHI-CUADRADO###
#Frecuencia Observada porcentual
FO<-(Histolat2$counts/length(latitud))*100
FO
## [1] 14.70588 29.41176 29.41176 11.76471
#Frecuencia esperada
FE<-P*100
FE
## [1] 15.71734 34.85759 32.03907 12.19771
x2<-sum((FE-FO)^2/FE)
x2
## [1] 1.146714
#Valor crítico
grados_libertad <- length(lat2)-1
grados_libertad
## [1] 724
vc<-qchisq(0.95,grados_libertad) #valor de confianza=0.95
vc
## [1] 787.7072
x2<vc
## [1] TRUE
#Intervalos de confianza
x<-mean(latitud)
n<-length(latitud)
cs<-sd(latitud) #cuasidesviación

LiminfIC<-x-(2*(cs/sqrt(n)))
LiminfIC
## [1] 21.82908
LimsupIC<-x+(2*(cs/sqrt(n)))
LimsupIC
## [1] 22.61783
#P(21.82908<u<22.61783)=95%


#Cálculo de probabilidades
"¿Cuál es la probailidad de que un vertedero de la India se encuentre ubicado 
entre 20° y 26° de latitud? "
## [1] "¿Cuál es la probailidad de que un vertedero de la India se encuentre ubicado \nentre 20° y 26° de latitud? "
pvertedero20y26<-pnorm(26,u,sigma)-pnorm(20,u,sigma)
pvertedero20y26
## [1] 0.566728
#La probablidad es de 56,67%

u     <- mean(lat2, na.rm = TRUE)
sigma <- sd(lat2, na.rm = TRUE)
x     <- seq(min(lat2, na.rm = TRUE), max(lat2, na.rm = TRUE), length.out = 1000)
plot(x, dnorm(x, u, sigma), type = "l",
     col = "skyblue3", lwd = 2,
     xlim = c(18, 32),
     ylim = c(0, max(dnorm(x,u, sigma))),
     main = "Gráfica No.113 :Cálculo de probabilidad de la Latitud en el Estudio 
    de Residuos de la India",
     xlab = "Latitud (°)", ylab = "Densidad de probabilidad", xaxt = "n")
axis(1, at = seq(18, 32, by = 2), las = 2)


# Definir el rango de la sección que quieres pintar
x_section <- seq(20,26, 0.001)
y_section <- dnorm(x_section, u,sigma)

# Pintar la sección de la curva
lines(x_section, y_section, col = "red", lwd = 2)

# Pintar el área debajo de la línea roja
polygon(c(x_section, rev(x_section)), c(y_section, rep(0, length(y_section))),
        col = rgb(1, 0, 0, 0.6))


# Añadir leyenda
legend("topright",cex = 0.6, legend = c("Modelo", "Área de Probabilidad"),
       col = c("skyblue3",
       "red"), lwd = 1, pch = c(NA, 15))

#Conclusiones
tabla_modelos_1 <- data.frame("Latitud" = c("[16, 32]", ""),
                              "Modelo" = c("Normal", ""),
                              "Parametros" = c("u = 24.13 ", "sigma= 3.64")
                              ,"Test_de_Pearson (%)" = c("99.48", ""),
                              "Test_de_Chi_cuadrado" = c("Aprobado", ""))
colnames(tabla_modelos_1) <- c("Latitud", "Modelo",
                               "Parámetros","Test Pearson (%)",
                               "Test Chi-cuadrado")
tabla_modelos_1
##    Latitud Modelo  Parámetros Test Pearson (%) Test Chi-cuadrado
## 1 [16, 32] Normal  u = 24.13             99.48          Aprobado
## 2                 sigma= 3.64
library(knitr)
kable(tabla_modelos_1, align = 'c', caption = "Tabla 1.Conclusiones del Modelo Normal para Latitud")
Tabla 1.Conclusiones del Modelo Normal para Latitud
Latitud Modelo Parámetros Test Pearson (%) Test Chi-cuadrado
[16, 32] Normal u = 24.13 99.48 Aprobado
sigma= 3.64
tabla_confianza <- data.frame("Intervalo_confianza" = c("Limite Inferior", "Limite Superior"),
                              "Grado_confianza" = c("95%",""),
                              "Latitud"=c("21.82","22.61"))
colnames(tabla_confianza) <- c("Intervalo de confianza", "Grado de confianza(%)",
                               "Latitud")
tabla_confianza
##   Intervalo de confianza Grado de confianza(%) Latitud
## 1        Limite Inferior                   95%   21.82
## 2        Limite Superior                         22.61
kable(tabla_confianza, align = 'c', caption = "Tabla 2.Intervalos de Confianza de la Media Poblacional")
Tabla 2.Intervalos de Confianza de la Media Poblacional
Intervalo de confianza Grado de confianza(%) Latitud
Limite Inferior 95% 21.82
Limite Superior 22.61