1 Configuración y Carga de Datos

Se carga el conjunto de datos correspondiente a los bloques contractuales y arrendamientos de hidrocarburos en el estado de Kansas.

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 (filas):", nrow(datos), "\n")
## Total de registros (filas): 47757

2 Extracción y Limpieza de la Variable

Se realiza el aislamiento y limpieza de la variable cualitativa nominal Código de Estado (STATE_CODE), que representa el código identificador del estado en el que se ubica cada arrendamiento de hidrocarburos. Aunque se registra con dígitos, este código no representa una cantidad ni admite orden o aritmética: es una etiqueta de identificación geográfica, por lo que se trata, conserva y analiza como texto (carácter), nunca como número.

cat("Valores únicos originales en STATE_CODE:\n")
## Valores únicos originales en STATE_CODE:
print(unique(datos$STATE_CODE))
## [1] 15
x_raw <- datos %>%
  mutate(EDO = trimws(as.character(STATE_CODE))) %>%
  filter(!is.na(EDO), EDO != "", EDO != "NA") %>%
  pull(EDO)

n <- length(x_raw)
x_raw <- factor(x_raw)

cat("Observaciones válidas:", n, "\n")
## Observaciones válidas: 47757
cat("Valores únicos (categorías):", length(unique(x_raw)), "\n")
## Valores únicos (categorías): 1

3 Identificación de la Variable

Se presenta la ficha técnica de identificación de la variable, especificando su naturaleza estadística y su fuente de origen.

tabla_id <- data.frame(
  Criterio = c(
    "Nombre", "Nombre técnico", "Tipo", "Subtipo",
    "Dominio", "Rango", "Unidad", "Escala", "Fuente"
  ),
  Clasificacion = c(
    "Código de Estado",
    "STATE_CODE",
    "Cualitativa",
    "Nominal",
    "{15}",
    "1 categoría",
    "No aplica",
    "Nominal",
    "Kansas Geological Survey – Kansas, EE.UU."
  )
)

tabla_id %>%
  gt() %>%
  tab_header(
    title = md("**Identificación de la Variable**")
  ) %>%
  cols_label(
    Criterio      = md("**Criterio**"),
    Clasificacion = md("**Clasificación**")
  ) %>%
  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_id), by = 2))
  ) %>%
  tab_source_note(source_note = md("*Autor: Leslye Quinchiguango*")) %>%
  tab_options(
    table.width             = pct(60),
    heading.title.font.size = px(16),
    table.font.size         = px(13),
    data_row.padding        = px(6)
  )
Identificación de la Variable
Criterio Clasificación
Nombre Código de Estado
Nombre técnico STATE_CODE
Tipo Cualitativa
Subtipo Nominal
Dominio {15}
Rango 1 categoría
Unidad No aplica
Escala Nominal
Fuente Kansas Geological Survey – Kansas, EE.UU.
Autor: Leslye Quinchiguango

Justificación: Código de Estado identifica administrativamente el estado en el que se localiza cada arrendamiento; es una etiqueta sin orden ni magnitud entre sus valores, por lo que corresponde a una variable cualitativa nominal. En este conjunto de datos toma un único valor observado (15 = Kansas), es decir, es una nominal constante (sin variabilidad entre categorías); a diferencia del tratamiento anterior, no se calculan aquí media, mediana, varianza ni otros estadísticos propios de variables cuantitativas. Se construye la tabla de distribución de frecuencias con frecuencia absoluta y porcentual, respetando la estructura de tres columnas estipulada por la cátedra.

4 Tabla de Distribución de Frecuencias

frecuencias_base <- data.frame(
  Codigo_Estado = levels(x_raw),
  Frecuencia_ni = as.integer(table(x_raw))
) %>%
  arrange(desc(Frecuencia_ni))

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

total_fila <- data.frame(
  Codigo_Estado = "TOTAL",
  Frecuencia_ni = sum(tabla_final$Frecuencia_ni),
  Porcentaje_hi = sum(tabla_final$Porcentaje_hi)
)

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

resultado %>%
  rename(
    "Código de Estado" = Codigo_Estado,
    "Frecuencia (ni)"  = Frecuencia_ni,
    "Porcentaje (hi%)" = Porcentaje_hi
  ) %>%
  gt() %>%
  tab_header(
    title    = md("**Tabla N°1: Distribución de Frecuencias**"),
    subtitle = md("*Variable Cualitativa Nominal: Código de Estado*")
  ) %>%
  cols_label(
    "Código de Estado" = md("**Código de Estado**"),
    "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    = `Código de Estado` == "TOTAL",
      columns = everything()
    )
  ) %>%
  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°1: Distribución de Frecuencias
Variable Cualitativa Nominal: Código de Estado
Código de Estado Frecuencia (ni) Porcentaje (hi%)
15 47757 100.00
TOTAL 47757 100.00
Autor: Leslye Quinchiguango

5 Representación Gráfica

Se presentan tres gráficas en escala de grises que permiten analizar visualmente la distribución de la variable cualitativa nominal Código de Estado.

5.1 Gráfica N°1 — Barras de frecuencia absoluta

par(mar = c(6, 6, 5, 2))
barplot(tabla_final$Frecuencia_ni,
        main      = "",
        xlab      = "",
        ylab      = "",
        col       = "gray45",
        border    = "black",
        ylim      = c(0, max(tabla_final$Frecuencia_ni) * 1.15),
        names.arg = paste0(tabla_final$Codigo_Estado, " (Kansas)"),
        cex.names = 0.9,
        las       = 1)

mtext("Frecuencia (ni)",   side = 2, line = 4.5, cex = 1)
mtext("Código de Estado",  side = 1, line = 3.5, cex = 1)
mtext("Gráfica N°1: Distribución de Frecuencias Absolutas de la Variable Código de Estado,\narrendamientos de hidrocarburos, Kansas, EE.UU.",
      side = 3, line = 2, adj = 0.5, cex = 0.85, font = 2)

5.2 Gráfica N°2 — Barras de porcentaje

par(mar = c(6, 6, 5, 2))
bp2 <- barplot(tabla_final$Porcentaje_hi,
               main      = "",
               xlab      = "",
               ylab      = "Porcentaje %",
               col       = "gray45",
               border    = "black",
               ylim      = c(0, max(tabla_final$Porcentaje_hi) * 1.25),
               names.arg = paste0(tabla_final$Codigo_Estado, " (Kansas)"),
               cex.names = 0.9,
               las       = 1)

mtext("Código de Estado", side = 1, line = 3.5, cex = 1)
mtext("Gráfica N°2: Distribución Porcentual de la Variable Código de Estado,\narrendamientos de hidrocarburos, Kansas, EE.UU.",
      side = 3, line = 2, adj = 0.5, cex = 0.85, font = 2)

text(x      = bp2,
     y      = tabla_final$Porcentaje_hi,
     labels = paste0(round(tabla_final$Porcentaje_hi, 2), "%"),
     pos    = 1, cex = 0.9, col = "white", font = 2)

5.3 Gráfica N°3 — Gráfico circular porcentual

par(mar = c(5, 2, 4, 9), xpd = TRUE)

pie(tabla_final$Porcentaje_hi,
    main   = "",
    radius = 1,
    labels = paste0(round(tabla_final$Porcentaje_hi, 2), "%"),
    col    = "gray45",
    cex    = 0.9)

mtext("Gráfica N°3: Distribución Porcentual de la Variable Código de Estado,\narrendamientos de hidrocarburos, Kansas, EE.UU.",
      side = 3, line = 1.5, adj = 0.5, cex = 0.85, font = 2)

legend(x      = 1.1,
       y      = 1,
       legend = paste0(tabla_final$Codigo_Estado, " (Kansas)"),
       fill   = "gray45",
       cex    = 0.85,
       title  = "Código de Estado",
       bty    = "n")

6 Tabla de Indicadores

Para la variable cualitativa nominal Código de Estado, 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_estado <- as.character(tabla_final$Codigo_Estado[which.max(tabla_final$Frecuencia_ni)])

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 Estado",
    "Cualitativa Nominal",
    "15 (1 categoría)",
    moda_estado,
    "—",
    "—",
    "—",
    "—",
    "—",
    "—",
    "—"
  )
)

tabla_indicadores %>%
  gt() %>%
  tab_header(
    title    = md("**Tabla N°2: Indicadores Estadísticos**"),
    subtitle = md("*Variable Cualitativa Nominal: Código de Estado*")
  ) %>%
  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 Estado
Indicador Valor
Variable Código de Estado
Tipo de variable Cualitativa Nominal
Categorías (Rango) 15 (1 categoría)
Moda (Mo) 15
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 Estado es una variable cualitativa nominal que identifica administrativamente el estado donde se ubica cada arrendamiento de hidrocarburos. En este conjunto de datos presenta una única categoría observada, 15 (Kansas), con una participación del 100% de los 47,757 registros válidos. Su moda es 15 y, al no existir otras categorías ni tratarse de una variable cuantitativa, no corresponde calcular medidas de dispersión (varianza, desviación estándar) ni de forma (asimetría, curtosis). Este comportamiento es coherente con la naturaleza del dataset, que reúne exclusivamente arrendamientos del estado de Kansas.


Autor: Leslye Quinchiguango