1 Configuración y Carga de Datos

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

2 Extraer Variable

Se realiza el aislamiento de la variable cualitativa ordinal Nivel de Profundidad (PROFUNDIDAD), clasificada en tres niveles: Superficial, Medio y Profundo, según los valores registrados en la columna DEPTH_LEVEL.

Clasificación en tres categorías ordinales:

datos <- datos %>%
  mutate(
    PROFUNDIDAD = case_when(
      DEPTH_LEVEL == "SHALLOW" ~ "Superficial",
      DEPTH_LEVEL == "MEDIUM"  ~ "Medio",
      DEPTH_LEVEL == "DEEP"    ~ "Profundo",
      TRUE                     ~ "No registrado"
    )
  ) %>%
  filter(PROFUNDIDAD != "No registrado")

3 Tabla de Distribución de Frecuencias

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 %>%
  mutate(PROFUNDIDAD = factor(PROFUNDIDAD, levels = c("Superficial", "Medio", "Profundo"))) %>%
  group_by(Nivel_Profundidad = PROFUNDIDAD, .drop = FALSE) %>%
  summarise(Frecuencia_ni = n(), .groups = "drop") %>%
  arrange(Nivel_Profundidad)

# 2. Porcentaje
tabla_final <- frecuencias_base %>%
  mutate(Porcentaje_hi = (Frecuencia_ni / sum(Frecuencia_ni)) * 100)

# 3. Fila TOTAL
total_fila <- data.frame(
  Nivel_Profundidad = "TOTAL",
  Frecuencia_ni     = sum(tabla_final$Frecuencia_ni),
  Porcentaje_hi     = sum(tabla_final$Porcentaje_hi)
)

# 4. Formateo
resultado <- bind_rows(
  tabla_final %>% mutate(Porcentaje_hi = sprintf("%.2f", Porcentaje_hi)),
  total_fila  %>% mutate(Porcentaje_hi = sprintf("%.2f", Porcentaje_hi))
)

# 5. Tabla final
kable(
  resultado,
  caption   = "Tabla N°1 de Distribución de Frecuencias de la Variable Cualitativa Ordinal: Nivel de Profundidad",
  col.names = c("Nivel de Profundidad", "Frecuencia (ni)", "Porcentaje (hi%)"),
  align     = c("l", "c", "c")
)
Tabla N°1 de Distribución de Frecuencias de la Variable Cualitativa Ordinal: Nivel de Profundidad
Nivel de Profundidad Frecuencia (ni) Porcentaje (hi%)
Superficial 15986 33.47
Medio 15852 33.19
Profundo 15919 33.33
TOTAL 47757 100.00

4 Gráfico de Distribución de Frecuencias

Se presenta la distribución gráfica de las frecuencias absolutas para la variable cualitativa ordinal Nivel de Profundidad, permitiendo identificar visualmente la categoría predominante en el conjunto de datos.

par(mar = c(10, 6, 5, 2))
barplot(tabla_final$Frecuencia_ni,
        main = "",
        xlab = "",
        ylab = "",
        col  = "#AFA9EC",
        ylim = c(0, max(tabla_final$Frecuencia_ni) * 1.1),
        names.arg = as.character(tabla_final$Nivel_Profundidad),
        cex.names = 0.9,
        las = 2)

mtext("Frecuencia (ni)", side = 2, line = 4.5, cex = 1, font = 1)
mtext("Nivel de Profundidad", side = 1, line = 8, cex = 1)

mtext("Gráfica N°1: Distribución de Frecuencias por Nivel de Profundidad de los Pozos",
      side = 3,
      line = 2,
      adj  = 0.5,
      cex  = 0.9,
      font = 2)


Autor: Grupo 6