#------------------ 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: Estadística Inferencial
# Fecha: 20/07/2025

# ====================== CARGA DE DATOS ======================
library(readr)


datos <- read.csv2("/cloud/project/COORDENADAS.csv", stringsAsFactors=FALSE)
datos$Longitud <- gsub("\\.", "", datos$Longitud)
datos$Longitud <- gsub(",", ".", datos$Longitud)
datos$Longitud <- as.numeric(datos$Longitud)
datos <- datos[!is.na(datos$Longitud), ]

datos$Area_ha <- datos$Longitud / 10000

mediana_area <- median(datos$Area_ha, na.rm = TRUE)

datos <- datos[datos$Area_ha >= 7000, ]

datos$Area_ha_tratada <- ifelse(
  (datos$Area_ha < 70000 & datos$Area_ha > 7000) | datos$Area_ha > 90000,
  mediana_area,
  datos$Area_ha
)

valores <- datos[datos$Area_ha_tratada > 75650, "Area_ha_tratada"]

ancho <- 2000
breaks <- seq(floor(min(valores)), ceiling(max(valores)) + ancho, by = ancho)

clases <- cut(valores, breaks = breaks, right = FALSE)
tabla_frec <- table(clases)

barplot_heights <- as.numeric(tabla_frec)
bar_names <- names(tabla_frec)

barplot(barplot_heights, names.arg = bar_names, col = "skyblue", las = 2,
        main = "Frecuencia de Área agrupada",
        xlab = "Intervalos de Área (ha)",
        ylab = "Frecuencia")

media <- mean(valores)
desv <- sd(valores)

x_seq <- seq(min(valores), max(valores), length.out = 100)
dens_norm <- dnorm(x_seq, mean = media, sd = desv)

total <- length(valores)
dens_norm_esc <- dens_norm * total * ancho
pos_barras <- (x_seq - min(valores)) / ancho + 0.5
lines(pos_barras, dens_norm_esc, col = "red", lwd = 2)

observados <- hist(valores, breaks = breaks, plot = FALSE)$counts
lambda_est <- 1 / mean(valores)

probs_esperadas <- pexp(breaks[-1], rate = lambda_est) - pexp(breaks[-length(breaks)], rate = lambda_est)

esperados <- probs_esperadas * total

resultado_chisq <- chisq.test(x = observados, p = probs_esperadas, rescale.p = TRUE)
## Warning in chisq.test(x = observados, p = probs_esperadas, rescale.p = TRUE):
## Chi-squared approximation may be incorrect
print(resultado_chisq)
## 
##  Chi-squared test for given probabilities
## 
## data:  observados
## X-squared = 37.447, df = 4, p-value = 1.457e-07