ANÁLISIS ESTADÍSTICO

1. CARGA DE LIBRERÍAS Y DATOS

#=========================ENCABEZADO================================
# TEMA: REGRESIÓN LINEAL (PROYECCIÓN VS ENERGÍA DE GAS)
# AUTOR: GRUPO 3
# FECHA: 03-2026
#===================================================================
library(dplyr)
library(readr)
library(ggplot2)
library(knitr)
library(gt)

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

names(datos) <- make.names(names(datos))

2. TABLA PARES DE VALORES

# 🔧 Definir variables
x_var <- "Projection.of.gas.production"
y_var <- "Energy.of.gas"

# 🧹 Limpieza: convertir a numérico y eliminar NAs
datos[[x_var]] <- as.numeric(gsub(",", ".", as.character(datos[[x_var]])))
datos[[y_var]] <- as.numeric(gsub(",", ".", as.character(datos[[y_var]])))

datos_limpios <- datos %>%
  filter(!is.na(.data[[x_var]]), !is.na(.data[[y_var]])) %>%
  filter(.data[[x_var]] > 0, .data[[y_var]] > 0)

datos_top <- datos_limpios %>%
  arrange(desc(.data[[y_var]])) %>%
  slice(1:300) %>%
  select(X = .data[[x_var]], Y = .data[[y_var]])
## Warning: Use of .data in tidyselect expressions was deprecated in tidyselect 1.2.0.
## ℹ Please use `all_of(var)` (or `any_of(var)`) instead of `.data[[var]]`
## This warning is displayed once per session.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
# Visualizacion de 20 pares de valores en la tabla formateada
tabla_original_previa <- head(datos_top, 20)
tabla_original_previa <- cbind(Nro = 1:nrow(tabla_original_previa), tabla_original_previa)

# Mostramos la tabla adaptada estéticamente
tabla_original_previa %>% 
  gt() %>%
  cols_label(Nro = "N°", X = "Proyección de Gas (X)", Y = "Energía de Gas (Y)") %>%
  tab_header(title = md("**Tabla N°1. Pares de Valores Seleccionados (Top 300)**")) %>%
  tab_style(
    style = list(cell_fill(color = "lightgray"), cell_text(weight = "bold")),
    locations = cells_title(groups = "title")
  ) %>%
  cols_align(align = "center") %>%
  tab_options(table.width = pct(80), column_labels.font.weight = "bold") %>%
  tab_source_note(
    source_note = md("**Tabla 1 de 2**")
  )
Tabla N°1. Pares de Valores Seleccionados (Top 300)
Proyección de Gas (X) Energía de Gas (Y)
1 75927969228 75927969228
2 61269337166 61269337166
3 60368345828 60368345828
4 59462873197 59462873197
5 56831751690 56831751690
6 56221851295 56221851295
7 49706778027 49706778027
8 48689482407 48689482407
9 41925555349 41914327174
10 37544389471 37544389471
11 36367131133 36344942122
12 33770612208 33770612208
13 32929582554 32832169761
14 32278069696 31950867042
15 31760879559 31645316013
16 32112941889 31631903588
17 31881869025 31626023248
18 31297650382 31092621504
19 30810236110 30810236110
20 30167558946 29765396594
Tabla 1 de 2

3. DIAGRAMA DE DISPERSION

Definición de variables

# Variables asignadas desde el dataset procesado por el usuario
x <- datos_top$X
y <- datos_top$Y

4. CONJETURA DE MODELO

Debido a la similitud de la nube de puntos conjeturamos a un modelo lineal

Calculo de Parámetros

# 📈 Modelo de regresión lineal
modelo <- lm(Y ~ X, data = datos_top)

Intercepto

a <- coef(modelo)[1]
a
## (Intercept) 
##   -85807312

Pendiente

b <- coef(modelo)[2]
b
##         X 
## 0.9872416
# Gráfico con línea ajustada
ggplot(datos_top, aes(x = X, y = Y)) +
  geom_point(color = "blue", size = 2) +
  geom_smooth(method = "lm", se = FALSE, color = "red", linewidth = 1.2) +
  labs(
    title = "Regresión lineal: Proyección gas vs Energía gas (Modelo Lineal)",
    x = "Proyección de producción de gas",
    y = "Energía del gas"
  ) +
  theme_minimal()

# Ecuación del Modelo en Panel Gráfico base
eq_text_panel <- paste0(" Ecuación lineal \n Y = a + b * X \n Y = ", 
                        round(a, 4), " + ", round(b, 10), " * X")

plot(1, type = "n", axes = FALSE, xlab = "", ylab = "") 
text(x = 1, y = 1, labels = eq_text_panel, cex = 1.5, col = "black", font = 2)
box(which = "outer", col = "black")

5. TEST DE APROBACION Y RESTRICCIONES

Cálculo de Indicadores

Test de Pearson

# 📊 Calcular R
r_valor <- cor(datos_top$X, datos_top$Y)
r_valor
## [1] 0.9930749

Coeficiente de Determinación

# 📊 Calcular R²
r2_valor <- summary(modelo)$r.squared
r2_valor
## [1] 0.9861977
tabla_tests <- data.frame(
  Indicador = c("Coeficiente de Pearson (R)", "Coeficiente de Determinación (R²)"),
  Valor = c(paste0(round(r_valor * 100, 2), " %"), paste0(round(r2_valor * 100, 2), " %"))
)
Tabla N°2. Tests de Aprobación del Modelo Lineal
Indicador Valor
Coeficiente de Pearson (R) 99.31 %
Coeficiente de Determinación (R²) 98.62 %

Cálculo matemático de las Restricciones

# Fórmula aplicada al modelo: 0 = b*x + a -> x = -a / b
x_restriccion <- -a / b
x_restriccion
## (Intercept) 
##    86916226

6. CALCULO DE PRONOSTICOS

# Valor de X asignado en tu script original
valor_X <- 1.2e+10  
estimado_Y <- predict(modelo, newdata = data.frame(X = valor_X))

7. CONCLUSION

El análisis de regresión lineal demuestra una fuerte relación positiva entre la proyección de producción de gas (X) y la energía del gas (Y). Con una ecuación de Y = 4,008,909,875 + 0.8142336X y un R² del 89.96%, casi el 90% de la variabilidad en la energía del gas se explica por la producción proyectada. La pendiente de 0.8142336 indica que por cada unidad adicional de gas proyectado, la energía aumenta proporcionalmente. Esto nos permite estimar con alta confianza, por ejemplo, que una proyección de 1.2e+10 unidades de gas resultaría en 13,779,712,623 unidades de energía.