#=========================ENCABEZADO================================
# TEMA: REGRESION POTENCIAL
# AUTOR: GRUPO 3
# FECHA: 03-2026
#===================================================================
library(dplyr)
library(knitr)
library(gt)
setwd("C:/Users/HP/Documents/PROYECTO ESTADISTICA/RStudio")
datos <- read.csv("tablap.csv", header = TRUE, sep = ";", dec = ",")
profundidad <- as.numeric(datos$Vertical.depth.of.well)
produccion <- as.numeric(datos$Total.gas.production.by.2023)
# Generamos TPV ORIGINAL
TPV_sin_ordenar <- data.frame(profundidad = profundidad, produccion = produccion)
TPV_sin_ordenar <- na.omit(TPV_sin_ordenar)
TPV_sin_ordenar <- TPV_sin_ordenar[TPV_sin_ordenar$profundidad > 0 & TPV_sin_ordenar$produccion > 0, ]
row.names(TPV_sin_ordenar) <- NULL
# Tomamos los primeros 20 datos
tabla_previa_sin_orden <- head(TPV_sin_ordenar, 20)
tabla_previa_sin_orden <- cbind(Nro = 1:nrow(tabla_previa_sin_orden), tabla_previa_sin_orden)
| Tabla N°1. Pares de Valores de Profundidad y Produccion de gas de los pozos de gas Natural | ||
| N° | Profundidad | Producción Gas |
|---|---|---|
| 1 | 3802 | 25946 |
| 2 | 4327 | 30234 |
| 3 | 4251 | 30596 |
| 4 | 5161 | 30945 |
| 5 | 2964 | 31559 |
| 6 | 4569 | 32641 |
| 7 | 3945 | 33032 |
| 8 | 4861 | 33595 |
| 9 | 4065 | 33772 |
| 10 | 4416 | 34112 |
| 11 | 3878 | 34169 |
| 12 | 3646 | 34435 |
| 13 | 3448 | 34659 |
| 14 | 3536 | 34717 |
| 15 | 3643 | 34913 |
| 16 | 4004 | 35808 |
| 17 | 4210 | 35846 |
| 18 | 3592 | 36025 |
| 19 | 3189 | 36283 |
| 20 | 4362 | 36357 |
| Tabla 1 de 3 | ||
profundidad <- as.numeric(datos$Vertical.depth.of.well)
produccion <- as.numeric(datos$Total.gas.production.by.2023)
# Crear TPV y limpiar datos (Omitir NA, Ceros y Negativos)
TPV <- data.frame(profundidad = profundidad, produccion = produccion)
TPV <- na.omit(TPV)
TPV <- TPV[TPV$profundidad > 0 & TPV$produccion > 0, ]
# Ordenar la tabla por profundidad
TPV <- TPV[order(TPV$profundidad), ]
row.names(TPV) <- NULL
set.seed(123)
indice_visual <- sample(1:nrow(TPV), nrow(TPV) / 10)
# Tabla Pares de Valores
tabla_tpv_previa <- head(TPV, 20)
tabla_tpv_previa <- cbind(Nro = 1:nrow(tabla_tpv_previa), tabla_tpv_previa)
| Tabla N°2. Pares de Valores de Profundidad y Produccion de gas de los pozos de gas Natural | ||
| N° | Profundidad | Producción Gas |
|---|---|---|
| 1 | 2209 | 42633 |
| 2 | 2360 | 72314 |
| 3 | 2634 | 100773 |
| 4 | 2760 | 60378 |
| 5 | 2780 | 191668 |
| 6 | 2788 | 207041 |
| 7 | 2795 | 163134 |
| 8 | 2842 | 117873 |
| 9 | 2870 | 235741 |
| 10 | 2880 | 144451 |
| 11 | 2894 | 260381 |
| 12 | 2910 | 95627 |
| 13 | 2936 | 209400 |
| 14 | 2937 | 233491 |
| 15 | 2961 | 93692 |
| 16 | 2964 | 31559 |
| 17 | 2971 | 97053 |
| 18 | 2973 | 283745 |
| 19 | 2991 | 381001 |
| 20 | 3012 | 50227 |
| Tabla 2 de 3 | ||
# Definición de variables
x <- TPV$profundidad #Variable Independiente
y <- TPV$produccion #Variable Dependiente
par(oma = c(1, 1, 1, 1))
plot(x[indice_visual], y[indice_visual],
pch = 16,
col = "blue",
main = "Gráfica N°1: Diagrama de dispersión entre Profundidad \n y Producción de gas",
xlab = "Profundidad",
ylab = "Producción de gas")
box(which = "outer", col = "black")
Debido a la similitud de la nube de puntos conjeturamos a un modelo Potencial
Calculo de Parámetros
par(oma = c(1, 1, 1, 1))
# Transformación logarítmica para linealizar el modelo potencial
x1 <- log(x)
y1 <- log(y)
# Cálculo de parámetros
regresion_Potencial <- lm(y1 ~ x1)
beta0 <- coef(regresion_Potencial)[1]
beta1 <- coef(regresion_Potencial)[2]
Intercepto
a <- exp(beta0) # Parámetro 'a'
a
## (Intercept)
## 1.222816e-11
Exponente
b <- beta1 # Parámetro 'b' (exponente)
b
## x1
## 4.540034
# Grafica 2
plot(x[indice_visual], y[indice_visual],
pch = 16,
col = "blue",
main = "Gráfica Nº2: Comparación de la realidad con el
modelo Potencial entre el Profundidad y Produccion de
gas de los pozos de gas natural",
xlab = "Profundidad",
ylab = "Producción")
box(which = "outer", col = "black")
# Añadir curva del modelo
curve(a * x^b, from = min(x), to = max(x), add = TRUE, col = "red", lwd = 2)
eq_text_panel <- paste0(" Ecuación potencial \n Y = a * x^b \n Y = ",
round(a, 12), " * x^", round(b, 2))
plot(1, type = "n", axes = FALSE, xlab = "", ylab = "")
text(x = 1, y = 1,
labels = eq_text_panel,
cex = 2,
col = "blue",
font = 2)
box(which = "outer", col = "black")
Cálculo de Indicadores
Coeficiente de Pearson
r <- cor(x1, y1)
r*100
## [1] 74.30851
| Tabla Nº3: Test de Aprobación del Modelo Potencial | |
| Indicador | Valor |
|---|---|
| Coeficiente de Pearson (r) | 74.31 % |
| Tabla 3 de 3 | |
Restricciones
plot.new()
plot.window(xlim = c(0, 100), ylim = c(0, 100))
text(50, 72, "RESTRICCIONES DEL MODELO", cex = 1.4, font = 2, col = "#D9534F")
parrafo_1 <- "El modelo solo es válido y seguro si se aplica dentro del rango"
parrafo_2 <- "geológico observado de la cuenca. Si intentamos predecir"
parrafo_3 <- "la producción de un pozo exageradamente superficial (ej. 500 de "
parrafo_4 <- "profundidad) o uno ultra profundo fuera del límite (ej. 20,000)"
parrafo_5 <- ", la ecuaciónperderá total confiabilidad debido al riesgo de "
parrafo_6 <- "extrapolación."
text(50, 60, parrafo_1, cex = 1.1, font = 3, col = "black")
text(50, 48, parrafo_2, cex = 1.1, font = 3, col = "black")
text(50, 36, parrafo_3, cex = 1.1, font = 3, col = "black")
text(50, 24, parrafo_4, cex = 1.1, font = 3, col = "black")
text(50, 12, parrafo_5, cex = 1.1, font = 3, col = "black")
text(50, 1, parrafo_6, cex = 1.1, font = 3, col = "black")
rect(-2, -4, 100, 95, border = "#D9534F", lwd = 3)
x_pronostico <- 5000
T_Esp <- a * (x_pronostico^b)
T_Esp
## (Intercept)
## 759993.6
Entre la profundidad y la producción de gas de los pozos de gas natural existe una correlacion positiva alta, la cual está respaldada por un coeficiente de correlación de Pearson del 74.31%. Esta estructura se describe de manera óptima a través del modelo matemático f(x) = (1.2 x 10^-11) (x^4.54). Como ejemplo práctico de su capacidad de estimación dentro del rango controlado de la cuenca, al evaluar una profundidad de 5000 metros, el modelo predice una producción de 759,993.57 unidades de gas.