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 Conteo

Se contabiliza el número de yacimientos petroleros y gasíferos por década, permitiendo identificar los periodos de mayor actividad exploratoria en la industria mundial de hidrocarburos.

conteo <- as.data.frame(table(discovery_year))
colnames(conteo) <- c("Año de Descubrimiento", "Frecuencia Absoluta")
cat("Total de años únicos registrados:", nrow(conteo), "\n")
## Total de años únicos registrados: 125
cat("Año con más descubrimientos:", conteo[which.max(conteo$`Frecuencia Absoluta`), 1], 
    "con", max(conteo$`Frecuencia Absoluta`), "registros\n")
## Año con más descubrimientos: 51 con 163 registros

5 Tabla de Frecuencia

Se construye la tabla de frecuencias agrupando los descubrimientos por décadas, 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.

decada <- floor(discovery_year / 10) * 10
tabla_decadas <- as.data.frame(table(decada))
colnames(tabla_decadas) <- c("Década", "ni")

tabla_decadas <- tabla_decadas %>%
  mutate(
    Década = paste0("[", Década, "; ", as.numeric(as.character(Década)) + 10, "]"),
    `hi (%)` = paste0(round(ni / sum(ni) * 100, 2), "%"),
    `Ni Asc` = cumsum(ni),
    `Ni Dsc` = sum(ni) - cumsum(ni) + ni,
    `Hi Asc` = paste0(round(cumsum(ni / sum(ni)) * 100, 2), "%"),
    `Hi Dsc` = paste0(round((sum(ni) - cumsum(ni) + ni) / sum(ni) * 100, 2), "%")
  )

kable(tabla_decadas, align = "c", caption = "Tabla de Frecuencias por Década — 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 Década — Discovery Year
Década ni hi (%) Ni Asc Ni Dsc Hi Asc Hi Dsc
[1860; 1870] 6 0.12% 6 4935 0.12% 100%
[1880; 1890] 6 0.12% 12 4929 0.24% 99.88%
[1890; 1900] 4 0.08% 16 4923 0.32% 99.76%
[1900; 1910] 53 1.07% 69 4919 1.4% 99.68%
[1910; 1920] 87 1.76% 156 4866 3.16% 98.6%
[1920; 1930] 81 1.64% 237 4779 4.8% 96.84%
[1930; 1940] 154 3.12% 391 4698 7.92% 95.2%
[1940; 1950] 292 5.92% 683 4544 13.84% 92.08%
[1950; 1960] 609 12.34% 1292 4252 26.18% 86.16%
[1960; 1970] 667 13.52% 1959 3643 39.7% 73.82%
[1970; 1980] 731 14.81% 2690 2976 54.51% 60.3%
[1980; 1990] 619 12.54% 3309 2245 67.05% 45.49%
[1990; 2000] 490 9.93% 3799 1626 76.98% 32.95%
[2000; 2010] 591 11.98% 4390 1136 88.96% 23.02%
[2010; 2020] 430 8.71% 4820 545 97.67% 11.04%
[2020; 2030] 115 2.33% 4935 115 100% 2.33%

6 Gráficas y Modelado Binomial

6.1 Distribución de descubrimientos por época

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

# 7 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.
## 7.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.
r 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

7.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",
    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))


8 Bondad de Ajuste - 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.1 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 Conclusiones

La variable “Año de Descubrimiento” se ajusta adecuadamente a un modelo Binomial, lo cual fue validado estadísticamente mediante la prueba de bondad de ajuste Chi-Cuadrado. Esta estructura permite predecir, POR EJEMPLO, ¿cuál es la probabilidad de que, de un grupo de 3 yacimientos seleccionados al azar, al menos 1 haya sido descubierto durante esa época de boom exploratorio? (75.59%), facilitando la implementación de estrategias de planificación e inversión basadas en el peso histórico de cada periodo de descubrimiento.