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
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.
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 | |||||
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)
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 | |
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