# VARIABLE CUALITATIVA NOMINAL: TIPO DE POZO
# Proyecto: Producción de pozos de gas y petróleo no convencional
# Grupo – Carrera de Petróleos
# 2026

# =========================================================
# 1. CARGA Y PREPARACIÓN DE LOS DATOS
# =========================================================

library(dplyr)
## 
## 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(readr)
library(gt)

# Lectura del archivo CSV

datos <- read_delim(
  "produccin-de-pozos-de-gas-y-petrleo-no-convencional.csv",
  delim = ";"
)
## Warning: One or more parsing issues, call `problems()` on your data frame for details,
## e.g.:
##   dat <- vroom(...)
##   problems(dat)
## Rows: 400759 Columns: 40
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ";"
## chr  (27): idempresa, prod_pet, prod_gas, prod_agua, tef, tipoextraccion, ti...
## dbl  (10): anio, mes, idpozo, iny_agua, iny_gas, iny_co2, iny_otro, vida_uti...
## lgl   (2): rectificado, habilitado
## dttm  (1): fechaingreso
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
# =========================================================
# 2. CONSOLIDACIÓN DE LAS CATEGORÍAS DE POZO
# =========================================================

datos <- datos %>%
  mutate(
    tipopozo_consol = case_when(
      
      tipopozo %in% c("Gas") ~
        "Pozo de gas",
      
      tipopozo %in% c("Petróleo", "Oil") ~
        "Pozo petrolero",
      
      tipopozo %in% c("Gas y petróleo", "Mixto") ~
        "Pozo mixto",
      
      tipopozo %in% c("Inyección") ~
        "Pozo de inyección",
      
      tipopozo %in% c("Otro", "Desconocido", "NA") ~
        "Otros tipos de pozo",
      
      TRUE ~ tipopozo
    )
  )

# =========================================================
# 3. TABLA DE DISTRIBUCIÓN DE FRECUENCIAS
# =========================================================

# 3.1. Cálculo de frecuencias

TDFPozo <- datos %>%
  filter(!is.na(tipopozo_consol)) %>%
  count(tipopozo_consol, name = "ni") %>%
  arrange(ni) %>%
  mutate(
    hi = (ni / sum(ni)) * 100
  )

# =========================================================
# 3.2. TABLA DE FRECUENCIAS
# =========================================================

TDFPozo_total <- TDFPozo %>%
  add_row(
    tipopozo_consol = "Total",
    ni = sum(TDFPozo$ni),
    hi = sum(TDFPozo$hi)
  )

TDFPozo_total
## # A tibble: 7 × 3
##   tipopozo_consol       ni        hi
##   <chr>              <int>     <dbl>
## 1 Inyección de Gas      34   0.00850
## 2 Inyección de Agua     56   0.0140 
## 3 Sumidero             624   0.156  
## 4 Otro tipo          26977   6.74   
## 5 Petrolífero       153729  38.4    
## 6 Gasífero          218738  54.7    
## 7 Total             400158 100
# =========================================================
# 3.3. PRESENTACIÓN DE LA TABLA
# =========================================================

tabla_presentacion <- TDFPozo_total %>%
  mutate(
    hi = round(hi, 4)
  )

tabla_presentacion %>%
  gt() %>%
  tab_header(
    title = md("**Tabla Nro. 1**"),
    subtitle = md("Distribución de frecuencias de los tipos de pozo
                  utilizados en la producción de gas y petróleo
                  no convencional")
  ) %>%
  cols_label(
    tipopozo_consol = "Tipo de pozo",
    ni = "Frecuencia absoluta (ni)",
    hi = "Frecuencia relativa (%)"
  ) %>%
  tab_source_note(
    source_note = md("Elaborado por: Grupo – Carrera de Petróleos")
  ) %>%
  tab_style(
    style = cell_text(weight = "bold"),
    locations = cells_body(rows = tipopozo_consol == "Total")
  )
Tabla Nro. 1
Distribución de frecuencias de los tipos de pozo utilizados en la producción de gas y petróleo no convencional
Tipo de pozo Frecuencia absoluta (ni) Frecuencia relativa (%)
Inyección de Gas 34 0.0085
Inyección de Agua 56 0.0140
Sumidero 624 0.1559
Otro tipo 26977 6.7416
Petrolífero 153729 38.4171
Gasífero 218738 54.6629
Total 400158 100.0000
Elaborado por: Grupo – Carrera de Petróleos
# =========================================================
# DATOS PARA GRÁFICOS
# =========================================================

tabla_graficos <- tabla_presentacion %>%
  filter(tipopozo_consol != "Total") %>%
  arrange(ni)

# =========================================================
# 4. GRÁFICOS DE BARRAS
# =========================================================

# 4.1. Frecuencia absoluta

par(mar = c(12, 5, 4, 2))

barplot(
  tabla_graficos$ni,
  names.arg = tabla_graficos$tipopozo_consol,
  las = 2,
  col = "steelblue",
  main = "Gráfica 1: Frecuencia absoluta de los tipos
de pozo en la producción no convencional",
  ylab = "Número de registros",
  xlab = "",
  ylim = c(0, max(tabla_graficos$ni) * 1.15),
  cex.names = 0.75,
  cex.axis = 0.9
)

mtext(
  "Tipo de pozo",
  side = 1,
  line = 10
)

# =========================================================
# 4.2. Frecuencia relativa
# =========================================================

par(mar = c(12, 5, 4, 2))

barplot(
  tabla_graficos$hi,
  names.arg = tabla_graficos$tipopozo_consol,
  las = 2,
  col = "skyblue",
  main = "Gráfica 2: Frecuencia relativa de los tipos
de pozo en la producción no convencional",
  ylab = "Porcentaje (%)",
  xlab = "",
  ylim = c(0, max(tabla_graficos$hi) * 1.15),
  cex.names = 0.75,
  cex.axis = 0.9
)

mtext(
  "Tipo de pozo",
  side = 1,
  line = 10
)

# =========================================================
# 5. DIAGRAMA CIRCULAR
# =========================================================

par(mar = c(5, 4, 4, 10), xpd = TRUE)

colores <- c(
  "#1f78b4",
  "#33a02c",
  "#e31a1c",
  "#ff7f00",
  "#6a3d9a"
)

pie(
  tabla_graficos$hi,
  labels =NA,
  col = colores,
  main = "Gráfica 3: Distribución porcentual de los tipos
de pozo en la producción no convencional"
)

legend(
  x = 1.25,
  y = 0,
  legend = paste0(
    tabla_graficos$tipopozo_consol,
    " (", round(tabla_graficos$hi, 4), "%)"
  ),
  fill = colores,
  cex = 0.8,
  bty = "n"
)

par(xpd = FALSE)

# =========================================================
# 6. INDICADORES ESTADÍSTICOS
# =========================================================

# 6.1. Moda

indice_moda <- which.max(tabla_graficos$ni)

moda_categoria <- tabla_graficos$tipopozo_consol[indice_moda]
moda_ni <- tabla_graficos$ni[indice_moda]
moda_hi <- round(tabla_graficos$hi[indice_moda], 4)

# =========================================================
# 6.2. TABLA RESUMEN DE INDICADORES
# =========================================================

tabla_resumen <- data.frame(
  Variable = "Tipo de pozo",
  Indicador = "Moda",
  Resultado = paste0(
    moda_categoria,
    " (", moda_ni,
    " registros, ",
    moda_hi, "%)"
  )
)

tabla_resumen %>%
  gt() %>%
  tab_header(
    title = md("**Tabla Nro. 2**"),
    subtitle = md("Indicador estadístico del tipo de pozo
                  en la producción no convencional")
  ) %>%
  cols_label(
    Variable = "Variable analizada",
    Indicador = "Indicador estadístico",
    Resultado = "Resultado"
  ) %>%
  tab_source_note(
    source_note = md("Elaborado por: Grupo – Carrera de Petróleos")
  ) %>%
  opt_all_caps() %>%
  tab_style(
    style = cell_text(weight = "bold"),
    locations = cells_body()
  )
Tabla Nro. 2
Indicador estadístico del tipo de pozo en la producción no convencional
Variable analizada Indicador estadístico Resultado
Tipo de pozo Moda Gasífero (218738 registros, 54.6629%)
Elaborado por: Grupo – Carrera de Petróleos
# =========================================================
# 7. CONCLUSIÓN
# =========================================================

cat(
  "El análisis estadístico de la variable cualitativa nominal ",
  "'tipo de pozo' permitió identificar la categoría más ",
  "frecuente dentro de la base de datos analizada. La moda corresponde a ",
  moda_categoria,
  ", con un total de ", moda_ni,
  " registros equivalentes al ",
  moda_hi,
  "% del total de observaciones."
)
## El análisis estadístico de la variable cualitativa nominal  'tipo de pozo' permitió identificar la categoría más  frecuente dentro de la base de datos analizada. La moda corresponde a  Gasífero , con un total de  218738  registros equivalentes al  54.6629 % del total de observaciones.