Se carga el conjunto de datos de arrendamientos de hidrocarburos del estado de Kansas, EE.UU., registrados por el Kansas Geological Survey.
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
La variable CUMULATIVE_YEAR_STARTED registra el año en que inició la producción acumulada de cada arrendamiento. Se filtran valores enteros válidos en el rango 1930–2026.
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.
| 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. |
Justificación: La variable presenta 95 valores únicos dentro de un rango de 96 años. Al superar el umbral de 10 valores distintos, se agrupa en intervalos de clase y se trata como variable cuantitativa continua. La escala es de intervalo: el año 0 no representa ausencia de tiempo, por lo que no existe un cero absoluto.
\[k = 1 + 3{,}322 \cdot \log_{10}(n) \qquad c = \left\lceil \frac{\text{Rango}}{k} \right\rceil\]
x <- x_raw
n <- length(x)
k <- ceiling(1 + 3.322 * log10(n))
rango <- max(x) - min(x)
c_amp <- ceiling(rango / k)
cat("n =", n, "| k =", k, "| Rango =", rango, "| Amplitud c =", c_amp, "\n")
## n = 89034 | k = 18 | Rango = 96 | Amplitud c = 6
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 # marca de clase correcta: (Li + Ls) / 2
Se construye la tabla de la variable cuantitativa continua Año de Inicio de Producción, correspondiente a los arrendamientos de hidrocarburos de Kansas, EE.UU., período 1930–2026.
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 # límite superior real del intervalo (abierto)
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))
# Etiquetas de intervalos con notación [Li, Ls)
etiq_intervalo <- paste0("[", li, " – ", ls, ")")
etiq_intervalo[k] <- paste0("[", li[k], " – ", ls[k] - 1, "]") # último: cerrado
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
)
# Convertir TODAS las columnas numéricas a character antes de armar el total
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)
)
# Fila de totales: todos los valores reales
total_row <- data.frame(
Intervalo = "**TOTAL**",
MC = "—",
ni = as.character(n),
hi_pct = "100.00%",
hi_real = "1.0000",
Ni_a = as.character(n),
Hi_a = "1.0000",
Ni_d = as.character(n),
Hi_d = "1.0000",
stringsAsFactors = FALSE
)
tabla_final <- bind_rows(tabla_df2, total_row)
kable(
tabla_final,
caption = paste0(
"Tabla N°1: Distribución de Frecuencias de la Variable Cuantitativa Continua ",
"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 – 1936) | 1933 | 7 | 0.01% | 0.0001 | 7 | 0.0001 | 89034 | 1.0000 |
| [1936 – 1942) | 1939 | 1509 | 1.69% | 0.0169 | 1516 | 0.0170 | 89027 | 0.9999 |
| [1942 – 1948) | 1945 | 1118 | 1.26% | 0.0126 | 2634 | 0.0296 | 87518 | 0.9830 |
| [1948 – 1954) | 1951 | 2118 | 2.38% | 0.0238 | 4752 | 0.0534 | 86400 | 0.9704 |
| [1954 – 1960) | 1957 | 5690 | 6.39% | 0.0639 | 10442 | 0.1173 | 84282 | 0.9466 |
| [1960 – 1966) | 1963 | 5078 | 5.70% | 0.0570 | 15520 | 0.1743 | 78592 | 0.8827 |
| [1966 – 1972) | 1969 | 8458 | 9.50% | 0.0950 | 23978 | 0.2693 | 73514 | 0.8257 |
| [1972 – 1978) | 1975 | 7063 | 7.93% | 0.0793 | 31041 | 0.3486 | 65056 | 0.7307 |
| [1978 – 1984) | 1981 | 13534 | 15.20% | 0.1520 | 44575 | 0.5007 | 57993 | 0.6514 |
| [1984 – 1990) | 1987 | 9445 | 10.61% | 0.1061 | 54020 | 0.6067 | 44459 | 0.4993 |
| [1990 – 1996) | 1993 | 7557 | 8.49% | 0.0849 | 61577 | 0.6916 | 35014 | 0.3933 |
| [1996 – 2002) | 1999 | 4330 | 4.86% | 0.0486 | 65907 | 0.7402 | 27457 | 0.3084 |
| [2002 – 2008) | 2005 | 8902 | 10.00% | 0.1000 | 74809 | 0.8402 | 23127 | 0.2598 |
| [2008 – 2014) | 2011 | 9043 | 10.16% | 0.1016 | 83852 | 0.9418 | 14225 | 0.1598 |
| [2014 – 2020) | 2017 | 3797 | 4.26% | 0.0426 | 87649 | 0.9844 | 5182 | 0.0582 |
| [2020 – 2026) | 2023 | 1373 | 1.54% | 0.0154 | 89022 | 0.9999 | 1385 | 0.0156 |
| [2026 – 2032) | 2029 | 12 | 0.01% | 0.0001 | 89034 | 1.0000 | 12 | 0.0001 |
| [2032 – 2026] | 2029.5 | 0 | 0.00% | 0.0000 | 89034 | 1.0000 | 0 | 0.0000 |
| TOTAL | — | 89034 | 100.00% | 1.0000 | 89034 | 1.0000 | 89034 | 1.0000 |
n_x <- length(x)
media <- mean(x)
mediana <- median(x)
idx_moda <- which.max(freq_abs)
moda_mc <- mc[idx_moda]
varianza <- var(x)
desv_std <- sd(x)
cv <- (desv_std / media) * 100
rango_val <- max(x) - min(x)
q1 <- as.numeric(quantile(x, 0.25))
q3 <- as.numeric(quantile(x, 0.75))
iqr_val <- IQR(x)
asimetria <- (3 * (media - mediana)) / desv_std
curtosis_val <- (sum((x - media)^4) / n_x) / (desv_std^4)
indicadores <- data.frame(
Indicador = c(
"Tamaño muestral (n)", "Mínimo", "Máximo", "Rango",
"Media (x̄)", "Mediana (Me)", "Moda (marca de clase modal)",
"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"
),
Valor = c(
format(n_x, big.mark = ","), min(x), max(x), rango_val,
round(media, 2), mediana, round(moda_mc, 1),
round(varianza, 2), round(desv_std, 2), paste0(round(cv, 2), "%"),
q1, q3, iqr_val,
round(asimetria, 4), round(curtosis_val, 4)
),
stringsAsFactors = FALSE
)
kable(
indicadores,
caption = "Tabla N°2: Indicadores Estadísticos de la Variable Año de Inicio de Producción, 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 (x̄) |
1984.71
|
grises <- gray(seq(0.25, 0.80, length.out = k))
par(mar = c(5, 6, 6, 2))
h_obj <- hist(x, breaks = breaks_vec, plot = FALSE)
plot(h_obj,
col = grises, border = "black",
freq = TRUE, main = "", xlab = "", ylab = "", las = 1)
mtext("Frecuencia Absoluta (ni)", side = 2, line = 4.5, cex = 1)
mtext("Año de inicio de producción", side = 1, line = 3.5, cex = 1)
mtext(
"Gráfica N°1: Histograma de Frecuencias Absolutas — 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
)
mc_ext <- c(mc[1] - c_amp, mc, mc[k] + c_amp)
ni_ext <- c(0, freq_abs, 0)
par(mar = c(5, 6, 6, 2))
plot(mc_ext, ni_ext,
type = "n", xlab = "", ylab = "", main = "",
ylim = c(0, max(ni_ext) * 1.12), las = 1)
polygon(c(mc_ext[1], mc_ext, tail(mc_ext,1)),
c(0, ni_ext, 0), col = "gray80", border = NA)
lines(mc_ext, ni_ext, col = "black", lwd = 2)
points(mc_ext, ni_ext, pch = 16, col = "black", cex = 0.9)
mtext("Frecuencia Absoluta (ni)", side = 2, line = 4.5, cex = 1)
mtext("Marca de Clase (Año)", side = 1, line = 3.5, cex = 1)
mtext(
"Gráfica N°2: Polígono de Frecuencias — 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
)
par(mar = c(5, 4, 6, 2))
boxplot(x,
col = "gray75", border = "black",
horizontal = TRUE, outline = TRUE, pch = 16, cex = 0.5,
main = "", xlab = "", ylab = "")
mtext("Año de inicio de producción", side = 1, line = 3.5, cex = 1)
mtext(
"Gráfica N°3: Boxplot — 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.38, labels = paste0("Q1=", q1), cex = 0.8)
text(mediana, 0.62, labels = paste0("Me=", mediana), cex = 0.8)
text(q3, 1.38, labels = paste0("Q3=", q3), cex = 0.8)
x_asc <- c(li[1], ls)
y_asc <- c(0, Ni_asc)
par(mar = c(5, 7, 6, 2))
plot(x_asc, y_asc,
type = "b", pch = 16, lwd = 2, col = "black",
ylim = c(0, n * 1.05), xlab = "", ylab = "", main = "", las = 1)
grid(col = "gray85", lty = "dotted")
mtext("Frec. Absoluta Acumulada Creciente Ni ↑", side = 2, line = 5, cex = 0.9)
mtext("Año de inicio de producción", side = 1, line = 3.5, cex = 1)
mtext(
"Gráfica N°4: Ojiva Creciente — 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
)
x_desc <- c(li[1], ls)
y_desc <- c(n, Ni_desc)
par(mar = c(5, 7, 6, 2))
plot(x_desc, y_desc,
type = "b", pch = 16, lwd = 2, col = "black",
ylim = c(0, n * 1.05), xlab = "", ylab = "", main = "", las = 1)
grid(col = "gray85", lty = "dotted")
mtext("Frec. Absoluta Acumulada Decreciente Ni ↓", side = 2, line = 5, cex = 0.9)
mtext("Año de inicio de producción", side = 1, line = 3.5, cex = 1)
mtext(
"Gráfica N°5: Ojiva Decreciente — 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
)
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 18 intervalos de amplitud 6 años, se pueden extraer las siguientes conclusiones:
Tendencia central. La media (1984.7) y la mediana
(1983) revelan que más de la mitad de los arrendamientos iniciaron
producción antes del año 1983, lo que indica que la historia productiva
de Kansas está fuertemente anclada en el siglo XX. La
marca de clase modal corresponde al intervalo
[r li[idx_moda] – 1984)`, período de mayor actividad
registrada.
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, lo que denota épocas de mayor actividad relativa frente a períodos de menor actividad.
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, posiblemente reflejando la madurez del sector y la reducción de nuevas concesiones. 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, sin picos extremadamente pronunciados.
Intervalo de mayor actividad. El intervalo modal
[r li[idx_moda] – 1984)` concentra 13,534
arrendamientos (15.20%), lo que históricamente coincide con las épocas
de mayor expansión de la industria petrolera en el estado de Kansas.
Este período probablemente refleja el auge de perforaciones motivado por
precios internacionales favorables o avances tecnológicos en la
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