Variable Original: Discovery Year


1 Cargar Librerías

Para ejecutar el análisis estadístico sobre la extracción mundial de petróleo y gas, se cargan las librerías necesarias. dplyr permite filtrar y transformar los registros de producción, readxl habilita la lectura del dataset en formato Excel, mientras que knitr y kableExtra estructuran los resultados estadísticos de forma clara.

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

2 Cargar Datos

Se importa el dataset global de extracción de petróleo y gas, conformado por 49,212 registros de yacimientos y unidades productivas distribuidas en distintos países del mundo.

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 Extraer la Variable

Se selecciona la variable Discovery Year, que registra el año de descubrimiento de cada yacimiento extractivo. Tras eliminar valores ausentes se obtienen 4,935 registros válidos, con datos desde 1869 hasta 2023.

discovery_year <- as.numeric(datos$`Discovery year`)
discovery_year <- discovery_year[!is.na(discovery_year)]
cat("Total de registros válidos:", length(discovery_year), "\n")
## Total de registros válidos: 4935
cat("Primeros 10 valores:", head(discovery_year, 10), "\n")
## Primeros 10 valores: 1949 2001 1966 1975 1984 1986 1981 2004 1981 1986

4 Tabla de Frecuencia

Se construye la tabla de frecuencias agrupando los descubrimientos por epoca, mostrando frecuencia absoluta, relativa y acumulada ascendente y descendente, para analizar la evolución histórica de la exploración de petróleo y gas a nivel mundial.

epoca_tabla <- cut(
  discovery_year,
  breaks = c(-Inf, 1959, 1989, Inf),
  labels = c("Pre-1960", "1960-1989", "Post-1989")
)
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), "%")
  )

kable(tabla_epocas, align = "c", caption = "Tabla de Frecuencias por Época — Discovery Year") %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed", "bordered"),
                full_width = FALSE,
                position = "center") %>%
  row_spec(0, bold = TRUE, background = "#d9d9d9", color = "black")
Tabla de Frecuencias por Época — Discovery Year
Época ni hi (%)
Pre-1960 1292 26.18%
1960-1989 2017 40.87%
Post-1989 1626 32.95%

5 Gráficas y Modelado Binomial

Se observa que los descubrimientos se concentran en la era moderna (1960–1989), reflejando fielmente el comportamiento de la variable discreta en su conjunto. La probabilidad de éxito se define como la proporción de yacimientos descubiertos en dicha época de boom exploratorio.

epocas <- c("Pre-1960", "1960-1989", "Post-1989")
frec_epocas <- c(
  sum(discovery_year < 1960),
  sum(discovery_year >= 1960 & discovery_year <= 1989),
  sum(discovery_year > 1989)
)
p_exito <- frec_epocas[2] / length(discovery_year)
prob_epocas <- frec_epocas / length(discovery_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 descubrimiento",
    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 1960–1989 concentra la mayor proporción de descubrimientos, con frecuencias menores en las épocas anteriores y posteriores. Con base en esta distribución visual, se conjetura que la variable Discovery Year puede modelarse mediante una distribución Binomial, donde el éxito representa que un yacimiento haya sido descubierto durante dicha época de auge exploratorio.

6.1 Ajuste del Modelo Binomial

Alineación del cálculo probabilístico matemático discreto sobre los índices naturales asignados por R en su orden de procesamiento. Se define el experimento: en grupos de n=3 yacimientos seleccionados al azar, X representa el número de yacimientos descubiertos en la época de mayor auge exploratorio (1960–1989), con probabilidad de éxito p estimada por máxima verosimilitud.

set.seed(123)
n_param <- 3
muestra <- sample(discovery_year, size = 50, replace = FALSE)
x_grupos <- sapply(seq(1, 48, by = 3), function(i) {
  sum(muestra[i:(i+2)] >= 1960 & muestra[i:(i+2)] <= 1989)
})
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)
print(freq_obs_tabla[, c("x_Index", "Media", "Prob_Binomial")])
##   x_Index Media Prob_Binomial
## 1       0 0.375        0.2441
## 2       1 0.375        0.4395
## 3       2 0.375        0.2637
## 4       3 0.375        0.0527

6.2 Relación entre el modelo Binomial y la realidad

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 descubrimiento de yacimientos.

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))


7 Test de Pearson y Chi Cuadrado

Se aplica la prueba Chi Cuadrado para evaluar si la distribución de los años de descubrimiento 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 (%) 93.17 %
Chi-Cuadrado Calculado (X²) 1.1422
Valor Crítico en Tabla (vc) gl = 2 α = 0.05 5.9915
Resultado de Validación ESTADO DEL MODELO: APRUEBA

8 Calculo de Probabilidades

PREGUNTA N 1: ¿Cuál es la probabilidad de que exactamente 2 de 3 yacimientos seleccionados al azar hayan sido descubiertos en la época de mayor auge (1960–1989)?

PREGUNTA N 2: ¿Cuál es la probabilidad acumulada de que al menos 1 de 3 yacimientos pertenezca a la época de boom exploratorio?

p1 <- round(dbinom(2, n_param, p_mle) * 100, 2)
cat("Probabilidad de exactamente 2 éxitos en n=3:", p1, "%\n")
## Probabilidad de exactamente 2 éxitos en n=3: 26.37 %
p2 <- round((1 - dbinom(0, n_param, p_mle)) * 100, 2)
cat("Probabilidad de al menos 1 éxito en n=3:", p2, "%\n")
## Probabilidad de al menos 1 éxito en n=3: 75.59 %

9 Intervalo de Confianza

Se construye el intervalo de confianza para la media poblacional (μ) del año de descubrimiento, con un nivel de confianza del 95%, utilizando la distribución t de Student dado el tamaño de la muestra.

nivel_confianza <- 0.95
n <- length(discovery_year)
media <- mean(discovery_year)
desv_est <- sd(discovery_year)
error_estandar <- desv_est / sqrt(n)
alfa <- 1 - nivel_confianza
t_critico <- qt(1 - alfa/2, df = n - 1)
li <- round(media - t_critico * error_estandar, 0)
ls <- round(media + t_critico * error_estandar, 0)
tabla_ic <- data.frame(
  `Nivel de confianza` = paste0(nivel_confianza * 100, "%"),
  `Intervalo de confianza de μ` = paste0(li, " < μ < ", ls),
  `Desviación estándar` = round(desv_est, 2),
  check.names = FALSE
)
kable(tabla_ic, align = "c",
      caption = "Tabla N°2: Intervalo de confianza del año de descubrimiento de los yacimientos mundiales con un nivel de confianza del 95%") %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed", "bordered"),
                full_width = FALSE, position = "center") %>%
  row_spec(0, bold = TRUE, background = "#2c3e50", color = "white") %>%
  footnote(
    footnote_as_chunk = TRUE,
    title_format = c("italic", "bold")
  )
Tabla N°2: Intervalo de confianza del año de descubrimiento de los yacimientos mundiales con un nivel de confianza del 95%
Nivel de confianza Intervalo de confianza de μ Desviación estándar
95% 1976 < μ < 1977 26.35

10 Concluciones

La variable Discovery Year presenta un comportamiento que ha sido modelado con éxito mediante una Distribución Binomial, donde el éxito representa el descubrimiento de un yacimiento durante la época de mayor auge exploratorio (1960–1989). Con una desviación estándar de 26.35 años y con un 95% de confianza, lo que permite establecer previsiones exploratorias sólidas (μ = 1976 ± 1).