Carga de datos
setwd("/cloud/project/")
datos<-read.csv("DATOS.csv", header = TRUE, sep=";" , dec=".")
str(datos)
## 'data.frame': 10190 obs. of 17 variables:
## $ Distrito_edit : chr "1" "1" "1" "1" ...
## $ Year_edit_Fecha_del_derrame : int 2013 2013 2013 2013 2013 2013 2013 2013 2013 2013 ...
## $ Mes_edit_Fecha_del_derrame : int 6 3 4 4 6 6 3 9 10 6 ...
## $ Categoria_Instalaciones : chr "Instalacion fija" "Pozos" "Pozos" "Pozos" ...
## $ Operacion_general : chr "Produccion" "Otro" "Produccion" "Produccion" ...
## $ Categoria_Fuente : chr NA "Tanques/Almacenamiento" "Lineas/Tuberias" "Infraestructura Fija" ...
## $ Grupo_causas_probable : chr NA "Afectaciones externas" "Factores humanos" "Problemas tecnicos" ...
## $ Liberacion_petroleo_crudo_edicion : num 0 0 0 0 0 ...
## $ Edicion_recuperacion_petroleo_crudo : num NA 0 0 0 0 0 0 0 0 NA ...
## $ Volumen_liberado_Cond_Final : num 0 0 0 10 0 0 0 1 0 0 ...
## $ Liberacion_agua_de_produccion_edicion: num 6720 3780 5040 420 10920 ...
## $ Liberacion_volumen_gas : num 0 0 0 0 0 0 0 0 0 0 ...
## $ Volumen_condensado_recuperado : num NA 0 0 1 0 0 0 0 0 NA ...
## $ Edicion_Recuperacion_agua_producida : num NA 420 4620 0 10920 ...
## $ Derrame_sobre_agua_limpio : chr "NO" "NO" "NO" "NO" ...
## $ Estado_general : chr "Observaciones tecnicas" NA NA NA ...
## $ Codigo_area : int 1 1 1 1 1 1 1 1 1 3 ...
Instalacion de
Librerias
##
## Attaching package: '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)
library(gridExtra)
##
## Attaching package: 'gridExtra'
## The following object is masked from 'package:dplyr':
##
## combine
library(grid)
library(scales)
Modelo Potencial
Definicion de
variables y valor para predicción
x_var <- "Liberacion_agua_de_produccion_edicion"
y_var <- "Edicion_Recuperacion_agua_producida"
valor_X <- 100000
Filtracion de
datos
datos[[x_var]] <- as.numeric(gsub(",", ".", as.character(datos[[x_var]])))
datos[[y_var]] <- as.numeric(gsub(",", ".", as.character(datos[[y_var]])))
# Filtrado sin límite superior, solo excluye NAs y valores ≤ 0
datos_filtrados <- datos %>%
filter(!is.na(.data[[x_var]]), !is.na(.data[[y_var]])) %>%
filter(.data[[x_var]] > 0, .data[[y_var]] > 0) %>%
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 every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
cat("Datos disponibles para graficar:", nrow(datos_filtrados), "\n")
## Datos disponibles para graficar: 6483
Modelo log-log
modelo_pot <- lm(log10(Y) ~ log10(X), data = datos_filtrados)
a <- 10^coef(modelo_pot)[1]
b <- coef(modelo_pot)[2]
r_valor <- cor(log10(datos_filtrados$X), log10(datos_filtrados$Y))
r2_valor <- summary(modelo_pot)$r.squared
estimado_Y <- a * valor_X^b
Grafica
ggplot(datos_filtrados, aes(x = X, y = Y)) +
geom_point(color = "#FFC125", alpha = 0.6) +
stat_function(fun = function(x) a * x^b, color = "darkgreen", linewidth = 1.2) +
geom_point(aes(x = valor_X, y = estimado_Y),
color = "red", size = 3, shape = 17) +
scale_x_continuous(labels = comma) +
scale_y_continuous(labels = comma) +
labs(
title = paste("Modelo Potencial"),
x = "Liberacion agua de producion",
y = "Recuperacion agua de producion"
) +
theme_minimal()

Tabla Final
resultados <- data.frame(
Parámetro = c("Coeficiente de correlación (R)",
"Coeficiente de determinación (R²)",
"Intercepto logarítmico (a)",
"Exponente (b)",
paste0("Valor X para predicción"),
"Predicción Y"),
Valor = c(round(r_valor, 4),
round(r2_valor, 4),
round(coef(modelo_pot)[1], 4),
round(b, 4),
valor_X,
round(estimado_Y, 2))
)
print(resultados)
## Parámetro Valor
## 1 Coeficiente de correlación (R) 0.9312
## 2 Coeficiente de determinación (R²) 0.8671
## 3 Intercepto logarítmico (a) -0.1440
## 4 Exponente (b) 0.9964
## 5 Valor X para predicción 100000.0000
## 6 Predicción Y 68900.9400