Se carga el conjunto de datos de arrendamientos de hidrocarburos del estado de Kansas, EE.UU., registrados por el Kansas Geological Survey.
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
La variable LATITUDE representa la coordenada geográfica norte-sur de cada arrendamiento de hidrocarburos registrado en Kansas. Se filtran únicamente valores válidos dentro del rango geográfico del estado (36.99° – 40.00° N).
x_raw <- datos %>%
filter(!is.na(LATITUDE), LATITUDE >= 36.99, LATITUDE <= 40.01) %>%
pull(LATITUDE)
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: 32279
cat("Como hay", n_unique, "> 10 valores únicos, se agrupa en intervalos de clase.\n")
## Como hay 32279 > 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 | LATITUDE (coordenada geográfica norte-sur del arrendamiento) |
| Rango | 36.99° N a 40.00° N |
| Fuente | Kansas Geological Survey – Kansas, EE.UU. |
Justificación: La variable LATITUDE toma valores decimales continuos con 32279 valores únicos, superando ampliamente el umbral de 10. Por convención estadística se agrupa en intervalos de clase y se trata como variable cuantitativa continua. La escala es de intervalo, ya que el cero geográfico (ecuador) es convencional y no representa ausencia de latitud.
\[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 <- rango / k
cat("n =", n, "| k =", k, "| Rango =", round(rango, 4), "| Amplitud c =", round(c_amp, 4), "\n")
## n = 47757 | k = 17 | Rango = 3.0058 | Amplitud c = 0.1768
lim_inf <- min(x) + (0:(k - 1)) * c_amp
lim_sup <- lim_inf + c_amp
lim_sup[k] <- max(x) + 0.0001 # cierra el último intervalo
mc <- (lim_inf + lim_sup) / 2 # marca de clase: (Li + Ls) / 2
Se construye la tabla de la variable cuantitativa continua Latitude, correspondiente a los arrendamientos de hidrocarburos registrados en Kansas, EE.UU., durante el período histórico disponible (n = 47,757).
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))
# Etiquetas de intervalos con notación [Li, Ls)
etiq_intervalo <- paste0("[", round(li, 4), " – ", round(ls, 4), ")")
etiq_intervalo[k] <- paste0("[", round(li[k], 4), " – ", round(ls[k], 4), "]")
tabla_df <- data.frame(
Intervalo = etiq_intervalo,
MC = round(mc, 4),
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 = as.character(round(sum(mc), 2)),
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 de la Variable Cuantitativa Continua Latitude, ",
"registrada en los arrendamientos de hidrocarburos del estado de Kansas, EE.UU., ",
"período histórico disponible (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) |
|---|---|---|---|---|---|---|---|---|
| [36.9944 – 37.1712) | 37.0828 | 6299 | 13.19% | 0.1319 | 6299 | 0.1319 | 47757 | 1.0000 |
| [37.1712 – 37.3481) | 37.2596 | 5330 | 11.16% | 0.1116 | 11629 | 0.2435 | 41458 | 0.8681 |
| [37.3481 – 37.5249) | 37.4365 | 5469 | 11.45% | 0.1145 | 17098 | 0.3580 | 36128 | 0.7565 |
| [37.5249 – 37.7017) | 37.6133 | 3760 | 7.87% | 0.0787 | 20858 | 0.4368 | 30659 | 0.6420 |
| [37.7017 – 37.8785) | 37.7901 | 2983 | 6.25% | 0.0625 | 23841 | 0.4992 | 26899 | 0.5632 |
| [37.8785 – 38.0553) | 37.9669 | 3106 | 6.50% | 0.0650 | 26947 | 0.5643 | 23916 | 0.5008 |
| [38.0553 – 38.2321) | 38.1437 | 2797 | 5.86% | 0.0586 | 29744 | 0.6228 | 20810 | 0.4357 |
| [38.2321 – 38.4089) | 38.3205 | 2922 | 6.12% | 0.0612 | 32666 | 0.6840 | 18013 | 0.3772 |
| [38.4089 – 38.5857) | 38.4973 | 3087 | 6.46% | 0.0646 | 35753 | 0.7486 | 15091 | 0.3160 |
| [38.5857 – 38.7626) | 38.6741 | 3311 | 6.93% | 0.0693 | 39064 | 0.8180 | 12004 | 0.2514 |
| [38.7626 – 38.9394) | 38.851 | 2231 | 4.67% | 0.0467 | 41295 | 0.8647 | 8693 | 0.1820 |
| [38.9394 – 39.1162) | 39.0278 | 1701 | 3.56% | 0.0356 | 42996 | 0.9003 | 6462 | 0.1353 |
| [39.1162 – 39.293) | 39.2046 | 1642 | 3.44% | 0.0344 | 44638 | 0.9347 | 4761 | 0.0997 |
| [39.293 – 39.4698) | 39.3814 | 1173 | 2.46% | 0.0246 | 45811 | 0.9593 | 3119 | 0.0653 |
| [39.4698 – 39.6466) | 39.5582 | 601 | 1.26% | 0.0126 | 46412 | 0.9718 | 1946 | 0.0407 |
| [39.6466 – 39.8234) | 39.735 | 757 | 1.59% | 0.0159 | 47169 | 0.9877 | 1345 | 0.0282 |
| [39.8234 – 40.0003] | 39.9119 | 588 | 1.23% | 0.0123 | 47757 | 1.0000 | 588 | 0.0123 |
| TOTAL | 654.45 | 47757 | 100.00% | 1.0000 | 47757 | 1.0000 | 47757 | 1.0000 |
n_x <- length(x)
media <- mean(x)
mediana <- median(x)
moda_val <- as.numeric(names(sort(table(round(x, 4)), decreasing = TRUE)[1]))
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", "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"
),
Valor = c(
format(n_x, big.mark = ","), round(min(x), 4), round(max(x), 4), round(rango_val, 4),
round(media, 4), round(mediana, 4), moda_val,
round(varianza, 4), round(desv_std, 4), paste0(round(cv, 2), "%"),
round(q1, 4), round(q3, 4), round(iqr_val, 4),
round(asimetria, 4), round(curtosis_val, 4)
),
stringsAsFactors = FALSE
)
kable(
indicadores,
caption = "Tabla N°2: Indicadores Estadísticos de la Variable Latitude, 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) | 47,757 |
| Mínimo | 36.9944 |
| Máximo | 40.0002 |
| Rango | 3.0058 |
| Media | 38.0146 |
| Mediana | 37.8808 |
| Moda | 37.014 |
| Varianza (s²) | 0.5712 |
| Desviación estándar (s) | 0.7558 |
| Coef. de variación (CV%) | 1.99% |
| Cuartil 1 (Q1) | 37.3603 |
| Cuartil 3 (Q3) | 38.5872 |
| Rango intercuartílico (IQR) | 1.2269 |
| Asimetría de Pearson | 0.531 |
| Curtosis | 2.3321 |
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("Latitud (°N)", side = 1, line = 3.5, cex = 1)
mtext(
"Gráfica N°1: Histograma de Frecuencias Absolutas de la Variable Latitude,\narrendamientos de hidrocarburos, Kansas, EE.UU.",
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 (Latitud °N)", side = 1, line = 3.5, cex = 1)
mtext(
"Gráfica N°2: Polígono de Frecuencias de la Variable Latitude,\narrendamientos de hidrocarburos, Kansas, EE.UU.",
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("Latitud (°N)", side = 1, line = 3.5, cex = 1)
mtext(
"Gráfica N°3: Boxplot de la Variable Latitude,\narrendamientos de hidrocarburos, Kansas, EE.UU.",
side = 3, line = 3, cex = 0.9, font = 2
)
text(q1, 1.38, labels = paste0("Q1=", round(q1, 4)), cex = 0.8)
text(mediana, 0.62, labels = paste0("Me=", round(mediana, 4)), cex = 0.8)
text(q3, 1.38, labels = paste0("Q3=", round(q3, 4)), 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("Latitud (°N)", side = 1, line = 3.5, cex = 1)
mtext(
"Gráfica N°4: Ojiva Creciente de la Variable Latitude,\narrendamientos de hidrocarburos, Kansas, EE.UU.",
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("Latitud (°N)", side = 1, line = 3.5, cex = 1)
mtext(
"Gráfica N°5: Ojiva Decreciente de la Variable Latitude,\narrendamientos de hidrocarburos, Kansas, EE.UU.",
side = 3, line = 3, cex = 0.9, font = 2
)
La variable Latitude representa la coordenada geográfica norte-sur de cada arrendamiento de hidrocarburos en Kansas, expresada en grados decimales Norte (°N), con valores comprendidos entre 36.99° N y 40.00° N.
Con base en los 47,757 registros válidos agrupados en 17 intervalos de amplitud 0.1768°, se pueden extraer las siguientes conclusiones:
Tendencia central. La media (38.0146°N) y la mediana (37.8808°N) son muy cercanas entre sí, lo que indica que la distribución de arrendamientos no presenta un sesgo extremo. La mitad de los arrendamientos se localiza al sur del paralelo 37.8808°N, sugiriendo que la actividad petrolera tiene un centro de gravedad en la zona centro-sur del estado.
Dispersión. El coeficiente de variación del 1.99% refleja una variabilidad baja, lo que indica que los arrendamientos tienden a concentrarse en una franja latitudinal relativamente estrecha del territorio. El rango intercuartílico (IQR = 1.2269°) confirma que el 50% central de los datos se encuentra en una franja de 1.2269 grados de latitud.
Forma de la distribución. La asimetría de Pearson de 0.531 indica una distribución asimétrica positiva: existe mayor concentración de arrendamientos en las latitudes del norte, con una cola que se extiende hacia el sur. La curtosis de 2.3321 señala una distribución platicúrtica: los arrendamientos se dispersan de forma relativamente uniforme entre las latitudes, con colas más ligeras que una distribución normal.
Valor modal. La moda de la variable es 37.014°N, el valor más frecuente en los registros. El intervalo de mayor actividad concentra 6,299 arrendamientos (13.19%), lo que indica que esta franja geográfica ha sido históricamente la zona de mayor explotación de hidrocarburos en Kansas.
Conclusión general. La actividad de arrendamiento de hidrocarburos en Kansas no se distribuye de manera uniforme en el territorio: existe una franja latitudinal preferencial donde se concentra la producción, mientras que los extremos norte y sur del estado presentan menor actividad relativa. Esta distribución responde probablemente a las características geológicas del subsuelo kansano.
*Autor: Ariel Baldeon