#==============================ENCABEZADO===================================
# TEMA: EI Variables Continua - ENERGIA DEL GAS 
# AUTOR: GRUPO 4
# FECHA: 08-02-2026


# --- PASO 0: CARGA Y CONFIGURACION ---
setwd("C:/Users/HP/Documents/PROYECTO ESTADISTICA/RStudio")
datos <- read.csv("tablap.csv", header = TRUE, dec = ".", sep = ";") 

# --- PASO 0.1: LIMPIEZA DE DATOS ---
ene_raw <- as.numeric(gsub("[^0-9.]", "", as.character(datos$Energy.of.gas)))
ene_raw <- na.omit(ene_raw)

# --- PASO 1: JUSTIFICACION ---
cat("1. JUSTIFICACION: Variable continua. Dominio: [0, +inf).\n")
## 1. JUSTIFICACION: Variable continua. Dominio: [0, +inf).
# --- PASO 2: GRAFICA NRO. 1 (EVIDENCIA ORIGINAL) ---
hist(ene_raw, col = "lightblue", 
     main = "GRAFICA Nro. 1: MODELO DE PROBABILIDAD DE ENERGIA DEL GAS",
     xlab = "ENERGIA DEL GAS", ylab = "DENSIDAD DE PROBABILIDAD", freq = FALSE, las = 1)

# --- PASO 3: FILTRADO (SUBSET) ---
caja_ene <- boxplot(ene_raw, plot = FALSE)
ene_v <- ene_raw[ene_raw >= caja_ene$stats[1] & ene_raw <= caja_ene$stats[5]]
n <- length(ene_v)

# --- PASO 4 Y 5: TABLA DE FRECUENCIAS ---
k <- round(1 + 3.322 * log10(n))
h_p <- hist(ene_v, breaks = k, plot = FALSE)

li <- h_p$breaks[-length(h_p$breaks)]; ls <- h_p$breaks[-1]
ni <- h_p$counts; hi <- ni / n
TDF_9_COL <- data.frame(LI=li, LS=ls, Xi=(li+ls)/2, ni=ni, hi=round(hi,4), 
                        Ni=cumsum(ni), Hi=round(cumsum(hi),4), 
                        Ni_desc=n-cumsum(ni)+ni, Hi_desc=round(1-cumsum(hi)+hi,4))

cat("\n>>> PASO 5: TABLA DE FRECUENCIAS (9 COLUMNAS) <<<\n")
## 
## >>> PASO 5: TABLA DE FRECUENCIAS (9 COLUMNAS) <<<
print(TDF_9_COL)
##        LI      LS       Xi   ni     hi    Ni     Hi Ni_desc Hi_desc
## 1 0.0e+00 5.0e+08 2.50e+08 2880 0.2509  2880 0.2509   11480  1.0000
## 2 5.0e+08 1.0e+09 7.50e+08 2993 0.2607  5873 0.5116    8600  0.7491
## 3 1.0e+09 1.5e+09 1.25e+09 2131 0.1856  8004 0.6972    5607  0.4884
## 4 1.5e+09 2.0e+09 1.75e+09 1241 0.1081  9245 0.8053    3476  0.3028
## 5 2.0e+09 2.5e+09 2.25e+09  764 0.0666 10009 0.8719    2235  0.1947
## 6 2.5e+09 3.0e+09 2.75e+09  586 0.0510 10595 0.9229    1471  0.1281
## 7 3.0e+09 3.5e+09 3.25e+09  384 0.0334 10979 0.9564     885  0.0771
## 8 3.5e+09 4.0e+09 3.75e+09  295 0.0257 11274 0.9821     501  0.0436
## 9 4.0e+09 4.5e+09 4.25e+09  206 0.0179 11480 1.0000     206  0.0179
# --- PASO 6 Y 7: ESTIMACION Y MODELADO ---
meanlog_ene <- mean(log(ene_v))
sdlog_ene <- sd(log(ene_v))

# GRAFICA Nro. 2: MODELO DE PROBABILIDAD
hist(ene_v, freq = FALSE, breaks = k, col = "lightblue",
     main = "GRAFICA Nro. 2: MODELO DE PROBABILIDAD DE ENERGIA DEL GAS",
     xlab = "ENERGIA DEL GAS", ylab = "DENSIDAD DE PROBABILIDAD", las = 1)
curve(dlnorm(x, meanlog_ene, sdlog_ene), col = "red", lwd = 2, add = TRUE)

# --- PASO 7.5: RESUMEN DE PARAMETROS ---
media_original <- exp(meanlog_ene + (sdlog_ene^2)/2)

cat("\n>>> PASO 7.5: RESUMEN DE PARAMETROS <<<\n")
## 
## >>> PASO 7.5: RESUMEN DE PARAMETROS <<<
resumen_inf <- data.frame(
  Indicador = c("Media Logaritmica (mu)", "Desv. Est. Logaritmica (sigma)", 
                "Media Escala Original"),
  Valor = c(round(meanlog_ene, 4), round(sdlog_ene, 4), round(media_original, 2))
)
print(resumen_inf, row.names = FALSE)
##                       Indicador        Valor
##          Media Logaritmica (mu) 2.058180e+01
##  Desv. Est. Logaritmica (sigma) 9.454000e-01
##           Media Escala Original 1.357247e+09
# --- PASO 8: VEREDICTO FINAL ---
FO_rel <- hi
Pi <- plnorm(ls, meanlog_ene, sdlog_ene) - plnorm(li, meanlog_ene, sdlog_ene)
Pi[Pi <= 0] <- 1e-9

x2_valor <- sum((FO_rel - Pi)^2 / Pi)
vc_chi <- qchisq(0.999, length(FO_rel) - 3)
r_pearson <- cor(FO_rel, Pi)

# --- GRAFICA Nro. 3: COMPARACION DEL MODELO CON LA REALIDAD ---
plot(FO_rel, Pi, 
     main = "GRAFICA Nro. 3: COMPARACION DEL MODELO DE POISON CON LA REALIDAD",
     xlab = "ENERGIA DEL GAS (observado)", 
     ylab = "ENERGIA DEL GAS (esperado)", 
     pch = 19, col = "blue")
abline(0, 1, col = "red")

cat("\n>>> PASO 8: TABLA VEREDICTO FINAL <<<\n")
## 
## >>> PASO 8: TABLA VEREDICTO FINAL <<<
tabla_veredicto <- data.frame(
  Prueba = c("Coeficiente de Pearson (r)", "Prueba Chi-Cuadrado (X2)"),
  Valor_Obtenido = c(round(r_pearson, 4), round(x2_valor, 6)),
  Criterio_Referencia = c("r >= 0.90", paste("X2 <", round(vc_chi, 2))),
  Resultado = c(ifelse(r_pearson >= 0.90, "APROBADO", "REPROBADO"), 
                ifelse(x2_valor < vc_chi, "APROBADO", "REPROBADO"))
)
print(tabla_veredicto, row.names = FALSE)
##                      Prueba Valor_Obtenido Criterio_Referencia Resultado
##  Coeficiente de Pearson (r)       0.991800           r >= 0.90  APROBADO
##    Prueba Chi-Cuadrado (X2)       0.028522          X2 < 22.46  APROBADO