Variable Original: Production Start Year


1 Cargar Librerías

Para el procesamiento del año de inicio de producción de los yacimientos mundiales de hidrocarburos, se cargan las librerías necesarias. dplyr gestiona la manipulación de los registros productivos, readxl permite la lectura del dataset en formato Excel, mientras que knitr, kableExtra y e1071 estructuran los resultados y calculan los indicadores estadísticos.

library(dplyr)
library(ggplot2)
library(knitr)
library(kableExtra)
library(readxl)
library(e1071)

2Carga de Datos

Se carga el dataset mundial de extracción de petróleo y gas, conformado por 49,212 registros de campos, yacimientos y plantas extractivas distribuidas en distintos países. Para este análisis se trabaja con la variable que registra el año de inicio de operación comercial de cada unidad productiva.

datos <- read_excel("dataset_mundial_petro.xlsx")
cat("Dimensiones del dataset:", nrow(datos), "filas y", ncol(datos), "columnas\n")
## Dimensiones del dataset: 49212 filas y 32 columnas

3 Selección de variable aleatoria

Se extrae la variable Production Start Year, que indica el año en que cada yacimiento de petróleo o gas inició formalmente su actividad extractiva comercial. Tras eliminar valores ausentes se obtienen 1,947 registros válidos que abarcan desde 1896 hasta 2027.

production_year <- as.numeric(datos$`Production start year`)
production_year <- production_year[!is.na(production_year)]
cat("Total de registros válidos:", length(production_year), "\n")
## Total de registros válidos: 1947
cat("Primeros 10 valores:", head(production_year, 10), "\n")
## Primeros 10 valores: 1951 2009 1969 1979 1987 1998 1981 2005 1985 2002

4 Tabla de Distribución de Frecuencias

Se construye la tabla de frecuencias agrupando los inicios de producción por épocas, incluyendo frecuencia absoluta y relativa, para visualizar la evolución histórica de la actividad extractiva mundial de hidrocarburos.

epoca_tabla <- cut(
  production_year,
  breaks = c(-Inf, 1989, 2019, Inf),
  labels = c("[1896-1990]", "[1990-2019]", "[2019-2027]")
)
tabla_epocas <- as.data.frame(table(epoca_tabla))
colnames(tabla_epocas) <- c("Época", "ni")
tabla_epocas <- tabla_epocas %>%
  mutate(
    `hi (%)` = paste0(round(ni / sum(ni) * 100, 2), "%")
  )

fila_total <- data.frame(
  Época = "Total",
  ni = sum(tabla_epocas$ni),
  `hi (%)` = "100%",
  check.names = FALSE
)

tabla_epocas <- rbind(tabla_epocas, fila_total)

kable(tabla_epocas, align = "c", caption = "Tabla de Frecuencias por Época — Production Start Year") %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed", "bordered"),
                full_width = FALSE,
                position = "center") %>%
  row_spec(0, bold = TRUE, background = "#d9d9d9", color = "black") %>%
  row_spec(nrow(tabla_epocas), bold = TRUE, background = "#f2f2f2")
Tabla de Frecuencias por Época — Production Start Year
Época ni hi (%)
[1896-1990] 536 27.53%
[1990-2019] 1266 65.02%
[2019-2027] 145 7.45%
Total 1947 100%

5 Gráfica de Distribución de Frecuencia

Se observa que los inicios de producción se concentran en la era moderna (1990–2019), reflejando fielmente el comportamiento de la variable discreta en su conjunto. La probabilidad de éxito se define como la proporción de yacimientos que iniciaron producción en dicha época de boom productivo.

epocas <- c("[1896-1990]", "[1990-2019]", "[2019-2027]")
frec_epocas <- c(
  sum(production_year < 1990),
  sum(production_year >= 1990 & production_year <= 2019),
  sum(production_year > 2019)
)
p_exito <- frec_epocas[2] / length(production_year)
prob_epocas <- frec_epocas / length(production_year)
df_epocas <- data.frame(Epoca = epocas, Probabilidad = prob_epocas)
ggplot(df_epocas, aes(x = Epoca, y = Probabilidad)) +
  geom_bar(stat = "identity", fill = "#add8e6", color = "#2980b9", width = 0.5) +
  labs(
    title = "Gráfica No 1: Distribución por época de inicio de producción",
    x = "Época",
    y = "Probabilidad",
    caption = "Fuente: Dataset Mundial de Petróleo y Gas"
  ) +
  theme_minimal(base_size = 12) +
  theme(plot.title = element_text(face = "bold", hjust = 0.5))


6 Conjetura

Al observar el diagrama de barras, se aprecia que la época 1990–2019 concentra la mayor proporción de inicios de producción, con frecuencias menores en las épocas anteriores y posteriores. Con base en esta distribución visual, se conjetura que la variable Production Start Year puede modelarse mediante una distribución Binomial, donde el éxito representa que un yacimiento haya iniciado producción durante dicha época de boom productivo.

7 Parámetros

CÁLCULO DE LOS PARÁMETROS DEL MODELO BINOMIAl

set.seed(123)
n_param <- 3
muestra <- sample(production_year, size = 50, replace = FALSE)
x_grupos <- sapply(seq(1, 48, by = 3), function(i) {
  sum(muestra[i:(i+2)] >= 1990 & muestra[i:(i+2)] <= 2019)
})
freq_obs_tabla <- as.data.frame(table(factor(x_grupos, levels = 0:3)))
colnames(freq_obs_tabla) <- c("x_Index", "Freq_Obs")
freq_obs_tabla$x_Index <- as.numeric(as.character(freq_obs_tabla$x_Index))
total_grupos <- sum(freq_obs_tabla$Freq_Obs)
x_bar <- sum(freq_obs_tabla$x_Index * freq_obs_tabla$Freq_Obs) / total_grupos
p_mle <- x_bar / n_param
freq_obs_tabla$Media     <- round(p_mle, 4)
freq_obs_tabla$Prob_Binomial <- round(dbinom(freq_obs_tabla$x_Index, n_param, p_mle), 4)

freq_obs_tabla <- freq_obs_tabla[freq_obs_tabla$x_Index != 0, ]
rownames(freq_obs_tabla) <- NULL

print(freq_obs_tabla[, c("x_Index", "Media", "Prob_Binomial")])
##   x_Index Media Prob_Binomial
## 1       1  0.75        0.1406
## 2       2  0.75        0.4219
## 3       3  0.75        0.4219

8 Sobreposición de la realidad con el modelo

El siguiente gráfico compara las frecuencias relativas observadas en la muestra con las probabilidades teóricas del modelo Binomial ajustado, permitiendo evaluar visualmente qué tan bien se ajusta el modelo a los datos reales de inicio de producción.

esp_frec <- freq_obs_tabla$Prob_Binomial * total_grupos
obs_frec <- freq_obs_tabla$Freq_Obs
df_comparacion <- data.frame(
  x = rep(freq_obs_tabla$x_Index, 2),
  Frecuencia = c(obs_frec / total_grupos, freq_obs_tabla$Prob_Binomial),
  Tipo = rep(c("Realidad", "Modelo Binomial"), each = nrow(freq_obs_tabla))
)
ggplot(df_comparacion, aes(x = factor(x), y = Frecuencia, fill = Tipo)) +
  geom_bar(stat = "identity", position = "dodge", alpha = 0.85) +
  scale_fill_manual(values = c("Modelo Binomial" = "#1a5276", "Realidad" = "#add8e6")) +
  labs(
    title = "Gráfica No 2: Relación entre el modelo binomial y la realidad",
    x = "Número de éxitos (x)",
    y = "Probabilidad  (y)",
    fill = "",
    caption = "Fuente: Dataset Mundial de Petróleo y Gas"
  ) +
  theme_minimal(base_size = 12) +
  theme(plot.title = element_text(face = "bold", hjust = 0.5))


9 Test de Bondad

Se aplica la prueba Chi Cuadrado para evaluar si la distribución de los años de inicio de producción se ajusta al modelo Binomial propuesto. La correlación de Pearson mide la similitud entre las frecuencias observadas y esperadas, mientras que el estadístico Chi Cuadrado determina formalmente si el modelo es aceptado o rechazado.

obs_vec <- obs_frec
esp_vec <- freq_obs_tabla$Prob_Binomial * total_grupos
pearson_r  <- round(cor(obs_vec, esp_vec) * 100, 2)
chi2_calc  <- round(sum((obs_vec - esp_vec)^2 / esp_vec), 4)
gl         <- nrow(freq_obs_tabla) - 1 - 1
vc         <- round(qchisq(0.95, df = gl), 4)
resultado  <- ifelse(chi2_calc < vc, "ESTADO DEL MODELO: APRUEBA", "ESTADO DEL MODELO: NO APRUEBA")
color_res  <- ifelse(chi2_calc < vc, "#27ae60", "#e74c3c")
tabla_bondad <- data.frame(
  `Métrica de Evaluación` = c(
    "Correlación de Pearson (%)",
    "Chi-Cuadrado Calculado (X²)",
    paste0("Valor Crítico en Tabla (vc)  gl = ", gl, "  α = 0.05"),
    "Resultado de Validación"
  ),
  `Resultado Obtenido` = c(
    paste0(pearson_r, " %"),
    chi2_calc,
    vc,
    resultado
  ),
  check.names = FALSE
)
kable(tabla_bondad, align = "c", caption = "CUADRO N°2\nIndicadores de Ajuste Estadístico de la Prueba de Bondad") %>%
  kable_styling(bootstrap_options = c("striped", "bordered"),
                full_width = FALSE, position = "center") %>%
  row_spec(0, bold = TRUE, background = "#d9d9d9") %>%
  row_spec(nrow(tabla_bondad), bold = TRUE, color = color_res)
CUADRO N°2 Indicadores de Ajuste Estadístico de la Prueba de Bondad
Métrica de Evaluación Resultado Obtenido
Correlación de Pearson (%) 50 %
Chi-Cuadrado Calculado (X²) 2.7139
Valor Crítico en Tabla (vc) gl = 1 α = 0.05 3.8415
Resultado de Validación ESTADO DEL MODELO: APRUEBA

10 Cálculo de probabilidades

Calculadora de probabilidad binomial con los datos de tu modelo

Probabilidad de exactamente 2 éxitos


11 Intervalo de confianza

n_trials  <- total_grupos * n_param
z_critico <- qnorm(0.975)
error_est <- z_critico * sqrt(p_mle * (1 - p_mle) / n_trials)

li_p <- round(p_mle - error_est, 4)
ls_p <- round(p_mle + error_est, 4)

tabla_ic <- data.frame(
  `Métrica` = c(
    "Proporción estimada (p_mle)",
    "Tamaño de muestra (n)",
    "Nivel de confianza",
    "Límite inferior (LI)",
    "Límite superior (LS)"
  ),
  `Valor` = c(
    round(p_mle, 4),
    n_trials,
    "95%",
    li_p,
    ls_p
  ),
  check.names = FALSE
)

kable(tabla_ic, align = "c", caption = "Intervalo de Confianza del 95% para la proporción de éxito (p)") %>%
  kable_styling(bootstrap_options = c("striped", "bordered"),
                full_width = FALSE, position = "center") %>%
  row_spec(0, bold = TRUE, background = "#d9d9d9") %>%
  row_spec(nrow(tabla_ic), bold = TRUE)
Intervalo de Confianza del 95% para la proporción de éxito (p)
Métrica Valor
Proporción estimada (p_mle) 0.75
Tamaño de muestra (n) 48
Nivel de confianza 95%
Límite inferior (LI) 0.6275
Límite superior (LS) 0.8725
cat("\n\nCon un 95% de confianza, la verdadera proporción de yacimientos que iniciaron producción en la época de mayor auge se encuentra entre", li_p, "y", ls_p, ".\n")
## 
## 
## Con un 95% de confianza, la verdadera proporción de yacimientos que iniciaron producción en la época de mayor auge se encuentra entre 0.6275 y 0.8725 .

12 Conclusión

El comportamiento de la variable “Año de Inicio de Producción” se explica con un modelo Binomial de parametros n=3 y p=0.75. Podemos afrimar con un 95% de confinza que la media aritmetica real de la variable Año de Inicio de Producción se encuentra entre [0.6275 ; 0.8725] y una desviación estandar de 0.75.