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 <- read_csv(ruta_archivo, show_col_types = FALSE)

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

2. Extracción y Limpieza de la Variable

La variable COUNTY_CODE (Código de Condado) representa el código identificador del condado de Kansas en el que se ubica cada arrendamiento de hidrocarburos. Aunque sus valores se registran con dígitos, no representan una cantidad ni admiten orden o aritmética entre sí: son etiquetas de identificación geográfica, por lo que se tratan, conservan y analizan como texto (carácter), nunca como número continuo o discreto. Se eliminan los registros sin valor (NA o vacíos). Para el análisis se presenta la distribución de frecuencias completa (todas las categorías), y un resumen gráfico de las 10 categorías más representativas.

x_raw <- datos %>%
  mutate(CTY = trimws(as.character(COUNTY_CODE))) %>%
  filter(!is.na(CTY), CTY != "", CTY != "NA") %>%
  pull(CTY)

n <- length(x_raw)

cat("Observaciones válidas:", n, "\n")
## Observaciones válidas: 47757
cat("Condados distintos:", length(unique(x_raw)), "\n")
## Condados distintos: 92

3. Identificación de la Variable

Criterio Clasificación
Nombre Código de Condado
Nombre técnico COUNTY_CODE
Tipo Cualitativa
Subtipo Nominal policotómica
Dominio Códigos de condado de Kansas registrados en el Kansas Geological Survey
Rango Múltiples categorías
Unidad No aplica
Escala Nominal
Fuente Kansas Geological Survey – Kansas, EE.UU.

Justificación: Código de Condado identifica administrativamente el condado en el que se localiza cada arrendamiento; es una etiqueta sin orden ni magnitud entre sus valores (el condado “51” no es “mayor” ni “menor” que el condado “7”). Corresponde a una variable cualitativa nominal policotómica. Se analiza a través de la distribución de frecuencias completa de sus categorías, sin construir intervalos de clase ni calcular estadísticos de tendencia central distintos de la moda.


4. Tabla de Distribución de Frecuencias

Se presenta la distribución de frecuencias completa de la variable Código de Condado, con las 92 categorías registradas en Kansas, EE.UU. (n total = 47,757). La tabla es interactiva: permite buscar un condado específico, ordenar por cualquier columna y ajustar el número de filas visibles, de modo que se conserva el 100% de la información sin omitir ninguna categoría.

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

# Sin redondeo: se conserva el valor real de la Frecuencia Relativa tal como
# se calcula (ni/n*100), sin recortarlo a un número fijo de decimales.
tabla_completa <- data.frame(
  `Código de Condado` = categorias_todas,
  `Frecuencia (ni)`    = ni_todas,
  `Porcentaje (hi%)`   = hi_pct_todas,
  check.names = FALSE,
  stringsAsFactors = FALSE
)

datatable(
  tabla_completa,
  caption = paste0(
    "Cuadro N°1: Distribución de Frecuencias Completa — ",
    format(length(categorias_todas), big.mark = ","), " Condados distintos, ",
    "arrendamientos de hidrocarburos del estado de Kansas, EE.UU., ",
    "período histórico disponible (n total = ", format(n, big.mark = ","), " registros válidos)."
  ),
  rownames = FALSE,
  filter   = "top",
  options  = list(
    pageLength = 10,
    lengthMenu = c(10, 25, 50, 100),
    order      = list(list(1, "desc")),
    scrollX    = TRUE
  )
) %>%
  formatStyle(columns = names(tabla_completa), fontSize = "90%") %>%
  formatStyle("Frecuencia (ni)", fontWeight = "bold")

Debido al elevado número de categorías (92 condados distintos), representarlas todas resultaría poco práctico tanto para la lectura de la tabla como para su análisis. Por ello, a partir de este punto se trabaja únicamente con el Top 10 por frecuencia absoluta, con el fin de facilitar la lectura e interpretación de los resultados. La tabla completa presentada arriba (Cuadro N°1) se conserva únicamente como referencia, con el 100% de la información disponible.

4.1 Top 10 de categorías con mayor frecuencia absoluta

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

tabla_top10 <- data.frame(
  `Código de Condado` = categorias,
  `Frecuencia (ni)`    = ni,
  `Porcentaje (hi%)`   = sprintf("%.2f", hi_pct),
  check.names = FALSE,
  stringsAsFactors = FALSE
)

kable(
  tabla_top10,
  caption = paste0(
    "Cuadro N°2: Top 10 Condados con Mayor Frecuencia Absoluta — ",
    "arrendamientos de hidrocarburos del estado de Kansas, EE.UU. ",
    "(n total = ", format(n, big.mark = ","), " registros válidos)."
  ),
  align  = c("l", "c", "c"),
  escape = FALSE
) %>%
  kable_styling(
    bootstrap_options = c("condensed", "bordered", "hover"),
    full_width = TRUE, font_size = 12
  ) %>%
  row_spec(0, bold = TRUE, background = "#2C2C2C", color = "white") %>%
  footnote(general = "Autor: Leslye Quinchiguango", general_title = "", footnote_as_chunk = TRUE)
Cuadro N°2: Top 10 Condados con Mayor Frecuencia Absoluta — arrendamientos de hidrocarburos del estado de Kansas, EE.UU. (n total = 47,757 registros válidos).
Código de Condado Frecuencia (ni) Porcentaje (hi%)
7 2419 5.07
9 1852 3.88
51 1794 3.76
125 1786 3.74
81 1423 2.98
133 1406 2.94
205 1393 2.92
185 1316 2.76
135 1313 2.75
163 1225 2.57
Autor: Leslye Quinchiguango

5. Representación Gráfica

Dado que la variable Código de Condado presenta 92 categorías distintas, representarlas todas en un gráfico de barras o circular resultaría en una visualización ilegible (etiquetas superpuestas, barras imperceptibles) y en un documento excesivamente extenso. Por esta razón, las gráficas a continuación se limitan a las 10 categorías con mayor frecuencia absoluta, que en conjunto concentran la mayor parte de los arrendamientos y permiten un resumen visual claro y comprensible. La información completa de las 92 categorías —sin ningún dato omitido— queda disponible en la tabla interactiva del Cuadro N°1.

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

# Se reutiliza el mismo Top 10 ya ordenado por frecuencia (categorias/ni)
# calculado en el Cuadro N°1, para garantizar idéntico orden entre tabla y gráfica.
top10_ord <- setNames(ni, categorias)
colores_g <- gray(seq(0.30, 0.80, length.out = length(top10_ord)))

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

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

# Mismo orden y categorías que el Cuadro N°1 (hi_pct ya viene alineado con categorias)
pct_ord <- setNames(hi_pct, categorias)

par(mar = c(10, 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 = 2, cex.names = 0.7
)
text(bp2, as.numeric(pct_ord) + max(as.numeric(pct_ord)) * 0.02,
     labels = paste0(round(as.numeric(pct_ord), 2), "%"), cex = 0.8)
mtext("Porcentaje (hᵢ %)",   side = 2, line = 4.5, cex = 1)
mtext("Código de Condado",   side = 1, line = 8.5, cex = 1)
mtext(
  "Gráfica N°2: Diagrama de Barras — Porcentaje\nTop 10 Condados, Kansas, EE.UU.",
  side = 3, line = 3.5, cex = 0.9, font = 2
)

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

# Mismo orden y categorías que el Cuadro N°1
pct_circ <- setNames(hi_pct, categorias)
grises_c <- gray(seq(0.15, 0.85, length.out = length(pct_circ)))

par(mar = c(2, 2, 6, 12), 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.85
)
legend(
  x      = 1.2,
  y      = 1,
  legend = paste0("Condado ", categorias, " (", format(ni, big.mark = ","), ")"),
  fill   = grises_c,
  cex    = 0.7,
  title  = "Código de Condado (nᵢ)",
  bty    = "n"
)
mtext(
  "Gráfica N°3: Diagrama Circular — Distribución Porcentual\nTop 10 Condados, Kansas, EE.UU.",
  side = 3, line = 3.5, cex = 0.9, font = 2
)


6. Tabla de Indicadores

Para la variable cualitativa nominal Código de Condado, el único indicador de tendencia central aplicable es la moda. La mediana, media, varianza y demás medidas de dispersión y forma no aplican para este tipo de variable.

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

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(
    "Código de Condado",
    "Cualitativa Nominal Policotómica",
    paste0(format(n_categorias, big.mark = ","), " condados distintos"),
    moda_val,
    "—",
    "—",
    "—",
    "—",
    "—",
    "—",
    "—"
  ),
  stringsAsFactors = FALSE
)

tabla_indicadores %>%
  gt() %>%
  tab_header(
    title    = md("**Tabla N°2: Indicadores Estadísticos**"),
    subtitle = md("*Variable Cualitativa Nominal: Código de Condado*")
  ) %>%
  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: Leslye Quinchiguango*")) %>%
  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: Código de Condado
Indicador Valor
Variable Código de Condado
Tipo de variable Cualitativa Nominal Policotómica
Categorías (Rango) 92 condados distintos
Moda (Mo) 7
Mediana (Me)
Media (X̄)
Varianza (V)
Desv. Estándar (Sd)
Coef. Variación (CV%)
Asimetría (As)
Curtosis (K)
Autor: Leslye Quinchiguango

7. Conclusión

La variable Código de Condado es una variable cualitativa nominal policotómica que identifica administrativamente el condado de Kansas donde se ubica cada arrendamiento de hidrocarburos, sin que exista orden ni magnitud entre sus 92 categorías. Su valor más frecuente (moda) es el condado “7”, con una participación del 5.07% en la muestra, lo que evidencia la concentración de los arrendamientos de hidrocarburos en un número reducido de condados frente a la alta dispersión del resto de categorías, coherente con la distribución geográfica desigual de la actividad petrolera dentro del estado de Kansas.


Autor: Leslye Quinchiguango | Análisis Estadístico — Kansas Hydrocarbon Leases Dataset