Modelo de Distribución de Probabilidades por Grupos Geológicos Finales
setwd("C:/Users/Usuario/Desktop/Nueva carpeta")
library(readxl)
library(dplyr)
library(gt)
datos <- read_excel("tabela_de_pocos_janeiro_2018.xlsx")
Se importan los datos originales de pozos petrolíferos y se verifica la estructura de las variables para garantizar su correcta lectura.
Se construye la tabla de frecuencias absolutas de la variable Geología grupo final, identificando la presencia de cada unidad geológica.
Las unidades geológicas se reclasifican en grupos mayores según su naturaleza geológica, reduciendo la dispersión categórica sin pérdida de información.
library(dplyr)
TDFGrupos_Finales$Grupo_Geologico <- ifelse(
TDFGrupos_Finales$Geologia %in% c(
"Apodi","Campos","Camamu","Espírito Santo","Sergipe","Lagoa Feia",
"Macaé","Guaratiba","Almada","Humberto de Campos","Balsas",
"Coruripe","Santo Amaro","Frade","Nativo","Perucaba","Areia Branca",
"Canindé","Marimari","Estância","Massacará","Brotas"
), "Cuencas sedimentarias",
ifelse(TDFGrupos_Finales$Geologia %in% c(
"Bambuí","Itararé","Serra Grande","Paranoá","Macaúbas"
), "Formaciones",
ifelse(TDFGrupos_Finales$Geologia %in% c(
"Espinhaço"
), "Provincias",
ifelse(TDFGrupos_Finales$Geologia %in% c(
"Barra Nova","Camburi","Itamambuca","Ilhas","Piaçabuçu"
), "Ambientes costeros",
ifelse(TDFGrupos_Finales$Geologia %in% c(
"Purus","Tefé","Trombetas","Rio do Peixe","Rio Ivaí","Urupadi"
), "Sistemas fluviales",
ifelse(TDFGrupos_Finales$Geologia %in% c(
"Pará","Paraná"
), "Regiones administrativas",
"Otros/Locales"
))))))
head(TDFGrupos_Finales)
## Geologia Freq Grupo_Geologico
## 1 25521 Otros/Locales
## 2 Afligidos 17 Otros/Locales
## 3 Agulha 7 Otros/Locales
## 4 Almada 6 Cuencas sedimentarias
## 5 Apodi 1144 Cuencas sedimentarias
## 6 Areia Branca 272 Cuencas sedimentarias
Se calculan la frecuencia absoluta (ni) y la frecuencia relativa (hi) para cada grupo geológico, permitiendo el análisis comparativo.
TDFGrupos_Finales$Freq <- as.numeric(TDFGrupos_Finales$Freq)
TDFGrupos_Finales1 <- TDFGrupos_Finales %>%
group_by(Grupo_Geologico) %>%
summarise(
ni = sum(Freq),
hi = round(ni / sum(TDFGrupos_Finales$Freq) * 100, 2))
TDFGrupos_Finales1 <- as.data.frame(TDFGrupos_Finales1)
TDFGrupos_Finales1
## Grupo_Geologico ni hi
## 1 Ambientes costeros 294 0.99
## 2 Cuencas sedimentarias 3601 12.18
## 3 Formaciones 35 0.12
## 4 Otros/Locales 25555 86.41
## 5 Provincias 13 0.04
## 6 Regiones administrativas 2 0.01
## 7 Sistemas fluviales 75 0.25
Se incorpora una fila de totales para verificar la consistencia de los resultados y confirmar el 100 % de participación relativa.
TDFGrupos_Finales1$fi <- TDFGrupos_Finales1$ni / sum(TDFGrupos_Finales1$ni)
TDFGrupos_Finales1 <- TDFGrupos_Finales1 [, c("Grupo_Geologico", "ni", "hi","fi")]
total_ni <- sum(TDFGrupos_Finales1$ni)
total_hi <- 100
total_fi <- sum(TDFGrupos_Finales1$fi)
TDFGrupos_Finales1.1 <- rbind(TDFGrupos_Finales1, data.frame( Grupo_Geologico = "Total",
ni = total_ni,
hi = total_hi,
fi = total_fi))
print(TDFGrupos_Finales1.1)
## Grupo_Geologico ni hi fi
## 1 Ambientes costeros 294 0.99 9.940828e-03
## 2 Cuencas sedimentarias 3601 12.18 1.217582e-01
## 3 Formaciones 35 0.12 1.183432e-03
## 4 Otros/Locales 25555 86.41 8.640744e-01
## 5 Provincias 13 0.04 4.395604e-04
## 6 Regiones administrativas 2 0.01 6.762468e-05
## 7 Sistemas fluviales 75 0.25 2.535926e-03
## 8 Total 29575 100.00 1.000000e+00
Los resultados se presentan en una tabla estadística formateada, facilitando la lectura e interpretación de las frecuencias.
library(gt)
gt(TDFGrupos_Finales1.1) %>%
tab_header(
title = md("**Tabla N°1: DISTRIBUCIÓN DE FRECUENCIAS DE POZOS PETROLEROS DE BRASIL**"),
subtitle = "Distibución de grupos geológicos de los pozos petrolíferos en Brasil") %>%
tab_spanner(
label = md("**Frecuencia Relativa**"),
columns = c(hi, fi)
) %>%
cols_label(
ni = md("**ni**"),
hi = md("Porcentual (%)"),
fi = md("Fracción")
) %>%
fmt_number(columns = hi, decimals = 2) %>%
fmt_number(columns = fi, decimals = 4) %>%
cols_align(align = "center", columns = everything()) %>%
tab_style(
style = list(cell_fill(color = "#2E4053"),
cell_text(color = "white", weight = "bold")),
locations = cells_title()
) %>%
tab_style(
style = list(cell_fill(color = "#F2F3F4"),
cell_text(weight = "bold", color = "#2E4053")),
locations = cells_column_labels()
) %>%
tab_style(
style = list(cell_fill(color = "#2E4053"),
cell_text(color = "white", weight = "bold")),
locations = cells_column_spanners()
) %>%
tab_style(
style = list(cell_fill(color = "#D5D8DC"),
cell_text(weight = "bold", color = "#2E4053")),
locations = cells_body(rows = nrow(TDFGrupos_Finales1.1))
) %>%
tab_options(
table.border.top.color = "#2E4053",
table.border.bottom.color = "#2E4053",
column_labels.border.bottom.color = "#2E4053",
data_row.padding = px(6),
table.font.size = px(13)
)
| Tabla N°1: DISTRIBUCIÓN DE FRECUENCIAS DE POZOS PETROLEROS DE BRASIL | |||
| Distibución de grupos geológicos de los pozos petrolíferos en Brasil | |||
| Grupo_Geologico | ni |
Frecuencia Relativa
|
|
|---|---|---|---|
| Porcentual (%) | Fracción | ||
| Ambientes costeros | 294 | 0.99 | 0.0099 |
| Cuencas sedimentarias | 3601 | 12.18 | 0.1218 |
| Formaciones | 35 | 0.12 | 0.0012 |
| Otros/Locales | 25555 | 86.41 | 0.8641 |
| Provincias | 13 | 0.04 | 0.0004 |
| Regiones administrativas | 2 | 0.01 | 0.0001 |
| Sistemas fluviales | 75 | 0.25 | 0.0025 |
| Total | 29575 | 100.00 | 1.0000 |
Representa la cantidad de pozos en cada grupo geológico sin considerar el total nacional.
TDFGrupos_Finales2 <- TDFGrupos_Finales1.1[TDFGrupos_Finales1.1$Grupo_Geologico != "Total", ]
par(mar = c(9, 4, 4, 2))
barplot(TDFGrupos_Finales2$ni,
main = "Gráfica N°1: Distribución en orden de cantidad de pozos petrolíferos por grupo geológico",
ylab = "Cantidad",
col = "#263238", names.arg = TDFGrupos_Finales2$Grupo_Geologico,
las = 2, cex.names = 0.8, cex.axis = 0.8, cex.main = 1)
mtext("Grupo", side = 1, line = 7)
Expresa la participación porcentual de cada grupo en el conjunto analizado.
par(mar = c(9, 4, 4, 2))
barplot(TDFGrupos_Finales2$hi,
main = "Gráfica N°2: Distribución porcentual de pozos petrolíferos por grupo geológico",
ylab = "Porcentaje",
col = "#263238", names.arg = TDFGrupos_Finales2$Grupo_Geologico,
las = 2, cex.names = 0.8, cex.axis = 0.8, cex.main = 1)
mtext("Grupo", side = 1, line = 7)
P_GRUPOFINAL <- TDFGrupos_Finales2$ni / sum(TDFGrupos_Finales2$ni)
par(mar = c(9, 4, 4, 2))
barplot(P_GRUPOFINAL,
main = "Gráfica N°3: Distribución de Probabilidad según el Grupo Geológico",
ylab = "Probabilidad",
col = "#2E4053", names.arg = TDFGrupos_Finales2$Grupo_Geologico,
las = 2, cex.names = 0.8, cex.axis = 0.8, cex.main = 1)
mtext("Grupo", side = 1, line = 8, adj = 0.5, cex = 1.2)
¿Cuál es la probalidad de qué el Grupo Geológico sea Ambiente costero?
x <- round(
(TDFGrupos_Finales2$ni[TDFGrupos_Finales2$Grupo_Geologico == "Ambientes costeros"] /
sum(TDFGrupos_Finales2$ni)) * 100, 1)
print(paste("La probabilidad es de:", x, "%"))
## [1] "La probabilidad es de: 1 %"
La probabilidad de que un pozo petrolero pertenezca al grupo geológico “Ambientes costeros” es del 1 %, lo que indica una baja frecuencia dentro del total de pozos analizados.
¿Cuántos pozos petroleros pueden poseer un Grupo Geológico de tipo Ambiente costero?
p <- x / 100
n <- 1000
cantidad_esperada <- n * p
Operador_objetivo <- "Ambiente costero"
cat("Para n =", n, "pozos, la cantidad esperada de Grupo Geológico de Ambiente costero es,", Operador_objetivo, "=", round(cantidad_esperada, 2), "\n")
## Para n = 1000 pozos, la cantidad esperada de Grupo Geológico de Ambiente costero es, Ambiente costero = 10
Con una probabilidad estimada, se espera que de 1000 pozos petroleros aproximadamente 10 presenten un grupo geológico de tipo Ambiente costero.