#==============================ENCABEZADO===================================
# TEMA: REGRESION POTENCIAL
# 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 ENERGIA) ========
x <- as.numeric(datos$Total.GWP..with.venting.)
y <- as.numeric(datos$Energy.of.gas)

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   474611355
## 2  0.7827884  3008671457
## 3  0.3984888 11271020282
## 4  0.3839680   396443607
## 5  3.0745636   863371043
## 6  1.9364960  1631138294
## 7  3.6012183   980810831
## 8  1.4877942  2011515623
## 9  0.4691823  2004640765
## 10 1.3916766  2997579933
## 11 0.2062258 15058581965
## 12 0.3637969  8805580780
## 13 1.0844579   449971840
## 14 0.7925555  1205817899
## 15 4.3474385   318703166
## 16 0.8238226  3531327643
## 17 0.9903871  2022706923
## 18 0.4075040  7575844581
## 19 4.7822350   657975593
## 20 0.4730059   383489940
# 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 75927969228
## 12529 0.03815919 61269337166
## 11941 0.03965668 48689482407
## 7120  0.04227648 49706778027
## 12483 0.04235340 59462873197
## 12516 0.04515327 56221851295
## 11971 0.04595880 56831751690
## 10510 0.06870342 29765396594
## 12517 0.06952325 60368345828
## 1505  0.06999755 33770612208
## 6599  0.07389282 41914327174
## 4641  0.07450329 24284040951
## 3849  0.07742134 31092621504
## 10176 0.07842915 27039608332
## 12411 0.08083003 25620729501
## 8782  0.08246843 22612154567
## 11996 0.08657922 31645316013
## 7817  0.09128490 20112514303
## 2187  0.09704375 37544389471
## 11177 0.10079098 30810236110
#======= 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 Energia del gas",
     xlab = "Total GWP", ylab = "Energia del Gas")

#======= 4. MODELO POTENCIAL (LINEALIZACION) ========
x_log <- log(x_val)
y_log <- log(y_val)
modelo_potencial <- lm(y_log ~ x_log)

b_pot <- coef(modelo_potencial)[2] 
a_pot <- exp(coef(modelo_potencial)[1]) 

#======= 5. GRAFICA DEL AJUSTE POTENCIAL ========
plot(x_val, y_val, pch = 16, col = "skyblue",
     main = "Grafica N.2: Comparacion de la realidad con el modelo potencial\nentre el GWP y la Energia del gas",
     xlab = "Total GWP", ylab = "Energia del Gas")

curve(a_pot * x^b_pot, add = TRUE, col = "red", lwd = 3)

# REPOSICIONADO A TU COORDENADA ORIGINAL
text(x = mean(x_val)*8, y = max(y_val)*1, 
     labels = paste("Y =", round(a_pot, 4), "* x^", round(b_pot, 4)), 
     col = "red", font = 2)

#======= 6. TEST DE PEARSON Y RESULTADOS ========
r_pot <- cor(x_log, y_log)
r2_pot <- r_pot^2

tabla_resumen <- data.frame(
  Indicador = c("Pearson (r log)", "Determinacion (R2)", "Parametro a", "Parametro b"),
  Valor = c(round(r_pot, 4), paste0(round(r2_pot*100, 2), "%"), round(a_pot, 4), round(b_pot, 4))
)

kable(tabla_resumen, caption = "Resumen de Parametros Modelo Potencial")
Resumen de Parametros Modelo Potencial
Indicador Valor
Pearson (r log) -0.896
Determinacion (R2) 80.29%
Parametro a 2237685889.9444
Parametro b -1.0698
#======= 6. CALCULO DE PRONOSTICOS ========
print("CALCULO DE PRONOSTICOS")
## [1] "CALCULO DE PRONOSTICOS"
valor_gwp_consulta <- 1000 
pronostico_potencial <- a_pot * (valor_gwp_consulta ^ b_pot)
cat("Para una proyeccion de GWP de", valor_gwp_consulta, ", la energia esperada es:", round(pronostico_potencial, 2), "\n")
## Para una proyeccion de GWP de 1000 , la energia esperada es: 1381617
#======= 7. CONCLUSION UNIFICADA ========
print("CONCLUSION")
## [1] "CONCLUSION"
cat("Conclusion: Entre el GWP y la Energia del gas existe una relacion de forma potencial, 
donde el modelo matematico es y = 2237685890 *(x^ -1.0698 ), 
siendo x el GWP y la energia la variable dependiente. Podemos decir que no existe
restriccion y el grado de asociacion entre las variables transformadas es de r =-0.896, 
lo cual valida la precision del ajuste potencial para este conjunto de datos.")
## Conclusion: Entre el GWP y la Energia del gas existe una relacion de forma potencial, 
## donde el modelo matematico es y = 2237685890 *(x^ -1.0698 ), 
## siendo x el GWP y la energia la variable dependiente. Podemos decir que no existe
## restriccion y el grado de asociacion entre las variables transformadas es de r =-0.896, 
## lo cual valida la precision del ajuste potencial para este conjunto de datos.