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.

ruta_archivo <- "C:/Users/thann/OneDrive/Escritorio/ESTADISTICA.LOL/datos_vale.csv"

datos_vale <- read_delim(
  ruta_archivo,
  delim = ";",
  show_col_types = FALSE
)

cat("Base de datos cargada correctamente.\n")
## Base de datos cargada correctamente.
cat("Total de registros (filas):", nrow(datos_vale), "\n")
## Total de registros (filas): 104173

2. Extracción y Limpieza de la Variable

La variable PRODUCES_OIL (Produce Petróleo) indica si el arrendamiento registra producción de petróleo. Se filtran únicamente los valores válidos: Yes (Sí) y No.

x_raw <- datos_vale %>%
  filter(PRODUCES_OIL %in% c("Yes", "No")) %>%
  mutate(
    produce_petroleo = case_when(
      PRODUCES_OIL == "Yes" ~ "Sí",
      PRODUCES_OIL == "No"  ~ "No"
    )
  ) %>%
  pull(produce_petroleo)

n <- length(x_raw)

cat("Observaciones válidas:", n, "\n")
## Observaciones válidas: 95960
cat("Valores únicos:", length(unique(x_raw)), "\n")
## Valores únicos: 2

3. Identificación de la Variable

Criterio Clasificación
Nombre Produce Petróleo
Nombre técnico PRODUCES_OIL
Tipo Cualitativa
Subtipo Nominal dicotómica
Dominio {Sí, No}
Rango 2 categorías
Unidad No aplica
Escala Nominal
Fuente Kansas Geological Survey – Kansas, EE.UU.

Justificación: La variable toma únicamente dos valores posibles (Sí/No), sin orden natural entre ellos. Corresponde a una variable cualitativa nominal dicotómica. Se construye la tabla de distribución de frecuencias con frecuencia absoluta, porcentual y en fracción.


4. Tabla de Distribución de Frecuencias

Se construye la tabla de distribución de frecuencias de la variable cualitativa nominal Produce Petróleo, correspondiente a los arrendamientos de hidrocarburos registrados en Kansas, EE.UU., durante el período histórico disponible (n = 95,960).

freq_abs  <- table(x_raw)
categorias <- names(freq_abs)
ni        <- as.integer(freq_abs)
hi_pct    <- ni / n * 100
hi_frac   <- ni / n

tabla_df <- data.frame(
  Categoria  = categorias,
  ni         = ni,
  hi_pct     = sprintf("%.2f%%", hi_pct),
  hi_frac    = sprintf("%.4f",   hi_frac),
  stringsAsFactors = FALSE
)

total_row <- data.frame(
  Categoria = "**TOTAL**",
  ni        = n,
  hi_pct    = "100.00%",
  hi_frac   = "1.0000",
  stringsAsFactors = FALSE
)

tabla_df$ni <- as.character(tabla_df$ni)
total_row$ni <- as.character(total_row$ni)

tabla_final <- bind_rows(tabla_df, total_row)

kable(
  tabla_final,
  caption = paste0(
    "Cuadro N°1: Distribución de Frecuencias de la Variable Cualitativa Nominal Produce Petróleo, ",
    "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("Produce Petróleo", "Frecuencia (nᵢ)", "Porcentaje (hᵢ %)", "Porcentaje en fracción (hᵢ)"),
  align     = c("l", "c", "c", "c"),
  escape    = FALSE
) %>%
  kable_styling(
    bootstrap_options = c("striped", "hover", "condensed", "bordered"),
    full_width = TRUE, font_size = 12
  ) %>%
  row_spec(0, bold = TRUE, background = "#d3d3d3", color = "black") %>%
  row_spec(nrow(tabla_final), bold = TRUE, background = "#a9a9a9", color = "black")
Cuadro N°1: Distribución de Frecuencias de la Variable Cualitativa Nominal Produce Petróleo, registrada en los arrendamientos de hidrocarburos del estado de Kansas, EE.UU., período histórico disponible (n = 95,960 registros válidos).
Produce Petróleo Frecuencia (nᵢ) Porcentaje (hᵢ %) Porcentaje en fracción (hᵢ)
No 39216 40.87% 0.4087
56744 59.13% 0.5913
TOTAL 95960 100.00% 1.0000

5. Representación Gráfica

5.1 Gráfica N°1: Distribución de Frecuencia Absoluta de la Variable Produce Petróleo, Kansas, EE.UU.

freq_ord  <- sort(table(x_raw), decreasing = TRUE)
colores_g <- gray(seq(0.35, 0.75, length.out = length(freq_ord)))

par(mar = c(5, 6, 7, 2))
bp <- barplot(
  as.numeric(freq_ord),
  names.arg = names(freq_ord),
  col       = colores_g,
  border    = "black",
  ylim      = c(0, max(as.numeric(freq_ord)) * 1.18),
  xlab      = "", ylab = "", main = "", las = 1
)
text(bp, as.numeric(freq_ord) + max(as.numeric(freq_ord)) * 0.02,
     labels = format(as.numeric(freq_ord), big.mark = ","), cex = 0.9)
mtext("Frecuencia Absoluta (nᵢ)", side = 2, line = 4.5, cex = 1)
mtext("Produce Petróleo",         side = 1, line = 3,   cex = 1)
mtext(
  "Gráfica N°1: Distribución de Frecuencia Absoluta\nde la Variable Produce Petróleo, Kansas, EE.UU.",
  side = 3, line = 3.5, cex = 0.9, font = 2
)

5.2 Gráfica N°2: Distribución Porcentual de la Variable Produce Petróleo, Kansas, EE.UU.

pct_ord <- sort(table(x_raw) / n * 100, decreasing = TRUE)

par(mar = c(5, 6, 7, 2))
bp2 <- barplot(
  as.numeric(pct_ord),
  names.arg = names(pct_ord),
  col       = colores_g,
  border    = "black",
  ylim      = c(0, max(as.numeric(pct_ord)) * 1.18),
  xlab      = "", ylab = "", main = "", las = 1
)
text(bp2, as.numeric(pct_ord) + max(as.numeric(pct_ord)) * 0.02,
     labels = paste0(round(as.numeric(pct_ord), 2), "%"), cex = 0.9)
mtext("Porcentaje (hᵢ %)", side = 2, line = 4.5, cex = 1)
mtext("Produce Petróleo",   side = 1, line = 3,   cex = 1)
mtext(
  "Gráfica N°2: Distribución Porcentual\nde la Variable Produce Petróleo, Kansas, EE.UU.",
  side = 3, line = 3.5, cex = 0.9, font = 2
)

5.3 Gráfica N°3: Distribución Circular de la Variable Produce Petróleo, Kansas, EE.UU.

pct_circ  <- table(x_raw) / n * 100
grises_c  <- gray(c(0.35, 0.72))

par(mar = c(2, 2, 6, 2))
pie(
  as.numeric(pct_circ),
  labels  = paste0(names(pct_circ), "\n", round(as.numeric(pct_circ), 2), "%"),
  col     = grises_c,
  border  = "black",
  main    = ""
)
mtext(
  "Gráfica N°3: Distribución Circular — Distribución Porcentual\nde la Variable Produce Petróleo, Kansas, EE.UU.",
  side = 3, line = 3.5, cex = 0.9, font = 2
)


6. Tabla de Indicadores

moda_val <- names(sort(table(x_raw), decreasing = TRUE))[1]
moda_n   <- max(table(x_raw))

indicadores_h <- data.frame(
  `Tamaño muestral (n)`   = format(n, big.mark = ","),
  `Número de categorías`  = as.character(length(unique(x_raw))),
  `Moda`                  = moda_val,
  `Frecuencia de la moda` = format(moda_n, big.mark = ","),
  `Porcentaje de la moda` = paste0(round(moda_n / n * 100, 2), "%"),
  check.names = FALSE,
  stringsAsFactors = FALSE
)

kable(
  indicadores_h,
  caption = "Cuadro N°2: Indicadores de la Variable Cualitativa Nominal Produce Petróleo, arrendamientos de hidrocarburos, Kansas, EE.UU.",
  align = "c",
  escape = FALSE
) %>%
  kable_styling(
    bootstrap_options = c("striped", "hover", "condensed", "bordered"),
    full_width = TRUE, font_size = 12
  ) %>%
  row_spec(0, bold = TRUE, background = "#d3d3d3", color = "black")
Cuadro N°2: Indicadores de la Variable Cualitativa Nominal Produce Petróleo, arrendamientos de hidrocarburos, Kansas, EE.UU.
Tamaño muestral (n) Número de categorías Moda Frecuencia de la moda Porcentaje de la moda
95,960 2 56,744 59.13%

7. Análisis Probabilístico e Inferencial

7.1 Conjetura del Modelo (Binomial)

Esta variable agrupa dos categorías mutuamente excluyentes (Sí/No). Se propone un Modelo Binomial para representar este comportamiento, ya que permite evaluar la probabilidad de que un arrendamiento registre producción de petróleo dentro de un sistema cerrado de dos resultados posibles, buscando identificar la proporción estructural de producción activa en los arrendamientos de Kansas.

Justificación: La variable PRODUCES_OIL es dicotómica (éxito = “Sí”, fracaso = “No”), con n ensayos independientes y probabilidad constante p. El modelo Binomial B(n, p) es el más adecuado para describir la ocurrencia de producción de petróleo en los arrendamientos.

freq_tabla <- table(x_raw)
p_est      <- as.numeric(freq_tabla["Sí"]) / n
categorias_orden <- c("No", "Sí")

obs_prop <- as.numeric(freq_tabla[categorias_orden]) / n
esp_prop <- c(1 - p_est, p_est)

colores_binom <- gray(c(0.65, 0.35))
par(mar = c(5, 6, 7, 2))
x_pos <- barplot(
  rbind(obs_prop, esp_prop),
  beside     = TRUE,
  names.arg  = categorias_orden,
  col        = colores_binom,
  border     = "black",
  ylim       = c(0, max(c(obs_prop, esp_prop)) * 1.25),
  xlab       = "", ylab = "", main = "", las = 1
)
text(x_pos, rbind(obs_prop, esp_prop) + 0.01,
     labels = paste0(round(rbind(obs_prop, esp_prop) * 100, 1), "%"), cex = 0.85)
mtext("Porcentaje (%)", side = 2, line = 4.5, cex = 1)
mtext("Produce Petróleo", side = 1, line = 3, cex = 1)
mtext(
  "Gráfica N°4: Comparado de lo Observado frente a lo Esperado\n(Modelo Binomial) — Variable Produce Petróleo, Kansas, EE.UU.",
  side = 3, line = 3.5, cex = 0.9, font = 2
)
legend("topright", legend = c("Observado", "Esperado"),
       fill = colores_binom, border = "black", cex = 0.9)

7.2 Cálculo de Probabilidades (Modelo Binomial)

p <- p_est
q <- 1 - p
n_sim <- 10

prob_df <- data.frame(
  k    = 0:n_sim,
  P_X_igual_k   = round(dbinom(0:n_sim, size = n_sim, prob = p), 6),
  P_X_menor_k   = round(pbinom(0:n_sim, size = n_sim, prob = p, lower.tail = TRUE), 6),
  P_X_mayor_k   = round(pbinom(0:n_sim, size = n_sim, prob = p, lower.tail = FALSE), 6)
)

kable(
  prob_df,
  caption = paste0("Cuadro N°3: Probabilidades del Modelo Binomial B(n=", n_sim, ", p=", round(p,4), ") — Variable Produce Petróleo."),
  col.names = c("k", "P(X = k)", "P(X ≤ k)", "P(X > k)"),
  align = "c"
) %>%
  kable_styling(
    bootstrap_options = c("striped", "hover", "condensed", "bordered"),
    full_width = TRUE, font_size = 12
  ) %>%
  row_spec(0, bold = TRUE, background = "#d3d3d3", color = "black")
Cuadro N°3: Probabilidades del Modelo Binomial B(n=10, p=0.5913) — Variable Produce Petróleo.
k P(X = k) P(X ≤ k) P(X > k)
0 0.000130 0.000130 0.999870
1 0.001880 0.002010 0.997990
2 0.012242 0.014252 0.985748
3 0.047237 0.061489 0.938511
4 0.119612 0.181102 0.818898
5 0.207689 0.388791 0.611209
6 0.250432 0.639223 0.360777
7 0.207066 0.846289 0.153711
8 0.112356 0.958645 0.041355
9 0.036128 0.994772 0.005228
10 0.005228 1.000000 0.000000

7.3 Test de Pearson y Chi-Cuadrado

obs_vec <- as.numeric(freq_tabla[c("No", "Sí")])
esp_vec <- c((1 - p_est) * n, p_est * n)

chi_res <- chisq.test(x = obs_vec, p = c(1 - p_est, p_est))

pearson_pct <- (1 - chi_res$p.value) * 100
chi_stat    <- round(chi_res$statistic, 3)
umbral      <- round(qchisq(0.95, df = chi_res$parameter), 3)
resultado   <- ifelse(chi_stat < umbral, "TRUE", "FALSE")

tabla_test <- data.frame(
  Variable          = "Produce Petróleo",
  `Test Pearson (%)` = round(pearson_pct, 2),
  `Chi Cuadrado`     = chi_stat,
  `Umbral de Aceptación` = umbral,
  Resultado         = resultado,
  check.names = FALSE,
  stringsAsFactors = FALSE
)

kable(
  tabla_test,
  caption = "Tabla N°4: Resumen del Test de Bondad (Modelo Binomial) — Variable Produce Petróleo.",
  align = "c",
  escape = FALSE
) %>%
  kable_styling(
    bootstrap_options = c("striped", "hover", "condensed", "bordered"),
    full_width = TRUE, font_size = 12
  ) %>%
  row_spec(0, bold = TRUE, background = "#d3d3d3", color = "black")
Tabla N°4: Resumen del Test de Bondad (Modelo Binomial) — Variable Produce Petróleo.
Variable Test Pearson (%) Chi Cuadrado Umbral de Aceptación Resultado
X-squared Produce Petróleo 0 0 3.841 TRUE

8. Conclusión

El análisis probabilístico de la variable Produce Petróleo en los arrendamientos de hidrocarburos de Kansas permitió modelar la distribución dicotómica de producción activa mediante un Modelo Binomial. La categoría modal es “Sí”, evidenciando que la mayoría de los arrendamientos registra producción activa de petróleo en el estado de Kansas.

La prueba de bondad de ajuste, con un coeficiente de Pearson del 0%, confirma que el modelo Binomial representa adecuadamente los datos observados. Esto valida la segmentación binaria de los arrendamientos y permite proyectar, con fundamento estadístico, la proporción de contratos con producción activa de petróleo en la región.


Autor: Araujo Valeska | Análisis Estadístico — Kansas Hydrocarbon Leases Dataset