1. Configuración y Carga de Datos

Se carga el conjunto de datos de arrendamientos de hidrocarburos del estado de Kansas, EE.UU., registrados por el Kansas Geological Survey.

ruta_archivo <- file.choose()
datos_vale <- read_csv(ruta_archivo, show_col_types = FALSE)

cat("Dataset cargado correctamente.\n")
## Dataset cargado correctamente.
cat("Total de registros evaluados (filas):", nrow(datos_vale), "\n")
## Total de registros evaluados (filas): 47757

2. Extracción y Limpieza de la Variable

La variable TOWNSHIP_DIRECTION (Dirección Township) indica la orientación norte o sur del township respecto a la línea base del sistema de referencia PLSS (Public Land Survey System). Se eliminan los registros sin valor (NA o vacíos).

x_raw <- datos_vale %>%
  filter(!is.na(TOWNSHIP_DIRECTION), TOWNSHIP_DIRECTION != "") %>%
  pull(TOWNSHIP_DIRECTION)

n <- length(x_raw)

cat("Observaciones válidas:", n, "\n")
## Observaciones válidas: 47757
cat("Categorías distintas presentes:", length(unique(x_raw)), "\n")
## Categorías distintas presentes: 1

3. Identificación de la Variable

Criterio Clasificación
Nombre Dirección Township
Nombre técnico TOWNSHIP_DIRECTION
Tipo Cualitativa
Subtipo Nominal dicotómica
Dominio D = { x | x ∈ {N, S} }
Rango R = { x | x ∈ {S} }
Unidad No aplica
Escala Nominal
Fuente Kansas Geological Survey – Kansas, EE.UU.

Justificación: La variable indica una orientación (Norte/Sur) sin orden natural entre sus categorías, por lo que corresponde a una variable cualitativa nominal dicotómica. En el dominio teórico caben dos valores (“N” y “S”), pero como se muestra en la sección siguiente, en este conjunto de datos la variable resulta constante, dado que la totalidad de los pozos de Kansas se ubica al sur de la línea base del sistema PLSS.


4. Tabla de Distribución de Frecuencias

Se presenta la distribución de frecuencias completa de la variable Dirección Township, con las 1 categoría(s) efectivamente registrada(s) (n total = 47,757).

freq_completa <- sort(table(x_raw), decreasing = TRUE)

categorias_todas <- names(freq_completa)
ni_todas          <- as.integer(freq_completa)
hi_pct_todas      <- ni_todas / n * 100

tabla_completa <- data.frame(
  Categoria = categorias_todas,
  ni        = ni_todas,
  hi_pct    = hi_pct_todas,
  stringsAsFactors = FALSE
)

tabla_total <- data.frame(
  Categoria = "TOTAL",
  ni        = n,
  hi_pct    = sum(hi_pct_todas),
  stringsAsFactors = FALSE
)

tabla_gt <- bind_rows(tabla_completa, tabla_total)

tabla_gt %>%
  gt() %>%
  tab_header(
    title    = md("**Tabla N°1: Distribución de Frecuencias**"),
    subtitle = md("*Variable Cualitativa Nominal: Dirección Township*")
  ) %>%
  cols_label(
    Categoria = md("**Dirección Township**"),
    ni        = md("**Frecuencia (ni)**"),
    hi_pct    = md("**Porcentaje (hi%)**")
  ) %>%
  fmt_integer(columns = ni) %>%
  fmt_number(columns = hi_pct, decimals = 2) %>%
  cols_align(align = "center", columns = c(ni, hi_pct)) %>%
  cols_align(align = "left", columns = Categoria) %>%
  tab_style(
    style = list(
      cell_fill(color = "#000000"),
      cell_text(color = "white", weight = "bold")
    ),
    locations = cells_column_labels()
  ) %>%
  tab_style(
    style = cell_text(color = "#1F618D", weight = "bold"),
    locations = cells_body(
      columns = Categoria,
      rows    = Categoria != "TOTAL"
    )
  ) %>%
  tab_style(
    style = list(
      cell_fill(color = "#D9D9D9"),
      cell_text(weight = "bold")
    ),
    locations = cells_body(rows = Categoria == "TOTAL")
  ) %>%
  tab_style(
    style = cell_borders(sides = "top", color = "black", weight = px(2)),
    locations = cells_body(rows = Categoria == "TOTAL")
  ) %>%
  tab_source_note(source_note = md("*Autor: Araujo Valeska*")) %>%
  tab_options(
    table.width                = pct(70),
    table.border.top.color     = "black",
    table.border.bottom.color  = "black",
    column_labels.border.bottom.color = "black",
    heading.title.font.size    = px(16),
    heading.subtitle.font.size = px(12),
    table.font.size            = px(13),
    data_row.padding           = px(8)
  )
Tabla N°1: Distribución de Frecuencias
Variable Cualitativa Nominal: Dirección Township
Dirección Township Frecuencia (ni) Porcentaje (hi%)
S 47,757 100.00
TOTAL 47,757 100.00
Autor: Araujo Valeska

5. Representación Gráfica

Dado que la variable Dirección Township presenta en este dataset una única categoría efectiva (“S”), el diagrama de barras y el diagrama circular que se muestran a continuación consisten, en consecuencia, en una sola barra y un único sector de 100%. Esta representación se conserva por consistencia metodológica con el resto de variables cualitativas, y porque visualiza de forma directa la ausencia total de variabilidad de la variable.

categorias <- names(freq_completa)
ni         <- as.integer(freq_completa)
hi_pct     <- ni / n * 100

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

top_ord <- setNames(ni, categorias)
colores_g <- gray(seq(0.30, 0.80, length.out = max(length(top_ord), 1)))

par(mar = c(6, 6, 7, 2))
bp <- barplot(
  as.numeric(top_ord),
  names.arg = names(top_ord),
  col       = colores_g,
  border    = "black",
  ylim      = c(0, max(as.numeric(top_ord)) * 1.18),
  xlab      = "", ylab = "", main = "", las = 1, cex.names = 1
)
text(bp, as.numeric(top_ord) + max(as.numeric(top_ord)) * 0.02,
     labels = format(as.numeric(top_ord), big.mark = ","), cex = 0.9)
mtext("Frecuencia Absoluta (nᵢ)", side = 2, line = 4.5, cex = 1)
mtext("Dirección Township",        side = 1, line = 3, cex = 1)
mtext(
  "Gráfica N°1: Diagrama de Barras — Frecuencia Absoluta\nDirección Township, Kansas, EE.UU.",
  side = 3, line = 3.5, cex = 0.9, font = 2
)

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

pct_ord <- setNames(hi_pct, categorias)

par(mar = c(6, 6, 7, 2))
bp2 <- barplot(
  as.numeric(pct_ord),
  names.arg = names(pct_ord),
  col       = colores_g,
  border    = "black",
  ylim      = c(0, max(as.numeric(pct_ord)) * 1.18),
  xlab      = "", ylab = "", main = "", las = 1, cex.names = 1
)
text(bp2, as.numeric(pct_ord) + max(as.numeric(pct_ord)) * 0.02,
     labels = paste0(round(as.numeric(pct_ord), 2), "%"), cex = 0.9)
mtext("Porcentaje (hᵢ %)",  side = 2, line = 4.5, cex = 1)
mtext("Dirección Township", side = 1, line = 3, cex = 1)
mtext(
  "Gráfica N°2: Diagrama de Barras — Porcentaje\nDirección Township, Kansas, EE.UU.",
  side = 3, line = 3.5, cex = 0.9, font = 2
)

5.3 Gráfica N°3 — Diagrama Circular (Distribución Porcentual)

pct_circ <- setNames(hi_pct, categorias)
grises_c <- gray(seq(0.35, 0.65, length.out = max(length(pct_circ), 1)))

par(mar = c(2, 2, 6, 10), xpd = TRUE)
pie(
  as.numeric(pct_circ),
  labels  = paste0(round(as.numeric(pct_circ), 2), "%"),
  col     = grises_c,
  border  = "black",
  main    = "",
  radius  = 1,
  cex     = 0.9
)
legend(
  x      = 1.1,
  y      = 1,
  legend = paste0(categorias, " (", format(ni, big.mark = ","), ")"),
  fill   = grises_c,
  cex    = 0.8,
  title  = "Dirección (nᵢ)",
  bty    = "n"
)
mtext(
  "Gráfica N°3: Diagrama Circular — Distribución Porcentual\nDirección Township, Kansas, EE.UU.",
  side = 3, line = 3.5, cex = 0.9, font = 2
)


6. Tabla de Indicadores

moda_val     <- names(sort(table(x_raw), decreasing = TRUE))[1]
moda_n       <- max(table(x_raw))
n_categorias <- length(unique(x_raw))
es_constante <- n_categorias == 1

tabla_indicadores <- data.frame(
  Indicador = c(
    "Variable",
    "Tipo de variable",
    "Categorías (Rango)",
    "Moda (Mo)",
    "Mediana (Me)",
    "Media (X̄)",
    "Varianza (V)",
    "Desv. Estándar (Sd)",
    "Coef. Variación (CV%)",
    "Asimetría (As)",
    "Curtosis (K)"
  ),
  Valor = c(
    "Dirección Township",
    "Cualitativa Nominal Dicotómica",
    paste0(format(n_categorias, big.mark = ","), " categoría(s) efectiva(s): ",
           paste(sort(unique(x_raw)), collapse = ", ")),
    moda_val,
    "—",
    "—",
    "—",
    "—",
    "—",
    "—",
    "—"
  ),
  stringsAsFactors = FALSE
)

tabla_indicadores %>%
  gt() %>%
  tab_header(
    title    = md("**Tabla N°2: Indicadores Estadísticos**"),
    subtitle = md("*Variable Cualitativa Nominal: Dirección Township*")
  ) %>%
  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 == "—",
      columns = Valor
    )
  ) %>%
  tab_source_note(source_note = md("*Autor: Araujo Valeska*")) %>%
  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 Nominal: Dirección Township
Indicador Valor
Variable Dirección Township
Tipo de variable Cualitativa Nominal Dicotómica
Categorías (Rango) 1 categoría(s) efectiva(s): S
Moda (Mo) S
Mediana (Me)
Media (X̄)
Varianza (V)
Desv. Estándar (Sd)
Coef. Variación (CV%)
Asimetría (As)
Curtosis (K)
Autor: Araujo Valeska

7. Conclusión

La variable Dirección Township es una variable cualitativa nominal dicotómica cuyo dominio teórico admite las categorías “N” y “S”. Sin embargo, en el 47,757-registro conjunto de datos analizado, la variable resulta constante: su valor único es “S”, con una participación del 100.00%. Esto se explica geográficamente porque la totalidad de los pozos de Kansas se ubica íntegramente al sur de la línea base del sistema de referencia PLSS. Al no presentar variabilidad (varianza cero), esta variable no aporta poder discriminante para fines de modelado o segmentación estadística.


Autor: Araujo Valeska | Análisis Estadístico — Kansas Hydrocarbon Leases Dataset