Para iniciar el procesamiento estadístico inferencial, se verifica la estructura global del conjunto de datos correspondientes a los bloques contractuales y arrendamientos de hidrocarburos en el estado de Kansas.
# Selección manual del archivo
datos <- read_csv(file.choose(), show_col_types = FALSE)
cat("Base de datos cargada correctamente.\n")
## Base de datos cargada correctamente.
cat("Total de registros evaluados (filas):", nrow(datos), "\n")
## Total de registros evaluados (filas): 47757
Se realiza el aislamiento de la variable cualitativa ordinal Etapa de Vida (ETAPA), clasificada en tres niveles: Nuevo, Maduro y Antiguo, según los valores registrados en la columna LIFE_STAGE.
Clasificación en tres categorías ordinales:
datos <- datos %>%
mutate(
ETAPA = case_when(
LIFE_STAGE == "NEW" ~ "Nuevo",
LIFE_STAGE == "MATURE" ~ "Maduro",
LIFE_STAGE == "OLD" ~ "Antiguo",
TRUE ~ "No registrado"
)
) %>%
filter(ETAPA != "No registrado")
Se establece el orden lógico de la variable cualitativa ordinal Etapa de Vida, respetando la progresión natural del ciclo de vida de un pozo: desde su etapa inicial hasta su etapa final. Este ordenamiento es fundamental para garantizar una correcta interpretación estadística y visual de los resultados.
# Definir el orden lógico de las categorías (Nuevo → Maduro → Antiguo)
orden_logico <- c("Nuevo", "Maduro", "Antiguo")
# Aplicar factor ordenado a la variable ETAPA
datos <- datos %>%
mutate(
ETAPA = factor(ETAPA, levels = orden_logico, ordered = TRUE)
)
# Verificar que el orden fue aplicado correctamente
cat("Orden de categorías establecido:\n")
## Orden de categorías establecido:
cat(paste(levels(datos$ETAPA), collapse = " → "), "\n")
## Nuevo → Maduro → Antiguo
cat("\nDistribución por nivel:\n")
##
## Distribución por nivel:
print(table(datos$ETAPA))
##
## Nuevo Maduro Antiguo
## 11615 20939 15203
Se calcula la distribución de frecuencias absolutas (\(n_i\)) y porcentuales (\(h_i\%\)) para las tres categorías de la variable cualitativa ordinal, respetando la estructura de tres columnas estipulada por la cátedra.
# 1. Frecuencias absolutas
frecuencias_base <- datos %>%
group_by(Etapa_Vida = ETAPA, .drop = FALSE) %>%
summarise(Frecuencia_ni = n(), .groups = "drop") %>%
arrange(Etapa_Vida)
# 2. Porcentaje
tabla_final <- frecuencias_base %>%
mutate(Porcentaje_hi = (Frecuencia_ni / sum(Frecuencia_ni)) * 100)
# 3. Fila TOTAL
total_fila <- data.frame(
Etapa_Vida = "TOTAL",
Frecuencia_ni = sum(tabla_final$Frecuencia_ni),
Porcentaje_hi = sum(tabla_final$Porcentaje_hi)
)
# 4. Formateo — se convierte a character para evitar conflicto de tipos
resultado <- bind_rows(
tabla_final %>% mutate(Etapa_Vida = as.character(Etapa_Vida),
Porcentaje_hi = sprintf("%.2f", Porcentaje_hi)),
total_fila %>% mutate(Porcentaje_hi = sprintf("%.2f", Porcentaje_hi))
)
# 5. Tabla final con gt (mismo estilo que tabla de indicadores)
resultado %>%
rename(
"Etapa de Vida" = Etapa_Vida,
"Frecuencia (ni)" = Frecuencia_ni,
"Porcentaje (hi%)" = Porcentaje_hi
) %>%
gt() %>%
tab_header(
title = md("**Tabla N°1: Distribución de Frecuencias**"),
subtitle = md("*Variable Cualitativa Ordinal: Etapa de Vida de los Pozos*")
) %>%
cols_label(
"Etapa de Vida" = md("**Etapa de Vida**"),
"Frecuencia (ni)" = md("**Frecuencia (ni)**"),
"Porcentaje (hi%)" = md("**Porcentaje (hi%)**")
) %>%
tab_style(
style = list(
cell_fill(color = "#2C2C2C"),
cell_text(color = "white", weight = "bold")
),
locations = cells_column_labels()
) %>%
tab_style(
style = cell_fill(color = "#F5F5F5"),
locations = cells_body(rows = seq(1, nrow(resultado), by = 2))
) %>%
tab_style(
style = list(
cell_fill(color = "#D6D6D6"),
cell_text(weight = "bold")
),
locations = cells_body(
rows = `Etapa de Vida` == "TOTAL",
columns = everything()
)
) %>%
tab_source_note(source_note = md("*Autor: Fernando Almeida*")) %>%
tab_options(
table.width = pct(60),
heading.title.font.size = px(16),
heading.subtitle.font.size = px(12),
table.font.size = px(13),
data_row.padding = px(6)
)
| Tabla N°1: Distribución de Frecuencias | ||
| Variable Cualitativa Ordinal: Etapa de Vida de los Pozos | ||
| Etapa de Vida | Frecuencia (ni) | Porcentaje (hi%) |
|---|---|---|
| Nuevo | 11615 | 24.32 |
| Maduro | 20939 | 43.84 |
| Antiguo | 15203 | 31.83 |
| TOTAL | 47757 | 100.00 |
| Autor: Fernando Almeida | ||
Se presentan tres gráficas en escala de grises que permiten analizar visualmente la distribución de la variable cualitativa ordinal Etapa de Vida de los Pozos.
par(mar = c(8, 6, 5, 2))
barplot(tabla_final$Frecuencia_ni,
main = "",
xlab = "",
ylab = "",
col = c("gray30", "gray60", "gray85"),
ylim = c(0, max(tabla_final$Frecuencia_ni) * 1.15),
names.arg = as.character(tabla_final$Etapa_Vida),
cex.names = 0.9,
las = 2)
mtext("Frecuencia (ni)", side = 2, line = 4.5, cex = 1, font = 1)
mtext("Etapa de Vida", side = 1, line = 6, cex = 1)
mtext("Gráfica N°1: Distribución de Frecuencias Absolutas por Etapa de Vida de los Pozos",
side = 3, line = 2, adj = 0.5, cex = 0.9, font = 2)
par(mar = c(8, 6, 5, 2))
bp2 <- barplot(tabla_final$Porcentaje_hi,
main = "",
xlab = "",
ylab = "Porcentaje %",
col = c("gray30", "gray60", "gray85"),
ylim = c(0, max(tabla_final$Porcentaje_hi) * 1.2),
names.arg = as.character(tabla_final$Etapa_Vida),
cex.names = 0.9,
las = 2)
mtext("Etapa de Vida", side = 1, line = 6, cex = 1)
mtext("Gráfica N°2: Distribución Porcentual por Etapa de Vida de los Pozos",
side = 3, line = 2, adj = 0.5, cex = 0.9, font = 2)
text(x = bp2,
y = tabla_final$Porcentaje_hi,
labels = paste0(round(tabla_final$Porcentaje_hi, 2), "%"),
pos = 3, cex = 0.9, col = "black")
par(mar = c(5, 2, 4, 10), xpd = TRUE)
colores_grises <- c("gray30", "gray60", "gray85")
pie(tabla_final$Porcentaje_hi,
main = "",
radius = 1,
labels = paste0(round(tabla_final$Porcentaje_hi, 2), "%"),
col = colores_grises,
cex = 0.9)
mtext("Gráfica N°3: Distribución Porcentual por Etapa de Vida de los Pozos",
side = 3, line = 2, adj = 0.5, cex = 0.9, font = 2)
legend(x = 1.2,
y = 1,
legend = as.character(tabla_final$Etapa_Vida),
fill = colores_grises,
cex = 0.85,
title = "Etapa de Vida",
bty = "n")
Para la variable cualitativa ordinal Etapa de Vida, los indicadores numéricos de tendencia central se limitan a la moda, ya que la media, mediana, varianza y demás medidas de dispersión no aplican para este tipo de variable.
# Moda: categoría con mayor frecuencia
moda_etapa <- as.character(
tabla_final$Etapa_Vida[which.max(tabla_final$Frecuencia_ni)]
)
# Tabla de indicadores en formato largo (Variable | Valor)
tabla_indicadores <- data.frame(
Indicador = c(
"Variable",
"Tipo de variable",
"Categorías (Rango)",
"Moda (Mo)",
"Media (X\u0304)",
"Mediana (Me)",
"Varianza (V)",
"Desv. Estándar (Sd)",
"Coef. Variación (CV%)",
"Asimetría (As)",
"Curtosis (K)"
),
Valor = c(
"Etapa de Vida",
"Cualitativa Ordinal",
"Nuevo \u2192 Maduro \u2192 Antiguo",
moda_etapa,
"\u2014",
"\u2014",
"\u2014",
"\u2014",
"\u2014",
"\u2014",
"\u2014"
)
)
# Tabla GT de indicadores
tabla_indicadores %>%
gt() %>%
tab_header(
title = md("**Tabla N°2: Indicadores Estadísticos**"),
subtitle = md("*Variable Cualitativa Ordinal: Etapa de Vida de los Pozos*")
) %>%
cols_label(
Indicador = md("**Indicador**"),
Valor = md("**Valor**")
) %>%
tab_style(
style = list(
cell_fill(color = "#2C2C2C"),
cell_text(color = "white", weight = "bold")
),
locations = cells_column_labels()
) %>%
tab_style(
style = cell_fill(color = "#F5F5F5"),
locations = cells_body(rows = seq(1, nrow(tabla_indicadores), by = 2))
) %>%
tab_style(
style = list(
cell_fill(color = "#D6D6D6"),
cell_text(weight = "bold")
),
locations = cells_body(
rows = Indicador == "Moda (Mo)",
columns = everything()
)
) %>%
tab_style(
style = cell_text(style = "italic", color = "gray40"),
locations = cells_body(
rows = Valor == "\u2014",
columns = Valor
)
) %>%
tab_source_note(source_note = md("*Autor: Fernando Almeida*")) %>%
tab_options(
table.width = pct(60),
heading.title.font.size = px(16),
heading.subtitle.font.size = px(12),
table.font.size = px(13),
data_row.padding = px(6)
)
| Tabla N°2: Indicadores Estadísticos | |
| Variable Cualitativa Ordinal: Etapa de Vida de los Pozos | |
| Indicador | Valor |
|---|---|
| Variable | Etapa de Vida |
| Tipo de variable | Cualitativa Ordinal |
| Categorías (Rango) | Nuevo → Maduro → Antiguo |
| Moda (Mo) | Maduro |
| Media (X̄) | — |
| Mediana (Me) | — |
| Varianza (V) | — |
| Desv. Estándar (Sd) | — |
| Coef. Variación (CV%) | — |
| Asimetría (As) | — |
| Curtosis (K) | — |
| Autor: Fernando Almeida | |
La variable Etapa de vida fluctúa entre (Nuevo — Maduro — Antiguo) y presenta que su valor más frecuente es Maduro, con una participación destacada en la muestra.
Autor: Fernando Almeida