El presente informe estadístico analiza la variable Año de Inicio de Producción (CUMULATIVE_YEAR_STARTED) de los arrendamientos de hidrocarburos del estado de Kansas, EE.UU., registrados por el Kansas Geological Survey. Para el análisis, se extrae el año directamente del campo registrado, permitiendo evaluar la evolución temporal de las actividades productivas. Dado que la variable presenta más de 10 valores únicos, se agrupa en intervalos de clase aplicando la Regla de Sturges, tratándola como variable cuantitativa continua.
# --- CARGA DE DATOS ---
ruta_csv <- "C:/Users/luisq/OneDrive/Desktop/ESTADISTICA/kansas.csv"
datos <- read_delim(ruta_csv, delim = ";", 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): 104173
x_raw <- datos %>%
mutate(ANIO = suppressWarnings(as.integer(CUMULATIVE_YEAR_STARTED))) %>%
filter(!is.na(ANIO), ANIO >= 1930, ANIO <= 2026) %>%
pull(ANIO)
n_unique <- length(unique(x_raw))
cat("Observaciones válidas:", length(x_raw), "\n")
## Observaciones válidas: 89034
cat("Valores únicos:", n_unique, "\n")
## Valores únicos: 95
cat("Como hay", n_unique, "> 10 valores únicos, se agrupa en intervalos de clase.\n")
## Como hay 95 > 10 valores únicos, se agrupa en intervalos de clase.
x <- x_raw
n <- length(x)
rango <- max(x) - min(x)
k <- 10
c_amp <- ceiling(rango / k)
cat("\nn =", n, "| k =", k, "| Rango =", rango, "| Amplitud c =", c_amp, "\n")
##
## n = 89034 | k = 10 | Rango = 96 | Amplitud c = 10
lim_inf <- min(x) + (0:(k - 1)) * c_amp
lim_sup <- lim_inf + c_amp
lim_sup[k] <- max(x) + 1
mc <- (lim_inf + lim_sup) / 2
Identificación de la variable:
| Criterio | Clasificación |
|---|---|
| Tipo | Cuantitativa Continua (agrupada — más de 10 valores únicos) |
| Escala | De intervalo |
| Variable | CUMULATIVE_YEAR_STARTED (año de inicio de producción) |
| Rango | 1930 – 2026 |
| Fuente | Kansas Geological Survey – Kansas, EE.UU. |
Nota metodológica: La Regla de Sturges sugiere \(k = 1 + 3{,}322 \cdot \log_{10}(n)\), que para \(n = 89{,}034\) produce \(k = 18\) intervalos de amplitud 6 años. Sin embargo, dado que la convención estadística establece un máximo de 10 intervalos para mantener la legibilidad de la tabla y las gráficas, se fija \(k = 10\), obteniendo una amplitud de 10 años por intervalo (décadas completas), lo que además resulta más natural e interpretable para una variable temporal.
Se presenta la distribución de arrendamientos agrupada en intervalos de 10 años.
breaks_vec <- c(lim_inf, lim_sup[k])
intervalos_cut <- cut(x, breaks = breaks_vec, right = FALSE, include.lowest = TRUE)
freq_abs <- as.integer(table(intervalos_cut))
li <- lim_inf
ls <- lim_sup
hi_dec <- freq_abs / n
Ni_asc <- cumsum(freq_abs)
Hi_asc <- cumsum(hi_dec)
Ni_desc <- n - c(0, head(Ni_asc, -1))
Hi_desc <- 1 - c(0, head(Hi_asc, -1))
etiq_intervalo <- paste0("[", li, " – ", ls, ")")
etiq_intervalo[k] <- paste0("[", li[k], " – ", ls[k] - 1, "]")
tabla_df <- data.frame(
Intervalo = etiq_intervalo,
MC = round(mc, 1),
ni = freq_abs,
hi_pct = sprintf("%.2f%%", hi_dec * 100),
hi_real = sprintf("%.4f", hi_dec),
Ni_a = Ni_asc,
Hi_a = sprintf("%.4f", Hi_asc),
Ni_d = Ni_desc,
Hi_d = sprintf("%.4f", Hi_desc),
stringsAsFactors = FALSE
)
tabla_df2 <- tabla_df %>%
mutate(MC = as.character(MC), ni = as.character(ni),
Ni_a = as.character(Ni_a), Ni_d = as.character(Ni_d))
total_row <- data.frame(
Intervalo = "**TOTAL**", MC = "—",
ni = as.character(sum(freq_abs)),
hi_pct = sprintf("%.2f%%", sum(hi_dec) * 100),
hi_real = sprintf("%.4f", sum(hi_dec)),
Ni_a = as.character(max(Ni_asc)),
Hi_a = sprintf("%.4f", max(Hi_asc)),
Ni_d = as.character(max(Ni_desc)),
Hi_d = sprintf("%.4f", max(Hi_desc)),
stringsAsFactors = FALSE
)
tabla_final <- bind_rows(tabla_df2, total_row)
kable(
tabla_final,
caption = paste0(
"Tabla N°1: Distribución de Frecuencias — Año de Inicio de Producción ",
"(CUMULATIVE_YEAR_STARTED), arrendamientos de hidrocarburos, Kansas, EE.UU., ",
"período 1930–2026 (n = ", format(n, big.mark = ","), " registros válidos)."
),
col.names = c("Intervalo [Li – Ls)", "Marca de Clase",
"ni (FA)", "hi %", "hi (decimal)",
"Ni ↑ (FAAa)", "Hi ↑ (FRAa)",
"Ni ↓ (FAAd)", "Hi ↓ (FRAd)"),
align = c("l", rep("c", 8)), escape = FALSE
) %>%
kable_styling(
bootstrap_options = c("striped", "hover", "condensed", "bordered"),
full_width = TRUE, font_size = 12
) %>%
add_header_above(c(" " = 2, "Frecuencia Absoluta" = 1,
"Frecuencia Relativa" = 2,
"Acumulada ↑" = 2, "Acumulada ↓" = 2)) %>%
row_spec(0, bold = TRUE, background = "#d3d3d3", color = "black") %>%
row_spec(nrow(tabla_final), bold = TRUE, background = "#a9a9a9", color = "black")
| Intervalo [Li – Ls) | Marca de Clase | ni (FA) | hi % | hi (decimal) | Ni ↑ (FAAa) | Hi ↑ (FRAa) | Ni ↓ (FAAd) | Hi ↓ (FRAd) |
|---|---|---|---|---|---|---|---|---|
| [1930 – 1940) | 1935 | 1080 | 1.21% | 0.0121 | 1080 | 0.0121 | 89034 | 1.0000 |
| [1940 – 1950) | 1945 | 2157 | 2.42% | 0.0242 | 3237 | 0.0364 | 87954 | 0.9879 |
| [1950 – 1960) | 1955 | 7205 | 8.09% | 0.0809 | 10442 | 0.1173 | 85797 | 0.9636 |
| [1960 – 1970) | 1965 | 10328 | 11.60% | 0.1160 | 20770 | 0.2333 | 78592 | 0.8827 |
| [1970 – 1980) | 1975 | 13844 | 15.55% | 0.1555 | 34614 | 0.3888 | 68264 | 0.7667 |
| [1980 – 1990) | 1985 | 19406 | 21.80% | 0.2180 | 54020 | 0.6067 | 54420 | 0.6112 |
| [1990 – 2000) | 1995 | 10447 | 11.73% | 0.1173 | 64467 | 0.7241 | 35014 | 0.3933 |
| [2000 – 2010) | 2005 | 13832 | 15.54% | 0.1554 | 78299 | 0.8794 | 24567 | 0.2759 |
| [2010 – 2020) | 2015 | 9350 | 10.50% | 0.1050 | 87649 | 0.9844 | 10735 | 0.1206 |
| [2020 – 2026] | 2023.5 | 1385 | 1.56% | 0.0156 | 89034 | 1.0000 | 1385 | 0.0156 |
| TOTAL | — | 89034 | 100.00% | 1.0000 | 89034 | 1.0000 | 89034 | 1.0000 |
Visualización de la evolución histórica de la producción por intervalos de década.
par(mar = c(10, 5, 4, 2))
bp1 <- barplot(vals_y,
main = "Gráfica N°1: Distribución de Año de Inicio de Producción — Kansas, EE.UU.",
cex.main = 0.85,
ylab = "Frecuencia Absoluta (ni)",
col = col_gris, border = "white", axes = FALSE,
ylim = c(0, max(vals_y) * 1.1),
axisnames = FALSE)
axis(2, col = col_ejes, col.axis = col_ejes)
axis(1, at = bp1, labels = vals_x, col = col_ejes, col.axis = col_ejes, las = 2, cex.axis = 0.8)
title(xlab = "Intervalo de Clase (Año)", line = 8)
grid(nx = NA, ny = NULL, col = "#D7DBDD", lty = "dotted")
box(bty = "l", col = col_ejes)
par(mar = c(10, 5, 4, 2))
bp2 <- barplot(vals_y,
main = "Gráfica N°2: Distribución de Año de Inicio de Producción — Kansas, EE.UU. (Escala Global)",
cex.main = 0.85,
ylab = "Frecuencia Absoluta (ni)",
col = col_gris, border = "white", axes = FALSE,
ylim = c(0, N),
axisnames = FALSE)
axis(2, col = col_ejes, col.axis = col_ejes)
axis(1, at = bp2, labels = vals_x, col = col_ejes, col.axis = col_ejes, las = 2, cex.axis = 0.8)
title(xlab = "Intervalo de Clase (Año)", line = 8)
grid(nx = NA, ny = NULL, col = "#D7DBDD", lty = "dotted")
box(bty = "l", col = col_ejes)
par(mar = c(10, 5, 4, 2))
bp3 <- barplot(vals_y_pct,
main = "Gráfica N°3: Distribución Porcentual de Año de Inicio de Producción — Kansas, EE.UU.",
cex.main = 0.85,
ylab = "% del Total (hi%)",
col = col_gris, border = "white", axes = FALSE,
ylim = c(0, max(vals_y_pct) * 1.2),
axisnames = FALSE)
axis(2, col = col_ejes, col.axis = col_ejes)
axis(1, at = bp3, labels = vals_x, col = col_ejes, col.axis = col_ejes, las = 2, cex.axis = 0.8)
text(x = bp3, y = vals_y_pct, label = paste0(round(vals_y_pct, 1), "%"),
pos = 3, cex = 0.75, col = col_ejes, font = 2)
title(xlab = "Intervalo de Clase (Año)", line = 8)
grid(nx = NA, ny = NULL, col = "#D7DBDD", lty = "dotted")
box(bty = "l", col = col_ejes)
par(mar = c(10, 5, 4, 2))
bp4 <- barplot(vals_y_pct,
main = "Gráfica N°4: Distribución Porcentual de Año de Inicio de Producción — Kansas, EE.UU. (Escala 0–100%)",
cex.main = 0.85,
ylab = "% del Total (hi%)",
col = col_gris, border = "white", axes = FALSE,
ylim = c(0, 100),
axisnames = FALSE)
axis(2, col = col_ejes, col.axis = col_ejes)
axis(1, at = bp4, labels = vals_x, col = col_ejes, col.axis = col_ejes, las = 2, cex.axis = 0.8)
text(x = bp4, y = vals_y_pct, label = paste0(round(vals_y_pct, 1), "%"),
pos = 3, cex = 0.75, col = col_ejes, font = 2)
title(xlab = "Intervalo de Clase (Año)", line = 8)
abline(h = seq(0, 100, 20), col = "#D7DBDD", lty = "dotted")
box(bty = "l", col = col_ejes)
media <- mean(x)
mediana <- median(x)
q1 <- as.numeric(quantile(x, 0.25))
q3 <- as.numeric(quantile(x, 0.75))
par(mar = c(5, 4, 6, 2))
boxplot(x,
col = col_gris,
border = "black",
horizontal = TRUE,
outline = TRUE,
outpch = 19,
outcol = "#C0392B",
pch = 16,
cex = 0.4,
boxwex = 0.5,
frame.plot = FALSE,
main = "",
xlab = "",
ylab = "",
xlim = c(min(x) - 5, max(x) + 5),
xaxt = "n")
eje_x <- pretty(x, n = 8)
axis(1, at = eje_x, labels = format(eje_x, scientific = FALSE),
cex.axis = 0.8, col = col_ejes, col.axis = col_ejes)
mtext("Año de inicio de producción", side = 1, line = 3.5, cex = 1)
mtext(
"Gráfica N°5: Diagrama de Caja — Año de Inicio de Producción,\narrendamientos de hidrocarburos, Kansas, EE.UU., período 1930–2026.",
side = 3, line = 3, cex = 0.9, font = 2
)
text(q1, 1.30, labels = paste0("Q1 = ", q1), cex = 0.8, font = 2)
text(mediana, 0.65, labels = paste0("Me = ", mediana), cex = 0.8, font = 2)
text(q3, 1.30, labels = paste0("Q3 = ", q3), cex = 0.8, font = 2)
abline(v = media, col = "black", lty = 2, lwd = 1.5)
text(media, 1.48, labels = paste0("x\u0305 = ", round(media, 1)), cex = 0.75, col = "black")
grid(nx = NULL, ny = NA, col = "lightgray", lty = "dotted")
x_asc <- c(li[1], ls)
y_asc <- c(0, Ni_asc)
x_desc <- c(li[1], ls)
y_desc <- c(n, Ni_desc)
col_azul <- "#2E4053"
col_rojo <- "#C0392B"
par(mar = c(10, 6, 4, 8), xpd = TRUE)
plot(x_asc, y_asc,
type = "o", col = col_azul, lwd = 2, pch = 19,
main = "Gráfica N°6: Ojivas Ascendente y Descendente — Año de Inicio de Producción, Kansas EE.UU.",
cex.main = 0.8,
ylab = "Frecuencia Acumulada (Ni)", xlab = "",
ylim = c(0, n * 1.05),
axes = FALSE, frame.plot = FALSE)
axis(1, at = c(li[1], ls), labels = c(li[1], ls), las = 2, cex.axis = 0.8,
col = col_ejes, col.axis = col_ejes)
axis(2, col = col_ejes, col.axis = col_ejes)
title(xlab = "Año", line = 8)
lines(x_desc, y_desc, type = "o", col = col_rojo, lwd = 2, pch = 19)
y_cruce <- n / 2
abline(h = y_cruce, col = "gray60", lty = 3, lwd = 1.2)
abline(v = mediana, col = "gray60", lty = 3, lwd = 1.2)
text(mediana + 1, y_cruce + 2500,
labels = paste0("Cruce ≈ Me = ", mediana),
cex = 0.8, col = "black", font = 3)
legend("right",
legend = c("Ascendente", "Descendente"),
col = c(col_azul, col_rojo), lty = 1, pch = 19,
cex = 0.8, lwd = 2, inset = c(-0.12, 0), bty = "n")
grid()
n_x <- length(x)
moda_val <- as.integer(names(sort(table(x), decreasing = TRUE)[1]))
varianza <- var(x)
desv_std <- sd(x)
cv <- (desv_std / media) * 100
rango_val <- max(x) - min(x)
iqr_val <- IQR(x)
asimetria <- (3 * (media - mediana)) / desv_std
curtosis_val <- (sum((x - media)^4) / n_x) / (desv_std^4)
vals_atipicos <- boxplot.stats(x)$out
num_atipicos <- length(vals_atipicos)
status_atipicos <- ifelse(num_atipicos > 0,
paste0(num_atipicos, " outliers"),
"0 (Sin atípicos)")
indicadores <- data.frame(
Indicador = c(
"Tamaño muestral (n)", "Mínimo", "Máximo", "Rango",
"Media", "Mediana", "Moda",
"Varianza (s²)", "Desviación estándar (s)", "Coef. de variación (CV%)",
"Cuartil 1 (Q1)", "Cuartil 3 (Q3)", "Rango intercuartílico (IQR)",
"Asimetría de Pearson", "Curtosis", "Valores atípicos"
),
Valor = c(
format(n_x, big.mark = ","), min(x), max(x), rango_val,
round(media, 2), mediana, moda_val,
round(varianza, 2), round(desv_std, 2), paste0(round(cv, 2), "%"),
q1, q3, iqr_val,
round(asimetria, 4), round(curtosis_val, 4),
status_atipicos
),
stringsAsFactors = FALSE
)
kable(
indicadores,
caption = "Tabla N°2: Estadísticos Descriptivos — Año de Inicio de Producción (CUMULATIVE_YEAR_STARTED), arrendamientos de hidrocarburos, Kansas, EE.UU.",
col.names = c("Indicador", "Valor"),
align = c("l", "c")
) %>%
kable_styling(
bootstrap_options = c("striped", "hover", "condensed", "bordered"),
full_width = FALSE, font_size = 12
) %>%
row_spec(0, bold = TRUE, background = "#d3d3d3", color = "black")
| Indicador | Valor |
|---|---|
| Tamaño muestral (n) | 89,034 |
| Mínimo | 1930 |
| Máximo | 2026 |
| Rango | 96 |
| Media | 1984.71 |
| Mediana | 1983 |
| Moda | 1957 |
| Varianza (s²) | 381.25 |
| Desviación estándar (s) | 19.53 |
| Coef. de variación (CV%) | 0.98% |
| Cuartil 1 (Q1) | 1970 |
| Cuartil 3 (Q3) | 2003 |
| Rango intercuartílico (IQR) | 33 |
| Asimetría de Pearson | 0.2629 |
| Curtosis | 2.3369 |
| Valores atípicos | 0 (Sin atípicos) |
La variable Año de Inicio de Producción (CUMULATIVE_YEAR_STARTED) registra el año en que cada arrendamiento de hidrocarburos comenzó su actividad productiva en Kansas, abarcando desde 1930 hasta 2026.
Con base en los 89,034 registros válidos agrupados en 10 intervalos de amplitud 10 años, se extraen las siguientes conclusiones:
Tendencia central. La media (1984.7) y la mediana (1983) revelan que más de la mitad de los arrendamientos inició producción antes del año 1983, lo que indica que la historia productiva de Kansas está fuertemente anclada en el siglo XX. La moda es el año 1957, el año que más veces se repite como inicio de producción en los registros.
Dispersión. La desviación estándar de 19.5 años y el CV de 0.98% confirman que el conjunto de arrendamientos abarca casi un siglo de actividad continua. El rango intercuartílico (IQR = 33 años) señala que el 50% central de los registros se concentra en un período de 33 años.
Forma de la distribución. La asimetría de Pearson de 0.2629 indica una distribución asimétrica positiva: existe una concentración histórica de arrendamientos en las décadas pasadas, con una cola hacia los años más recientes. La curtosis de 2.3369 señala una distribución platicúrtica: la actividad productiva se distribuyó de forma relativamente uniforme a lo largo de las décadas.
Intervalo de mayor actividad. El intervalo con mayor frecuencia concentra 19,406 arrendamientos (21.80%), coincidiendo históricamente con el auge de la industria petrolera en Kansas motivado por los precios internacionales del petróleo y los avances tecnológicos en extracción.
Conclusión general. La actividad de arrendamiento de hidrocarburos en Kansas muestra una historia productiva extensa que se inició con fuerza en el siglo XX y que ha continuado, aunque con menor intensidad, hacia años más recientes. La distribución temporal sugiere que el sector atravesó etapas de expansión y contracción ligadas a factores económicos y tecnológicos, y que la base instalada de arrendamientos históricos sigue siendo el núcleo central del inventario productivo del estado.
Autor: Leslye Quinchiguango — Análisis Estadístico, Kansas Hydrocarbon Leases Dataset