1. Configuración y Carga de Datos

datos_originales <- readr::read_csv2(
  "C:/Users/cordo/OneDrive/Desktop/ESTADISITCA/Oil__Gas____Other_Regulated_Wells__Beginning_1860.csv",
  locale = readr::locale(encoding = "Latin1")
)

2. Extracción y Limpieza de la Variable

datos_limpios <- datos_originales %>%
  select(`Original Well Type`) %>%
  filter(!is.na(`Original Well Type`) & `Original Well Type` != "" & `Original Well Type` != " ") %>%
  mutate(`Original Well Type` = str_to_title(trimws(`Original Well Type`))) 

3. Identificación de la Variable

  • Nombre de la Variable: ORIGINAL_WELL_TYPE (Tipo original del pozo)
  • Tipo de Variable: Cualitativa Nominal (Categorías sin orden de jerarquía intrínseco).

4. Tabla de Distribución de Frecuencias (TDF)

tdf_owt <- datos_limpios %>%
  group_by(`Original Well Type`) %>%
  summarise(Fi = n(), .groups = 'drop') %>%
  arrange(desc(Fi)) %>%
  mutate(hi = Fi / sum(Fi), Pi = hi * 100)

total_observaciones <- sum(tdf_owt$Fi)
top_owt <- tdf_owt %>% slice_max(order_by = Fi, n = 10)
otros_owt <- tdf_owt %>% slice(11:n()) %>% 
  summarise(`Original Well Type` = "Otros", Fi = sum(Fi), hi = sum(hi), Pi = sum(Pi))

tdf_presentacion <- bind_rows(top_owt, otros_owt) %>%
  mutate(Fi_ac = cumsum(Fi), hi_ac = cumsum(hi))

tdf_presentacion %>%
  rename(`Tipo Original (Original Well Type)` = `Original Well Type`, `Frec. Absoluta (Fi)` = Fi, `Frec. Relativa (hi)` = hi, `Porcentaje (%)` = Pi, `Frec. Abs. Acumulada (Fi_ac)` = Fi_ac, `Frec. Rel. Acumulada (hi_ac)` = hi_ac) %>%
  kbl(
    caption = "<div style='color:#1D4E73; font-family:\"Lora\", serif; font-weight:bold; font-size:16px; text-align:center;'>TABLA 1. Distribución de Frecuencias: Original Well Type</div>",
    digits = 4, align = "lccccc"
  ) %>%
  kable_styling(bootstrap_options = c("hover", "striped")) %>%
  row_spec(0, background = "#1D4E73", color = "white", bold = TRUE, extra_css = "font-family: 'Lora', serif;") %>%
  row_spec(1:nrow(tdf_presentacion), extra_css = "font-family: 'Lora', serif;") %>%
  footnote(general = paste("Total de registros:", comma(total_observaciones)))
TABLA 1. Distribución de Frecuencias: Original Well Type
Tipo Original (Original Well Type) Frec. Absoluta (Fi) Frec. Relativa (hi) Porcentaje (%) Frec. Abs. Acumulada (Fi_ac) Frec. Rel. Acumulada (hi_ac)
Nl 39029 0.8238 82.3762 39029 0.8238
Od 3920 0.0827 8.2737 42949 0.9065
Gd 2069 0.0437 4.3669 45018 0.9502
Gw 1008 0.0213 2.1275 46026 0.9714
Br 278 0.0059 0.5868 46304 0.9773
Sg 255 0.0054 0.5382 46559 0.9827
Ge 243 0.0051 0.5129 46802 0.9878
Th 198 0.0042 0.4179 47000 0.9920
Iw 180 0.0038 0.3799 47180 0.9958
St 119 0.0025 0.2512 47299 0.9983
Otros 80 0.0017 0.1689 47379 1.0000
Note:
Total de registros: 47,379

5. Representación Gráfica

paleta_base <- c("#1D4E73", "#2870A4", "#3392D5", "#56A9E2", "#7ABDEF", "#A3D2F7", "#CBE4FA", "#DCEEFC", "#EAF4FD", "#F2F7FB", "#BDC5C8")
n_cat <- nrow(tdf_presentacion)
paleta_final <- colorRampPalette(paleta_base)(n_cat)

datos_ordenados <- tdf_presentacion %>%
  mutate(`Original Well Type` = factor(`Original Well Type`, levels = c(setdiff(`Original Well Type`, "Otros"), "Otros")))

5.1 Gráfica N°1 — Barras (Frecuencia Absoluta)

ggplot(datos_ordenados, aes(x = `Original Well Type`, y = Fi, fill = `Original Well Type`)) +
  geom_bar(stat = "identity", color = "#1D4E73", width = 0.7) +
  geom_text(aes(label = comma(Fi)), vjust = -0.5, fontface = "bold", family = "Lora") +
  scale_fill_manual(values = paleta_final) +
  labs(title = "Gráfica N°1: Frecuencia Absoluta", x = "Tipo Original", y = "Fi") +
  theme_minimal() + theme(plot.title = element_text(family = "Lora", face = "bold", color = "#1D4E73", hjust = 0.5))

5.2 Gráfica N°2 — Barras (Porcentaje)

ggplot(datos_ordenados, aes(x = `Original Well Type`, y = Pi, fill = `Original Well Type`)) +
  geom_bar(stat = "identity", color = "#1D4E73", width = 0.7) +
  geom_text(aes(label = paste0(round(Pi, 1), "%")), vjust = -0.5, fontface = "bold", family = "Lora") +
  scale_fill_manual(values = paleta_final) +
  labs(title = "Gráfica N°2: Distribución Porcentual", x = "Tipo Original", y = "%") +
  theme_minimal() + theme(plot.title = element_text(family = "Lora", face = "bold", color = "#1D4E73", hjust = 0.5))

5.3 Gráfica N°3 — Circular

ggplot(datos_ordenados, aes(x = "", y = Pi, fill = `Original Well Type`)) +
  geom_bar(stat = "identity", width = 1) +
  coord_polar("y", start = 0) +
  scale_fill_manual(values = paleta_final) +
  theme_void() +
  labs(title = "Gráfica N°3: Distribución Estructurada")

6. Tabla de Indicadores

data.frame(Indicador = c("Total", "Moda", "% Moda"), 
           Valor = c(comma(total_observaciones), tdf_owt$`Original Well Type`[1], paste0(round(tdf_owt$Pi[1], 2), "%"))) %>%
  kbl(caption = "TABLA 2. Indicadores") %>% kable_styling()
TABLA 2. Indicadores
Indicador Valor
Total 47,379
Moda Nl
% Moda 82.38%

7. Conclusión

La distribución de los pozos por tipo original muestra una alta concentración en categorías específicas, evidenciando una estandarización técnica en el historial de perforaciones. La mayor parte de los registros se agrupan en Nl, representando un 82.4% del total, lo que confirma que la mayoría de la infraestructura histórica sigue este patrón constructivo dominante.