1. Cargar Librerías

library(readr)
library(dplyr)
library(knitr)
library(kableExtra)
library(gt)
library(htmltools)

2. Cargar Datos

Se carga el conjunto de datos de arrendamientos de hidrocarburos del estado de Kansas, EE.UU., registrados por el Kansas Geological Survey.

# --- CONFIGURACIÓN: el nombre de la variable se edita ÚNICAMENTE en el bloque
#     `params` del encabezado YAML; el resto del código y el título del
#     documento se adaptan automáticamente, sin nombres fijos aquí. ---
nombre_variable   <- params$nombre_variable
columna_variable  <- params$columna_variable
etiqueta_variable <- params$etiqueta_variable
ruta_archivo <- file.choose()
datos <- read_csv(ruta_archivo, show_col_types = FALSE)

cat("Dataset cargado correctamente.\n")
## Dataset cargado correctamente.
cat("Total de registros (filas):", nrow(datos), "\n")
## Total de registros (filas): 47757

3. Conteo

Se extrae la variable LONGITUDE_LATITUDE_SOURCE (Fuente de Coordenadas), eliminando registros sin valor (NA o vacíos), y se realiza el conteo de observaciones por categoría.

x_raw <- datos %>%
  filter(!is.na(.data[[columna_variable]]), .data[[columna_variable]] != "") %>%
  pull(.data[[columna_variable]])

n <- length(x_raw)

conteo <- sort(table(x_raw), decreasing = TRUE)

cat("Observaciones válidas (n):", n, "\n")
## Observaciones válidas (n): 47757
cat("Categorías distintas:", length(conteo), "\n\n")
## Categorías distintas: 2
print(conteo)
## x_raw
## CENTER_OF_SECTION     QUARTER_CALLS 
##             26553             21204

4. Tabla de Distribución de Frecuencias

categorias <- names(conteo)
ni         <- as.integer(conteo)
hi_pct     <- ni / n * 100
hi_frac    <- ni / n
k          <- length(categorias)

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

kable(
  tabla_df,
  caption = paste0(
    "Tabla de Distribución de Frecuencias — ", etiqueta_variable, " (n = ",
    format(n, big.mark = ","), " registros válidos)."
  ),
  col.names = c(etiqueta_variable, "Frecuencia (ni)", "Porcentaje (hi %)", "Probabilidad"),
  align = c("l", "c", "c", "c"), escape = FALSE
) %>%
  kable_styling(bootstrap_options = c("striped", "condensed", "bordered"), full_width = TRUE) %>%
  row_spec(0, bold = TRUE, background = "#d3d3d3", color = "black")
Tabla de Distribución de Frecuencias — Fuente de Coordenadas (n = 47,757 registros válidos).
Fuente de Coordenadas Frecuencia (ni) Porcentaje (hi %) Probabilidad
CENTER_OF_SECTION 26553 55.60% 0.5560
QUARTER_CALLS 21204 44.40% 0.4440

5. Gráfico de Probabilidad (%)

par(mar = c(6, 6, 5, 2))
bp <- barplot(
  hi_pct,
  names.arg = categorias,
  col = gray(seq(0.30, 0.75, length.out = k)),
  border = "black",
  ylim = c(0, max(hi_pct) * 1.2),
  xlab = "", ylab = "", main = "", las = 1
)
text(bp, hi_pct, labels = paste0(round(hi_pct, 1), "%"), pos = 3, cex = 0.9)
mtext("Probabilidad (%)", side = 2, line = 4.2, cex = 1)
mtext(etiqueta_variable, side = 1, line = 4, cex = 1)
mtext(paste0("Gráfica de Probabilidad — ", etiqueta_variable, ", Kansas, EE.UU."),
      side = 3, line = 1.5, cex = 0.95, font = 2)

6. Conjetura

Al ser una variable dicotómica (2 categorías: CENTER_OF_SECTION / QUARTER_CALLS), se conjetura directamente un modelo Bernoulli —matemáticamente equivalente a un Binomial con un solo ensayo (size = 1)— con probabilidad de éxito p̂ estimada por máxima verosimilitud (MLE), que para este modelo coincide con la proporción muestral observada de la categoría “CENTER_OF_SECTION”:

Modelo conjeturado: Bernoulli (≡ Binomial, n = 1 ensayo)
p̂ estimado (MLE, proporción de ” CENTER_OF_SECTION “): 0.556

Fuente de Coordenadas p Bernoulli (H0) p Observada
CENTER_OF_SECTION 0.556 0.556
QUARTER_CALLS 0.444 0.444
comparacion <- rbind(Observado = hi_pct, `Modelo Bernoulli` = p_bernoulli * 100)

par(mar = c(6, 6, 6, 2))
bp2 <- barplot(comparacion, beside = TRUE,
               col = c(gray(0.35), gray(0.75)), border = "black", las = 1,
               names.arg = categorias, ylim = c(0, max(comparacion) * 1.25),
               ylab = "", xlab = "")
mtext("Probabilidad (%)", side = 2, line = 4.2, cex = 1)
mtext(etiqueta_variable, side = 1, line = 4, cex = 1)
mtext("Probabilidad — Modelo Bernoulli Sobrepuesto a la Frecuencia Observada", side = 3, line = 1.5, cex = 1, font = 2)
text(bp2, comparacion, labels = paste0(round(comparacion, 1), "%"), pos = 3, cex = 0.8)
legend("topright", legend = rownames(comparacion), fill = c(gray(0.35), gray(0.75)), bty = "n", cex = 0.9)

Nota: al estimarse p̂ directamente de la misma muestra (modelo saturado, 1 parámetro para 2 categorías), ambas barras de cada par salen prácticamente idénticas — es el comportamiento esperado del método de máxima verosimilitud, no un error.

Se conjetura el modelo Bernoulli (equivalente al Binomial de un ensayo) como el que describe la distribución de probabilidad de la variable Fuente de Coordenadas.

7. Test

Se valida el modelo con dos criterios: la correlación de Pearson entre las frecuencias observadas y las teóricas, y una prueba Chi-Cuadrado de Bondad de Ajuste.

\(H_0\): los datos siguen el modelo Bernoulli   |   \(H_1\): los datos NO siguen el modelo Bernoulli

bind_rows(
  data.frame(Prueba = "Correlación de Pearson (hi vs. p teórico)",
             Estadistico = round(pearson_r, 2), GL = NA_integer_,
             p_valor = NA_real_, Validacion = val_pearson, stringsAsFactors = FALSE),
  data.frame(Prueba = paste0("Chi-Cuadrado (muestra completa n=", n, ")"),
             Estadistico = round(chi_stat, 4), GL = chi_gl,
             p_valor = round(chi_pval, 4), Validacion = val_chi, stringsAsFactors = FALSE)
) %>%
  tabla_test_gt(
    titulo    = "Tabla: Validación de la Conjetura (Modelo Bernoulli)",
    subtitulo = paste0(etiqueta_variable, " — p̂ estimado por MLE")
  )
Tabla: Validación de la Conjetura (Modelo Bernoulli)
Fuente de Coordenadas — p̂ estimado por MLE
Prueba Estadístico G.L. p-valor Validación
Correlación de Pearson (hi vs. p teórico) 100 - - APROBADO
Chi-Cuadrado (muestra completa n=47757) 0 1 1 APROBADO
Autor: Valeska Araujo

8. Conclusiones

La variable Fuente de Coordenadas es cualitativa nominal dicotómica, con categorías CENTER_OF_SECTION y QUARTER_CALLS. Su moda es CENTER_OF_SECTION, con 55.60% de participación. Se conjeturó un modelo Bernoulli (equivalente a un Binomial de un ensayo) con p̂ = 0.556 estimado por MLE; al validar con Pearson se obtuvo 100% y con Chi-cuadrado un estadístico de 0 con 1 grado(s) de libertad y un p-valor de 1, lo que demuestra que el modelo Bernoulli sí infiere correctamente la muestra en la población (resultado esperado, ya que p̂ se estimó directamente de estos mismos datos).


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