# ======= REGRESI??N LOGAR??TMICA: GWP vs PRODUCCI??N 2023 =======
library(readr)
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
# 1. CARGA Y FILTRADO DIRECTO
# Definimos la ruta de trabajo y cargamos el archivo CSV
setwd("C:/Users/HP/Documents/PROYECTO ESTADISTICA/RStudio")
datos <- read.csv("tablap.csv", header = TRUE, dec = ".", sep = ";")

# Limpieza de datos: Para el modelo logar??tmico y = a + b * ln(x), 
# es obligatorio que X (GWP) sea estrictamente mayor a cero.
df <- datos[datos$Total.GWP..with.venting. > 0, ]
x <- df$Total.GWP..with.venting.
y <- df$Total.gas.production.by.2023

# 2. GR??FICA Nro. 1: DIAGRAMA DE DISPERSI??N ORIGINAL
# Representaci??n visual inicial para observar la tendencia de los datos.
plot(x, y, 
     main = "Grafica Nro. 1: Distribucion Original de Datos", 
     xlab = "Total GWP", ylab = "Total Gas Production 2023", 
     pch = 16, col = "gray70")

# 3. TRANSFORMACI??N Y MODELO
# En el modelo logar??tmico, solo se transforma la variable independiente (X).
# La relaci??n analizada es: y = a + b * ln(x)
x1 <- log(x)
mod_log <- lm(y ~ x1)

# Extracci??n de par??metros:
# En este modelo, los coeficientes se usan de forma directa (sin antilogaritmo).
a <- coef(mod_log)[1] # Intercepto
b <- coef(mod_log)[2] # Pendiente logar??tmica

# C??lculo del Coeficiente de Correlaci??n de Pearson (r):
# Se mide entre la variable X transformada y la variable Y original.
r <- cor(x1, y)

# 4. GR??FICA Nro. 2: CURVA DE REGRESI??N LOGAR??TMICA
# Mostramos el ajuste visual donde la curva suele estabilizarse conforme X aumenta.
plot(x, y, 
     main = "Grafica Nro. 2: Ajuste de Curva Logaritmica", 
     xlab = "Total GWP", ylab = "Total Gas Production 2023", 
     pch = 16, col = "darkgreen")
# Dibujamos la curva siguiendo la ecuaci??n: y = a + b * log(x)
curve(a + b * log(x), add = TRUE, col = "red", lwd = 3)

# 5. AN??LISIS DE RESTRICCIONES Y CONCLUSI??N UNIFICADA
# Evaluamos la predicci??n en el valor m??ximo de X para verificar coherencia f??sica.
y_max_pred <- a + b * log(max(x))
res_txt <- ifelse(y_max_pred > (max(y) * 1.2), 
                  "existe restriccion fisica en el modelo", 
                  "no existe restriccion fisica aparente")

# Salida de resultados en consola
cat("\n--- RESULTADOS Y CONCLUSION ---\n")
## 
## --- RESULTADOS Y CONCLUSION ---
cat("Coeficiente de correlacion (r):", round(r, 4), "\n\n")
## Coeficiente de correlacion (r): -0.6853
# Redacci??n de la conclusi??n final integrando los valores obtenidos din??micamente
conclusion_final <- paste0(
  "Conclusion: Entre el GWP y la Produccion Total al 2023 existe una relacion de forma logaritmica, ",
  "donde el modelo matematico es y = ", round(a, 4), " + ", round(b, 4), " * ln(x), ",
  "siendo x el GWP y la produccion la variable dependiente. Podemos decir que ", res_txt, 
  " y el grado de asociacion entre las variables es de r = ", round(r, 4), ", ",
  "lo cual indica la efectividad del ajuste logaritmico para representar este fenomeno."
)
cat(conclusion_final, "\n")
## 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. Podemos decir que no existe restriccion fisica aparente y el grado de asociacion entre las variables es de r = -0.6853, lo cual indica la efectividad del ajuste logaritmico para representar este fenomeno.