#==============================ENCABEZADO===================================
# TEMA: REGRESION LOGARITMICA
# AUTOR: GRUPO 4
# FECHA: 09-02-2026

#======= 1. CARGA DE DATOS Y LIBRERIAS ========
print("CARGA DE DATOS Y LIBRERIAS")
## [1] "CARGA DE DATOS Y LIBRERIAS"
library(dplyr)
## 
## Adjuntando el paquete: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(knitr)

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

#======= 2. TABLA DE PARES DE VALORES (GWP vs PRODUCCION) ========
# En el modelo logaritmico y = a + b * ln(x), x (GWP) debe ser > 0
x <- as.numeric(datos$Total.GWP..with.venting.)
y <- as.numeric(datos$Total.gas.production.by.2023)

TPV <- data.frame(x, y)
TPV <- na.omit(TPV)
TPV <- TPV[TPV$x > 0 & TPV$y > 0, ]

# Imprimir muestra inicial (20 registros)
print("Muestra de 20 registros - Tabla Limpia:")
## [1] "Muestra de 20 registros - Tabla Limpia:"
head(TPV, 20)
##            x        y
## 1  2.0888771   437618
## 2  0.7827884  2774162
## 3  0.3984888 10392506
## 4  0.3839680   365543
## 5  3.0745636   796076
## 6  1.9364960  1504000
## 7  3.6012183   904362
## 8  1.4877942  1854729
## 9  0.4691823  1848390
## 10 1.3916766  2763935
## 11 0.2062258 13884848
## 12 0.3637969  8119234
## 13 1.0844579   414899
## 14 0.7925555  1111831
## 15 4.3474385   293862
## 16 0.8238226  3256080
## 17 0.9903871  1865048
## 18 0.4075040  6985349
## 19 4.7822350   606690
## 20 0.4730059   353599
# Ordenar por la variable independiente (GWP)
TPV <- TPV[order(TPV$x), ]

# Imprimir muestra ordenada (20 registros)
print("Muestra de 20 registros - Tabla Ordenada:")
## [1] "Muestra de 20 registros - Tabla Ordenada:"
head(TPV, 20)
##                x        y
## 6503  0.03229314 70009800
## 12529 0.03815919 56493728
## 11941 0.03965668 44894404
## 7120  0.04227648 45832407
## 12483 0.04235340 54828068
## 12516 0.04515327 51839666
## 11971 0.04595880 52402028
## 10510 0.06870342 27445347
## 12517 0.06952325 55662964
## 1505  0.06999755 31138378
## 6599  0.07389282 38647335
## 4641  0.07450329 22391233
## 3849  0.07742134 28669122
## 10176 0.07842915 24932019
## 12411 0.08083003 23623734
## 8782  0.08246843 20849661
## 11996 0.08657922 29178737
## 7817  0.09128490 18544854
## 2187  0.09704375 34618010
## 11177 0.10079098 28408747
#======= 3. DIAGRAMA DE DISPERSION ========
x_val <- TPV$x
y_val <- TPV$y

plot(x_val, y_val, pch = 16, col = "gray70",
     main = "Grafica N.1: Diagrama de dispersion entre el GWP\ny la Produccion Total de Gas 2023",
     xlab = "Total GWP", ylab = "Produccion Total de Gas 2023")

#======= 4. CONJETURA DEL MODELO (LOGARITMICO) ========
# Transformamos la variable independiente: x1 = ln(x)
x1 <- log(x_val)
modelo_logaritmico <- lm(y_val ~ x1)

# Extraccion de parametros (Directos, sin antilogaritmo)
a <- coef(modelo_logaritmico)[1] # Intercepto
b <- coef(modelo_logaritmico)[2] # Pendiente logaritmica

#======= 5. GRAFICA DEL AJUSTE LOGARITMICO ========
plot(x_val, y_val, pch = 16, col = "darkgreen",
     main = "Grafica N.2: Comparacion de la realidad con el modelo logaritmico\nentre el GWP y la Produccion Total de Gas 2023",
     xlab = "Total GWP", ylab = "Produccion Total de Gas 2023")

# Dibujamos la curva siguiendo la ecuacion: y = a + b * log(x)
curve(a + b * log(x), add = TRUE, col = "red", lwd = 3)

# Ecuacion en el grafico (coordenada original adaptada)
text(x = mean(x_val)*8, y = max(y_val)*1, 
     labels = paste("Y =", round(a, 4), "+", round(b, 4), "* ln(x)"), 
     col = "red", font = 2)

#======= 6. TEST DE PEARSON Y RESULTADOS ========
r <- cor(x1, y_val)
r2 <- r^2

tabla_resultados <- data.frame(
  Indicador = c("Pearson (r)", "Determinacion (R2)", "Parametro a (Intercepto)", "Parametro b (Pendiente)"),
  Valor = c(round(r, 4), paste0(round(r2 * 100, 2), "%"), round(a, 4), round(b, 4))
)

kable(tabla_resultados, caption = "Resumen de Parametros Modelo Logaritmico")
Resumen de Parametros Modelo Logaritmico
Indicador Valor
Pearson (r) -0.6853
Determinacion (R2) 46.96%
Parametro a (Intercepto) 3220814.5985
Parametro b (Pendiente) -2079356.1987
#======= 7. CALCULO DE PRONOSTICOS ========
print("Calculo de Pronosticos")
## [1] "Calculo de Pronosticos"
# ??Cual seria la produccion esperada si el GWP es de 2?
C_esp <- a + b*log(2)
C_esp
## (Intercept) 
##     1779515
#======= 8. CONCLUSION ========
print("CONCLUSION")
## [1] "CONCLUSION"
cat("Conclusion: Entre el GWP y la Produccion Total al 2023 existe una relacion de forma logaritmica, 
donde el modelo matematico es y = 3220814.5985 + (-2079356.1987) * ln(x), siendo x el GWP 
y la produccion la variable dependiente. El modelo presenta restricciones ya que solo es 
valido para valores de x > 0. El grado de asociacion entre las variables es de r = -0.6853, 
lo cual indica que existe una relacion inversa moderada entre el logaritmo del GWP 
y la produccion de gas para este conjunto de datos.")
## Conclusion: Entre el GWP y la Produccion Total al 2023 existe una relacion de forma logaritmica, 
## donde el modelo matematico es y = 3220814.5985 + (-2079356.1987) * ln(x), siendo x el GWP 
## y la produccion la variable dependiente. El modelo presenta restricciones ya que solo es 
## valido para valores de x > 0. El grado de asociacion entre las variables es de r = -0.6853, 
## lo cual indica que existe una relacion inversa moderada entre el logaritmo del GWP 
## y la produccion de gas para este conjunto de datos.