1 Configuración y Carga de Datos

Para iniciar el procesamiento estadístico, se verifica la estructura global del conjunto de datos correspondientes 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 Extraer Variable

Se realiza el aislamiento de la variable cuantitativa discreta STATE_CODE, que representa el código identificador del estado en el que se ubica cada arrendamiento de hidrocarburos (Kansas = 15).

x_raw <- datos %>%
  mutate(EDO = suppressWarnings(as.integer(STATE_CODE))) %>%
  filter(!is.na(EDO)) %>%
  pull(EDO)

n_unique <- length(unique(x_raw))
cat("Observaciones válidas:", length(x_raw), "\n")
## Observaciones válidas: 47757
cat("Valores únicos:", n_unique, "\n")
## Valores únicos: 1
cat("Como hay", n_unique, "valor(es) único(s), no aplica agrupar en intervalos de clase.\n")
## Como hay 1 valor(es) único(s), no aplica agrupar en intervalos de clase.

3 Tabla de Distribución de Frecuencias

A diferencia de las demás variables discretas de este dataset, Código de Estado presenta un único valor (15) en el 100% de los registros: todos los arrendamientos corresponden al estado de Kansas. Como no existe variabilidad (rango = 0), no corresponde aplicar el criterio de máximo 10 intervalos de clase —éste solo tiene sentido cuando hay más de 10 valores distintos que resumir—; en su lugar se presenta la tabla de frecuencia simple, que en este caso queda reducida a una sola fila.

x <- x_raw
n <- length(x)

tabla_freq <- as.data.frame(table(x), stringsAsFactors = FALSE)
names(tabla_freq) <- c("Valor", "ni")
tabla_freq$ni     <- as.integer(tabla_freq$ni)
tabla_freq$hi_pct  <- round(tabla_freq$ni / n * 100, 2)
tabla_freq$hi_real <- round(tabla_freq$ni / n, 4)
tabla_freq$Ni      <- cumsum(tabla_freq$ni)
tabla_freq$Hi      <- round(cumsum(tabla_freq$ni / n), 4)

total_row <- data.frame(
  Valor   = "TOTAL",
  ni      = sum(tabla_freq$ni),
  hi_pct  = round(sum(tabla_freq$hi_pct), 2),
  hi_real = round(sum(tabla_freq$hi_real), 4),
  Ni      = max(tabla_freq$Ni),
  Hi      = round(max(tabla_freq$Hi), 4),
  stringsAsFactors = FALSE
)

tabla_final_freq <- bind_rows(tabla_freq, total_row)

tabla_final_freq %>%
  gt() %>%
  tab_header(
    title    = md("**Tabla N°1: Distribución de Frecuencias**"),
    subtitle = md(paste0(
      "*Variable Cuantitativa Discreta: Código de Estado, ",
      "arrendamientos de hidrocarburos, Kansas, EE.UU. (n = ",
      format(n, big.mark = ","), " registros válidos)*"
    ))
  ) %>%
  cols_label(
    Valor   = md("**Código de Estado**"),
    ni      = md("**ni (FA)**"),
    hi_pct  = md("**hi %**"),
    hi_real = md("**hi (decimal)**"),
    Ni      = md("**Ni ↑ (FAAa)**"),
    Hi      = md("**Hi ↑ (FRAa)**")
  ) %>%
  tab_style(
    style = list(
      cell_fill(color = "#2C2C2C"),
      cell_text(color = "white", weight = "bold")
    ),
    locations = cells_column_labels()
  ) %>%
  tab_style(
    style = list(
      cell_fill(color = "#D6D6D6"),
      cell_text(weight = "bold")
    ),
    locations = cells_body(
      rows    = Valor == "TOTAL",
      columns = everything()
    )
  ) %>%
  fmt_missing(columns = everything(), missing_text = "—") %>%
  tab_source_note(source_note = md("*Autor: Leslye Quinchiguango*")) %>%
  tab_options(
    table.width                = pct(70),
    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 Cuantitativa Discreta: Código de Estado, arrendamientos de hidrocarburos, Kansas, EE.UU. (n = 47,757 registros válidos)
Código de Estado ni (FA) hi % hi (decimal) Ni ↑ (FAAa) Hi ↑ (FRAa)
15 47757 100 1 47757 1
TOTAL 47757 100 1 47757 1
Autor: Leslye Quinchiguango

4 Representación Gráfica

Al tratarse de una variable constante (un único valor repetido en todos los registros), no aplican las gráficas de distribución habituales (histograma, polígono de frecuencias, boxplot u ojivas), ya que estas requieren variabilidad en los datos para poder representarse. En su lugar se presenta un gráfico de barras que evidencia visualmente la ausencia de variación.

par(mar = c(5, 6, 6, 2))
barplot(
  height    = n,
  names.arg = paste0("Kansas (", unique(x), ")"),
  col       = "gray60",
  border    = "black",
  ylim      = c(0, n * 1.15),
  las       = 1,
  ylab      = ""
)
mtext("Frecuencia Absoluta (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: Frecuencia de la Variable Código de Estado,\narrendamientos de hidrocarburos, Kansas, EE.UU.",
  side = 3, line = 3, cex = 0.9, font = 2
)
text(0.7, n * 1.05, labels = paste0("n = ", format(n, big.mark = ",")), cex = 0.9)

5 Indicadores Estadísticos

indicadores <- data.frame(
  Indicador = c(
    "Tamaño muestral (n)",
    "Valor único",
    "Mínimo",
    "Máximo",
    "Rango",
    "Media",
    "Mediana",
    "Moda",
    "Varianza (s²)",
    "Desviación estándar (s)",
    "Coef. de variación (CV%)"
  ),
  Valor = c(
    format(n, big.mark = ","),
    as.character(unique(x)),
    as.character(min(x)),
    as.character(max(x)),
    as.character(max(x) - min(x)),
    as.character(mean(x)),
    as.character(median(x)),
    as.character(unique(x)),
    as.character(0),
    as.character(0),
    "0% (variable constante)"
  ),
  stringsAsFactors = FALSE
)

indicadores %>%
  gt() %>%
  tab_header(
    title    = md("**Tabla N°2: Indicadores Estadísticos**"),
    subtitle = md("*Variable Cuantitativa Discreta: Código de Estado*")
  ) %>%
  cols_label(
    Indicador = md("**Indicador**"),
    Valor     = md("**Valor**")
  ) %>%
  cols_align(align = "left",  columns = Indicador) %>%
  cols_align(align = "right", columns = Valor) %>%
  tab_style(
    style = list(
      cell_fill(color = "#2C2C2C"),
      cell_text(color = "white", weight = "bold")
    ),
    locations = cells_column_labels()
  ) %>%
  tab_style(
    style = cell_borders(sides = "bottom", color = "#E0E0E0", weight = px(1)),
    locations = cells_body(rows = everything())
  ) %>%
  tab_source_note(source_note = md("*Autor: Leslye Quinchiguango*")) %>%
  tab_options(
    table.width                       = pct(45),
    heading.title.font.size           = px(15),
    heading.subtitle.font.size        = px(11),
    table.font.size                   = px(12),
    data_row.padding                  = px(4),
    column_labels.border.top.width    = px(2),
    column_labels.border.bottom.width = px(2),
    table_body.border.bottom.width    = px(2),
    table.border.top.style            = "hidden",
    table.border.bottom.style         = "hidden"
  )
Tabla N°2: Indicadores Estadísticos
Variable Cuantitativa Discreta: Código de Estado
Indicador Valor
Tamaño muestral (n) 47,757
Valor único 15
Mínimo 15
Máximo 15
Rango 0
Media 15
Mediana 15
Moda 15
Varianza (s²) 0
Desviación estándar (s) 0
Coef. de variación (CV%) 0% (variable constante)
Autor: Leslye Quinchiguango

6 Conclusiones

Los valores de Código de Estado fluctúan entre 15 y 15 (sin variación) y giran en torno a 15, con una desviación estándar de 0, sin presencia de valores atípicos, siendo un conjunto de datos homogéneo (CV = 0%), cuyos valores se agrupan totalmente en un único valor de Código de Estado, al no existir dispersión que distribuya los datos entre partes baja, media o alta. Por lo anterior, el comportamiento es beneficioso, ya que el 100% de los 47,757 registros válidos corresponde al mismo código (15, Kansas), lo cual es coherente con la naturaleza del dataset y simplifica el análisis geográfico al no requerir segmentación por estado.


Autor: Leslye Quinchiguango