# ======= REGRESI??N M??LTIPLE PRO: GWP + PROYECCI??N vs ENERG??A =======

# 1. CARGA DE LIBRER??AS Y DATOS
library(scatterplot3d)
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
# Configuraci??n del directorio y carga del archivo
setwd("C:/Users/HP/Documents/PROYECTO ESTADISTICA/RStudio")
datos <- read.csv("tablap.csv", header = TRUE, dec = ".", sep = ";")

# Nombres de las variables originales
x1_nm <- "Total.GWP..with.venting."
x2_nm <- "Projection.of.gas.production"
y_nm  <- "Energy.of.gas"

# 2. LIMPIEZA Y FILTRADO AVANZADO (CUANTILES)
# Este bloque asegura que los datos sean num??ricos y elimina valores extremos (outliers)
for (var in c(x1_nm, x2_nm, y_nm)) {
  datos[[var]] <- as.numeric(gsub(",", ".", as.character(datos[[var]])))
  min_val <- min(datos[[var]][datos[[var]] > 0], na.rm = TRUE)
  datos[[var]][is.na(datos[[var]]) | datos[[var]] <= 0] <- min_val
}

df_final <- datos %>%
  filter(between(.data[[x1_nm]], quantile(.data[[x1_nm]], 0.02), quantile(.data[[x1_nm]], 0.98)),
         between(.data[[x2_nm]], quantile(.data[[x2_nm]], 0.02), quantile(.data[[x2_nm]], 0.98)),
         between(.data[[y_nm]],  quantile(.data[[y_nm]],  0.02), quantile(.data[[y_nm]],  0.98))) %>%
  select(X1 = all_of(x1_nm), X2 = all_of(x2_nm), Y = all_of(y_nm)) %>%
  slice(1:450) 

# 3. MODELO DE REGRESI??N M??LTIPLE
# Ecuaci??n: Y = B0 + B1*X1 + B2*X2
modelo_mult <- lm(Y ~ X1 + X2, data = df_final)
summary_model <- summary(modelo_mult)
coefs <- coef(modelo_mult)

# 4. GR??FICA DE DISPERSI??N 3D (VERSI??N PROFESIONAL)
# Nota: Se elimin?? 'alpha' para evitar advertencias de par??metros inv??lidos.
s3d <- scatterplot3d(x = df_final$X1, y = df_final$X2, z = df_final$Y,
                     color = "steelblue", pch = 16, 
                     angle = 60, 
                     main = "Regresi??n M??ltiple: Plano de Ajuste 3D",
                     xlab = "Total GWP", 
                     ylab = "Proyecci??n Gas", 
                     zlab = "Energ??a del Gas")

# Dibujamos el plano de regresi??n como un pol??gono s??lido
s3d$plane3d(modelo_mult, draw_polygon = TRUE, col = "lightgreen")

# 5. C??LCULO DE M??TRICAS Y TABLA DE COEFICIENTES
r2_ajustado <- summary_model$adj.r.squared
r_multiple <- sqrt(r2_ajustado)

# Creaci??n de la tabla de coeficientes TPV
tabla_TPV <- data.frame(
  Variable = c("Intercepto (B0)", "Total GWP (B1)", "Proyecci??n Gas (B2)"),
  Coeficiente = c(round(coefs[1], 4), round(coefs[2], 4), round(coefs[3], 4))
)

cat("\n--- TABLA DE PAR??METROS DEL MODELO (TPV) ---\n")
## 
## --- TABLA DE PAR??METROS DEL MODELO (TPV) ---
print(tabla_TPV, row.names = FALSE)
##              Variable   Coeficiente
##       Intercepto (B0)  7.685250e+08
##        Total GWP (B1) -1.206083e+08
##  Proyecci??n Gas (B2)  6.065000e-01
cat("\nCorrelaci??n M??ltiple (r):", round(r_multiple, 4))
## 
## Correlaci??n M??ltiple (r): 0.7877
cat("\nInfluencia Combinada (R2):", round(r2_ajustado * 100, 2), "%\n")
## 
## Influencia Combinada (R2): 62.04 %
# 6. CONCLUSI??N UNIFICADA
otros_factores <- (1 - r2_ajustado) * 100
valor_prom_x1 <- mean(df_final$X1)
valor_prom_x2 <- mean(df_final$X2)
est_y <- coefs[1] + coefs[2]*valor_prom_x1 + coefs[3]*valor_prom_x2

conclusion_final <- paste0(
  "Conclusi??n: El modelo de regresi??n m??ltiple indica que la Energ??a del gas est?? influenciada en un ", 
  round(r2_ajustado * 100, 2), "% por la combinaci??n del GWP y la Proyecci??n de producci??n. ",
  "Para valores promedio observados, la energ??a estimada es de ", round(est_y, 2), ". ",
  "El grado de asociaci??n conjunta (r = ", round(r_multiple, 4), ") valida el ajuste del plano ",
  "s??lido, mientras que un ", round(otros_factores, 2), "% de la varianza depende de otros factores."
)

cat("\n--- CONCLUSI??N FINAL ---\n")
## 
## --- CONCLUSI??N FINAL ---
cat(conclusion_final, "\n")
## Conclusi??n: El modelo de regresi??n m??ltiple indica que la Energ??a del gas est?? influenciada en un 62.04% por la combinaci??n del GWP y la Proyecci??n de producci??n. Para valores promedio observados, la energ??a estimada es de 2379516749.96. El grado de asociaci??n conjunta (r = 0.7877) valida el ajuste del plano s??lido, mientras que un 37.96% de la varianza depende de otros factores.