#==============================ENCABEZADO===================================
# TEMA: EI Variables Continua - PROYECCION DEL GAS
# AUTOR: GRUPO 4
# FECHA: 08-02-2026
# --- PASO 0: CARGA Y CONFIGURACI??N ---
# Establecemos la ruta de trabajo y cargamos el dataset original.
setwd("C:/Users/HP/Documents/PROYECTO ESTADISTICA/RStudio")
datos <- read.csv("tablap.csv", header = TRUE, dec = ".", sep = ";")
# --- PASO 0.1: LIMPIEZA DE DATOS ---
# Se eliminan s??mbolos no num??ricos y valores vac??os para evitar errores en los c??lculos.
# Se usa as.character para asegurar que el reemplazo de texto (gsub) funcione correctamente.
proy_raw <- as.numeric(gsub("[^0-9.]", "", as.character(datos$Projection.of.gas.production)))
proy_raw <- na.omit(proy_raw)
# --- PASO 1: JUSTIFICACI??N ---
# Definimos la naturaleza de la variable para el sustento te??rico del proyecto.
cat("1. JUSTIFICACI??N: Variable continua. Dominio: [0, +inf).\n")
## 1. JUSTIFICACI??N: Variable continua. Dominio: [0, +inf).
# --- PASO 2: GR??FICA NRO. 0 (EVIDENCIA ORIGINAL) ---
# Mostramos la distribuci??n de los datos brutos antes del tratamiento estad??stico.
# Esto sirve para demostrar la necesidad de filtrar valores at??picos.
hist(proy_raw, col = "yellow", main = "Grafica Nro. 0: Proyecci??n Original",
xlab = "Projection of Gas Production", ylab = "Frecuencia", las = 1)

# --- PASO 3: FILTRADO (SUBSET) ---
# Utilizamos el diagrama de caja (Boxplot) para identificar y filtrar valores extremos (outliers).
# Esto nos permite modelar el comportamiento est??ndar de la producci??n futura proyectada.
caja_proj <- boxplot(proy_raw, plot = FALSE)
proj_v <- proy_raw[proy_raw >= caja_proj$stats[1] & proy_raw <= caja_proj$stats[5]]
n <- length(proj_v)
# --- PASO 4 Y 5: TABLA T??CNICA DE 9 COLUMNAS ---
# Aplicamos la Regla de Sturges para determinar el n??mero de intervalos (k).
k <- round(1 + 3.322 * log10(n))
h_p <- hist(proj_v, breaks = k, plot = FALSE)
# Generamos la tabla descriptiva completa: ni (frecuencia absoluta), hi (relativa),
# Ni (acumulada) y sus versiones descendentes.
li <- h_p$breaks[-length(h_p$breaks)]; ls <- h_p$breaks[-1]
xi <- (li + ls) / 2
ni <- h_p$counts; hi <- ni / n
Ni <- cumsum(ni); Hi <- cumsum(hi)
Ni_desc <- n - Ni + ni; Hi_desc <- 1 - Hi + hi
TDF_9_COL <- data.frame(LI=li, LS=ls, Xi=xi, ni=ni, hi=round(hi,4),
Ni=Ni, Hi=round(Hi,4), Ni_desc=Ni_desc, Hi_desc=round(Hi_desc,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 1698 0.1479 1698 0.1479 11481 1.0000
## 2 5.0e+08 1.0e+09 7.50e+08 3016 0.2627 4714 0.4106 9783 0.8521
## 3 1.0e+09 1.5e+09 1.25e+09 2450 0.2134 7164 0.6240 6767 0.5894
## 4 1.5e+09 2.0e+09 1.75e+09 1614 0.1406 8778 0.7646 4317 0.3760
## 5 2.0e+09 2.5e+09 2.25e+09 972 0.0847 9750 0.8492 2703 0.2354
## 6 2.5e+09 3.0e+09 2.75e+09 647 0.0564 10397 0.9056 1731 0.1508
## 7 3.0e+09 3.5e+09 3.25e+09 441 0.0384 10838 0.9440 1084 0.0944
## 8 3.5e+09 4.0e+09 3.75e+09 325 0.0283 11163 0.9723 643 0.0560
## 9 4.0e+09 4.5e+09 4.25e+09 259 0.0226 11422 0.9949 318 0.0277
## 10 4.5e+09 5.0e+09 4.75e+09 59 0.0051 11481 1.0000 59 0.0051
# --- PASO 6: PAR??METROS LOG-NORMAL ---
# Calculamos mu (media log) y sigma (desv log), que definen la forma de la curva roja.
meanlog_proj <- mean(log(proj_v))
sdlog_proj <- sd(log(proj_v))
# --- PASO 7: GR??FICA NRO. 1 (MODELO) ---
# Superponemos la curva te??rica Log-Normal sobre el histograma de densidad.
hist(proj_v, freq = FALSE, breaks = k, col = "green",
main = "Grafica Nro. 1: Densidad y Modelo Log-Normal",
xlab = "Projection of Gas Production", ylab = "Densidad", las = 1)
curve(dlnorm(x, meanlog_proj, sdlog_proj), col = "red", lwd = 2, add = TRUE)

# --- PASO 7.5: INFERENCIA (MEDIAS E INTERVALOS) ---
# EXPLICACI??N DE RESULTADOS:
# 1. mu/sigma: Par??metros en escala logar??tmica necesarios para el modelo matem??tico.
# 2. Media Escala Original: El promedio real esperado de producci??n (valor central).
# 3. IC 95% Inferior y Superior: El rango de seguridad donde se estima que est?? la
# verdadera media de toda la poblaci??n de pozos con un 95% de certeza.
media_original <- exp(meanlog_proj + (sdlog_proj^2)/2)
error_std <- qnorm(0.975) * sdlog_proj / sqrt(n)
LI_ci <- exp(meanlog_proj - error_std)
LS_ci <- exp(meanlog_proj + error_std)
cat("\n>>> PASO 7.5: RESUMEN DE PAR??METROS E INFERENCIA <<<\n")
##
## >>> PASO 7.5: RESUMEN DE PAR??METROS E INFERENCIA <<<
resumen_inf <- data.frame(
Indicador = c("Media Logar??tmica (mu)", "Desv. Est. Logar??tmica (sigma)",
"Media Escala Original", "IC 95% Inferior", "IC 95% Superior"),
Valor = c(round(meanlog_proj, 4), round(sdlog_proj, 4),
round(media_original, 2), round(LI_ci, 2), round(LS_ci, 2))
)
print(resumen_inf, row.names = FALSE)
## Indicador Valor
## Media Logar??tmica (mu) 2.083750e+01
## Desv. Est. Logar??tmica (sigma) 7.594000e-01
## Media Escala Original 1.495628e+09
## IC 95% Inferior 1.105541e+09
## IC 95% Superior 1.136684e+09
# --- PASO 8: VALIDACI??N (ESTRATEGIA hi) ---
# Comparamos matem??ticamente los datos observados (hi) contra los esperados por el modelo (Pi).
FO_rel <- hi
Pi <- plnorm(ls, meanlog_proj, sdlog_proj) - plnorm(li, meanlog_proj, sdlog_proj)
Pi[Pi <= 0] <- 1e-9
# Calculamos Pearson (correlaci??n) y Chi-Cuadrado (ajuste del modelo).
x2_valor <- sum((FO_rel - Pi)^2 / Pi)
vc_chi <- qchisq(0.999, length(FO_rel) - 1 - 2) # Nivel de confianza alto (99.9%)
r_pearson <- cor(FO_rel, Pi)
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.993500 r >= 0.90 APROBADO
## Prueba Chi-Cuadrado (X2) 0.021078 X2 < 24.32 APROBADO