# ======= REGRESI??N POLIN??MICA PRO: GWP vs PRODUCCI??N =======
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
library(ggplot2)
# 1. CARGA Y LIMPIEZA AVANZADA
setwd("C:/Users/HP/Documents/PROYECTO ESTADISTICA/RStudio")
datos <- read.csv("tablap.csv", header = TRUE, dec = ".", sep = ";")
# Limpieza de comas y conversi??n a num??rico
x_var <- "Total.GWP..with.venting."
y_var <- "Total.gas.production.by.2023"
# Aplicamos tu l??gica de limpieza de valores <= 0 y filtrado de cuantiles
df_clean <- datos %>%
mutate(across(c(all_of(x_var), all_of(y_var)), ~ as.numeric(gsub(",", ".", .)))) %>%
filter(.data[[x_var]] > 0, .data[[y_var]] > 0) %>%
filter(between(.data[[x_var]], quantile(.data[[x_var]], 0.02), quantile(.data[[x_var]], 0.98)),
between(.data[[y_var]], quantile(.data[[y_var]], 0.02), quantile(.data[[y_var]], 0.98))) %>%
select(X = all_of(x_var), Y = all_of(y_var)) %>%
slice(1:500) #slice permite tomar solo 600 valores para poder visualizar mejor la grafica, al tomar
#los 12561 datos se vuelve una mancha azul
# 2. MODELO MATEM??TICO (Grado 4)
mod_poly <- lm(Y ~ X + I(X^2) + I(X^3) + I(X^4), data = df_clean)
coefs <- coef(mod_poly)
# 3. M??TRICAS DE CORRELACI??N
r_pearson <- cor(df_clean$X, df_clean$Y)
r2 <- summary(mod_poly)$r.squared
# 4. VISUALIZACI??N PROFESIONAL (ggplot2)
# Esta es la parte que hace que la gr??fica se vea mejor
grafica <- ggplot(df_clean, aes(x = X, y = Y)) +
geom_point(color = "steelblue", alpha = 0.5) +
stat_smooth(method = "lm", formula = y ~ x + I(x^2) + I(x^3) + I(x^4),
se = FALSE, color = "darkorange", linewidth = 1.2) +
labs(title = "Grafica Nro.1:Distribucion entre Total GWP y Produccion Total de Gas 2023",
x = "Total GWP", y = "Producci??n Total de Gas 2023") +
theme_minimal()
print(grafica)

# 5. CONCLUSI??N UNIFICADA
cat("\n--- RESULTADOS Y CONCLUSION ---\n")
##
## --- RESULTADOS Y CONCLUSION ---
cat("Coeficiente de correlacion (r):", round(r_pearson, 4), "\n")
## Coeficiente de correlacion (r): -0.5827
cat("R-cuadrado (R2):", round(r2 * 100, 2), "%\n\n")
## R-cuadrado (R2): 55.64 %
# Usamos tu l??gica de la estimaci??n para la conclusi??n
valor_test <- 800000
est_y <- coefs[1] + coefs[2]*valor_test + coefs[3]*valor_test^2 + coefs[4]*valor_test^3 + coefs[5]*valor_test^4
conclusion_final <- paste0(
"Conclusion: El modelo polinomico de grado 4 explica el ", round(r2 * 100, 2),
"% de la variabilidad de la produccion. Para un GWP de ", valor_test,
", la produccion estimada es de ", round(Re(est_y), 2), ". ",
"La limpieza por cuantiles permitio un ajuste r = ", round(r_pearson, 4),
", eliminando el ruido de los valores atipicos."
)
cat(conclusion_final, "\n")
## Conclusion: El modelo polinomico de grado 4 explica el 55.64% de la variabilidad de la produccion. Para un GWP de 8e+05, la produccion estimada es de 2.12790638626993e+27. La limpieza por cuantiles permitio un ajuste r = -0.5827, eliminando el ruido de los valores atipicos.