1. Configuración y Carga de Datos

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

2. Extracción y Limpieza de la Variable

La variable LONGITUDE representa la coordenada geográfica este-oeste de cada arrendamiento de hidrocarburos registrado en Kansas. Se filtran únicamente valores válidos dentro del rango geográfico del estado (-102.05° – -94.61° O).

x_raw <- datos %>%
  filter(!is.na(LONGITUDE), LONGITUDE >= -102.05, LONGITUDE <= -94.61) %>%
  pull(LONGITUDE)

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: 32629
cat("Como hay", n_unique, "> 10 valores únicos, se agrupa en intervalos de clase.\n")
## Como hay 32629 > 10 valores únicos, se agrupa en intervalos de clase.

3. Identificación de la Variable

Criterio Clasificación
Tipo Cuantitativa Continua (agrupada — más de 10 valores únicos)
Escala De intervalo
Variable LONGITUDE (coordenada geográfica este-oeste del arrendamiento)
Rango -102.05° O a -94.61° O
Fuente Kansas Geological Survey – Kansas, EE.UU.

Justificación: La variable LONGITUDE toma valores decimales continuos con 32629 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 (meridiano de Greenwich) es convencional y no representa ausencia de longitud.


4. Determinación de los Intervalos (Regla de Sturges)

\[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 = 7.426 | Amplitud c = 0.4368
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

5. Tabla de Distribución de Frecuencias

Se construye la tabla de la variable cuantitativa continua Longitude, 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 Longitude, ",
    "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")
Tabla N°1: Distribución de Frecuencias de la Variable Cuantitativa Continua Longitude, registrada en los arrendamientos de hidrocarburos del estado de Kansas, EE.UU., período histórico disponible (n = 47,757 registros válidos).
Frecuencia Absoluta
Frecuencia Relativa
Acumulada ↑
Acumulada ↓
Intervalo [Li – Ls) Marca de Clase ni (FA) hi % hi (decimal) Ni ↑ (FAAa) Hi ↑ (FRAa) Ni ↓ (FAAd) Hi ↓ (FRAd)
[-102.0439 – -101.6071) -101.8255 2213 4.63% 0.0463 2213 0.0463 47757 1.0000
[-101.6071 – -101.1703) -101.3887 2516 5.27% 0.0527 4729 0.0990 45544 0.9537
[-101.1703 – -100.7334) -100.9519 5205 10.90% 0.1090 9934 0.2080 43028 0.9010
[-100.7334 – -100.2966) -100.515 2178 4.56% 0.0456 12112 0.2536 37823 0.7920
[-100.2966 – -99.8598) -100.0782 2458 5.15% 0.0515 14570 0.3051 35645 0.7464
[-99.8598 – -99.423) -99.6414 3977 8.33% 0.0833 18547 0.3884 33187 0.6949
[-99.423 – -98.9862) -99.2046 4644 9.72% 0.0972 23191 0.4856 29210 0.6116
[-98.9862 – -98.5493) -98.7678 6007 12.58% 0.1258 29198 0.6114 24566 0.5144
[-98.5493 – -98.1125) -98.3309 3895 8.16% 0.0816 33093 0.6929 18559 0.3886
[-98.1125 – -97.6757) -97.8941 1677 3.51% 0.0351 34770 0.7281 14664 0.3071
[-97.6757 – -97.2389) -97.4573 1021 2.14% 0.0214 35791 0.7494 12987 0.2719
[-97.2389 – -96.8021) -97.0205 1788 3.74% 0.0374 37579 0.7869 11966 0.2506
[-96.8021 – -96.3652) -96.5836 693 1.45% 0.0145 38272 0.8014 10178 0.2131
[-96.3652 – -95.9284) -96.1468 1337 2.80% 0.0280 39609 0.8294 9485 0.1986
[-95.9284 – -95.4916) -95.71 4236 8.87% 0.0887 43845 0.9181 8148 0.1706
[-95.4916 – -95.0548) -95.2732 3083 6.46% 0.0646 46928 0.9826 3912 0.0819
[-95.0548 – -94.6178] -94.8363 829 1.74% 0.0174 47757 1.0000 829 0.0174
TOTAL -1671.63 47757 100.00% 1.0000 47757 1.0000 47757 1.0000

6. Indicadores Estadísticos

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 Longitude, 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")
Tabla N°2: Indicadores Estadísticos de la Variable Longitude, arrendamientos de hidrocarburos, Kansas, EE.UU.
Indicador Valor
Tamaño muestral (n) 47,757
Mínimo -102.0439
Máximo -94.6179
Rango 7.426
Media -98.7189
Mediana -98.9294
Moda -95.3701
Varianza (s²) 3.9556
Desviación estándar (s) 1.9889
Coef. de variación (CV%) -2.01%
Cuartil 1 (Q1) -100.3476
Cuartil 3 (Q3) -97.2287
Rango intercuartílico (IQR) 3.1189
Asimetría de Pearson 0.3176
Curtosis 2.0715

7. Representación Gráfica

7.1 Gráfica N°1 — Histograma

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("Longitud (°O)", side = 1, line = 3.5, cex = 1)
mtext(
  "Gráfica N°1: Histograma de Frecuencias Absolutas de la Variable Longitude,\narrendamientos de hidrocarburos, Kansas, EE.UU.",
  side = 3, line = 3, cex = 0.9, font = 2
)

7.2 Gráfica N°2 — Polígono de Frecuencias

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 (Longitud °O)", side = 1, line = 3.5, cex = 1)
mtext(
  "Gráfica N°2: Polígono de Frecuencias de la Variable Longitude,\narrendamientos de hidrocarburos, Kansas, EE.UU.",
  side = 3, line = 3, cex = 0.9, font = 2
)

7.3 Gráfica N°3 — Boxplot

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("Longitud (°O)", side = 1, line = 3.5, cex = 1)
mtext(
  "Gráfica N°3: Boxplot de la Variable Longitude,\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)

7.4 Gráfica N°4 — Ojiva Creciente

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("Longitud (°O)", side = 1, line = 3.5, cex = 1)
mtext(
  "Gráfica N°4: Ojiva Creciente de la Variable Longitude,\narrendamientos de hidrocarburos, Kansas, EE.UU.",
  side = 3, line = 3, cex = 0.9, font = 2
)

7.5 Gráfica N°5 — Ojiva Decreciente

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("Longitud (°O)", side = 1, line = 3.5, cex = 1)
mtext(
  "Gráfica N°5: Ojiva Decreciente de la Variable Longitude,\narrendamientos de hidrocarburos, Kansas, EE.UU.",
  side = 3, line = 3, cex = 0.9, font = 2
)


8. Interpretación General

La variable Longitude representa la coordenada geográfica este-oeste de cada arrendamiento de hidrocarburos en Kansas, expresada en grados decimales Oeste (°O), con valores comprendidos entre -102.05° O y -94.61° O.

Con base en los 47,757 registros válidos agrupados en 17 intervalos de amplitud 0.4368°, se pueden extraer las siguientes conclusiones:

Tendencia central. La media (-98.7189°O) y la mediana (-98.9294°O) 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 este del meridiano -98.9294°O, sugiriendo que la actividad petrolera tiene un centro de gravedad en la zona centro-este del estado.

Dispersión. El coeficiente de variación del -2.01% refleja una variabilidad baja, lo que indica que los arrendamientos tienden a concentrarse en una franja longitudinal relativamente estrecha del territorio. El rango intercuartílico (IQR = 3.1189°) confirma que el 50% central de los datos se encuentra en una franja de 3.1189 grados de longitud.

Forma de la distribución. La asimetría de Pearson de 0.3176 indica una distribución asimétrica positiva: existe mayor concentración de arrendamientos en las longitudes del oeste, con una cola que se extiende hacia el este. La curtosis de 2.0715 señala una distribución platicúrtica: los arrendamientos se dispersan de forma relativamente uniforme entre las longitudes, con colas más ligeras que una distribución normal.

Valor modal. La moda de la variable es -95.3701°O, el valor más frecuente en los registros. El intervalo de mayor actividad concentra 6,007 arrendamientos (12.58%), 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 longitudinal preferencial donde se concentra la producción, mientras que los extremos este y oeste del estado presentan menor actividad relativa. Esta distribución responde probablemente a las características geológicas del subsuelo kansano.


Autor: Ariel Baldeon