# VARIABLE CUALITATIVA ORDINAL: MES
# 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(readr)
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(gt)
# Evita notación científica
options(scipen = 999)
# 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. IDENTIFICACIÓN DE LOS MESES
# =========================================================
# Conversión de la fecha
datos$fecha_data <- as.Date(datos$fecha_data)
# Eliminación de valores perdidos
fecha_data <- datos$fecha_data[!is.na(datos$fecha_data)]
# Extracción del mes
mes_num <- as.numeric(format(fecha_data, "%m"))
# Nombres de los meses
meses <- c(
"Enero", "Febrero", "Marzo", "Abril",
"Mayo", "Junio", "Julio", "Agosto",
"Septiembre", "Octubre", "Noviembre", "Diciembre"
)
# =========================================================
# 3. TABLA DE DISTRIBUCIÓN DE FRECUENCIAS
# =========================================================
# 3.1. Frecuencia absoluta
ni_m <- sapply(1:12, function(i) sum(mes_num == i))
# 3.2. Frecuencia relativa
hi_m <- ni_m / sum(ni_m) * 100
# =========================================================
# 3.3. ELABORACIÓN DE LA TABLA
# =========================================================
tabla_meses <- data.frame(
Mes = meses,
ni = ni_m,
hi = hi_m
)
# Fila total
tabla_meses_r <- tabla_meses %>%
add_row(
Mes = "Total",
ni = sum(ni_m),
hi = sum(hi_m)
)
# =========================================================
# 3.4. PRESENTACIÓN DE LA TABLA
# =========================================================
tabla_meses_presentacion <- tabla_meses_r %>%
mutate(
hi = round(hi, 4)
)
tabla_meses_presentacion %>%
gt() %>%
tab_header(
title = md("**Tabla Nro. 1**"),
subtitle = md("Distribución mensual de la frecuencia de producción
en pozos de gas y petróleo no convencional")
) %>%
tab_source_note(
source_note = md("Elaborado por: Grupo – Carrera de Petróleos")
) %>%
cols_label(
Mes = "Mes",
ni = "Frecuencia absoluta (ni)",
hi = "Frecuencia relativa (%)"
) %>%
tab_style(
style = cell_text(weight = "bold"),
locations = cells_body(rows = Mes == "Total")
)
| Tabla Nro. 1 |
| Distribución mensual de la frecuencia de producción
en pozos de gas y petróleo no convencional |
| Mes |
Frecuencia absoluta (ni) |
Frecuencia relativa (%) |
| Enero |
34801 |
8.6844 |
| Febrero |
35320 |
8.8139 |
| Marzo |
35414 |
8.8373 |
| Abril |
31232 |
7.7937 |
| Mayo |
31691 |
7.9083 |
| Junio |
32066 |
8.0019 |
| Julio |
32501 |
8.1104 |
| Agosto |
32887 |
8.2067 |
| Septiembre |
33053 |
8.2482 |
| Octubre |
33547 |
8.3714 |
| Noviembre |
33894 |
8.4580 |
| Diciembre |
34326 |
8.5658 |
| Total |
400732 |
100.0000 |
| Elaborado por: Grupo – Carrera de Petróleos |
# =========================================================
# 4. DIAGRAMAS DE BARRAS
# =========================================================
# =========================================================
# 4.1. FRECUENCIA ABSOLUTA
# =========================================================
par(mar = c(9, 5, 4, 2))
barplot(
ni_m,
names.arg = meses,
las = 2,
col = "gray",
main = "Gráfica 1: Distribución mensual de la frecuencia absoluta
de producción en pozos no convencionales",
ylab = "",
xlab = "Mes",
ylim = c(0, max(ni_m) * 1.15),
cex.names = 0.85,
cex.axis = 0.9
)
mtext(
"Frecuencia absoluta (ni)",
side = 2,
line = 3
)

# =========================================================
# 4.2. FRECUENCIA RELATIVA
# =========================================================
par(mar = c(9, 5, 4, 2))
barplot(
hi_m,
names.arg = meses,
las = 2,
col = "lightblue",
main = "Gráfica 2: Distribución mensual de la frecuencia relativa
de producción en pozos no convencionales",
ylab = "",
xlab = "Mes",
ylim = c(0, max(hi_m) * 1.15),
cex.names = 0.85,
cex.axis = 0.9
)
mtext(
"Frecuencia relativa (%)",
side = 2,
line = 3
)

# =========================================================
# 5. DIAGRAMA CIRCULAR
# =========================================================
hi_m_red <- round(hi_m, 4)
colores <- c(
"#66c2a5", "#fc8d62", "#8da0cb", "#e78ac3",
"#a6d854", "#ffd92f", "#e5c494", "#b3b3b3",
"#1b9e77", "#d95f02", "#7570b3", "#e7298a"
)
pie(
hi_m_red,
col = colores,
labels = paste0(hi_m_red, " %"),
main = "Gráfica 3: Distribución porcentual mensual
de producción en pozos no convencionales"
)
legend(
"topright",
legend = meses,
fill = colores,
cex = 0.7,
bty = "n"
)

# =========================================================
# 6. INDICADORES ESTADÍSTICOS
# =========================================================
# 6.1. Moda
indice_moda <- which.max(ni_m)
moda_mes <- meses[indice_moda]
moda_valor <- ni_m[indice_moda]
moda_hi <- round(hi_m[indice_moda], 4)
# =========================================================
# 6.2. TABLA RESUMEN
# =========================================================
tabla_resumen <- data.frame(
Variable = "Mes",
Indicador = "Moda",
Resultado = paste0(
moda_mes,
" (",
moda_valor,
" registros, ",
moda_hi,
"%)"
)
)
tabla_resumen %>%
gt() %>%
tab_header(
title = md("**Tabla Nro. 2**"),
subtitle = md("Indicadores estadísticos de la variable mes
en pozos no convencionales")
) %>%
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 |
| Indicadores estadísticos de la variable mes
en pozos no convencionales |
| Variable analizada |
Indicador estadístico |
Resultado |
| Mes |
Moda |
Marzo (35414 registros, 8.8373%) |
| Elaborado por: Grupo – Carrera de Petróleos |
# =========================================================
# 7. CONCLUSIÓN
# =========================================================
cat(
"La variable Mes corresponde a una variable cualitativa ordinal, ",
"empleada para identificar la distribución temporal de la producción ",
"de pozos de gas y petróleo no convencional. El análisis realizado ",
"permitió identificar que el mes con mayor frecuencia de registros fue ",
moda_mes,
", con un total de ",
moda_valor,
" registros equivalentes al ",
moda_hi,
"% del total analizado."
)
## La variable Mes corresponde a una variable cualitativa ordinal, empleada para identificar la distribución temporal de la producción de pozos de gas y petróleo no convencional. El análisis realizado permitió identificar que el mes con mayor frecuencia de registros fue Marzo , con un total de 35414 registros equivalentes al 8.8373 % del total analizado.