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
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
| 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.
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")
| Produce Petróleo | Frecuencia (nᵢ) | Porcentaje (hᵢ %) | Porcentaje en fracción (hᵢ) |
|---|---|---|---|
| No | 39216 | 40.87% | 0.4087 |
| Sí | 56744 | 59.13% | 0.5913 |
| TOTAL | 95960 | 100.00% | 1.0000 |
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
)
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
)
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
)
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")
| Tamaño muestral (n) | Número de categorías | Moda | Frecuencia de la moda | Porcentaje de la moda |
|---|---|---|---|---|
| 95,960 | 2 | Sí | 56,744 | 59.13% |
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_OILes 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)
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")
| 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 |
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")
| Variable | Test Pearson (%) | Chi Cuadrado | Umbral de Aceptación | Resultado | |
|---|---|---|---|---|---|
| X-squared | Produce Petróleo | 0 | 0 | 3.841 | TRUE |
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