Variable Original: Discovery Year


1 Carga de 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 Leer 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 Seleccion de 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 Distribución de Frecuencias

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(
    `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), "%")
  )

# Columna adicional solo para mostrar el intervalo en la tabla (no afecta gráficos)
tabla_decadas_mostrar <- tabla_decadas
inicio <- as.numeric(as.character(tabla_decadas$Década))
fin <- inicio + 10

# La primera década inicia en el valor mínimo real (1869) y la última termina en el máximo real (2023)
inicio[1] <- min(discovery_year)
fin[length(fin)] <- max(discovery_year)

tabla_decadas_mostrar$Década <- ifelse(
  seq_along(inicio) == length(inicio),
  paste0("[", inicio, "-", fin, "]"),
  paste0("[", inicio, "-", fin, ")")
)

kable(tabla_decadas_mostrar, 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
[1869-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-2023] 115 2.33% 4935 115 100% 2.33%

6 Gráficas de distribucion de frecuencias

6.1 Gráfico de Barras

El gráfico representa el número de yacimientos descubiertos por década. Los descubrimientos aumentan gradualmente hasta alcanzar su punto máximo en la década de 1970 y posteriormente muestran una disminución general, evidenciando los cambios largo del tiempo.

# Crear etiquetas de intervalo iguales a las de la tabla, para el eje X
inicio_barras <- as.numeric(as.character(tabla_decadas$Década))
fin_barras <- inicio_barras + 10
inicio_barras[1] <- min(discovery_year)
fin_barras[length(fin_barras)] <- max(discovery_year)

etiquetas_barras <- ifelse(
  seq_along(inicio_barras) == length(inicio_barras),
  paste0("[", inicio_barras, "-", fin_barras, "]"),
  paste0("[", inicio_barras, "-", fin_barras, ")")
)

tabla_decadas_barras <- tabla_decadas
tabla_decadas_barras$Década <- factor(tabla_decadas_barras$Década,
                                       labels = etiquetas_barras)

ggplot(tabla_decadas_barras, aes(x = Década, y = ni)) +
  geom_bar(stat = "identity", fill = "#2980b9", color = "white", alpha = 0.85) +
  labs(
    title = "Frecuencia de Descubrimientos por Década",
    x = "Década",
    y = "Número de Yacimientos (ni)",
    caption = "Fuente: Dataset Mundial de Petróleo y Gas"
  ) +
  theme_minimal(base_size = 12) +
  theme(
    plot.title = element_text(face = "bold", hjust = 0.5),
    axis.text.x = element_text(angle = 45, hjust = 1)
  )


6.2 Ojiva

El gráfico ojiva presenta las frecuencias acumuladas ascendente y descendente de los descubrimientos por década. Se observa que la mayor acumulación ocurre entre 1950 y 1980, período en el que se concentra la mayor parte de los yacimientos descubiertos..

tabla_ojiva <- tabla_decadas %>%
  mutate(
    NiAsc = cumsum(ni),
    NiDsc = sum(ni) - cumsum(ni) + ni,
    Decada_num = as.numeric(as.character(Década))
  )

ggplot(tabla_ojiva, aes(x = Decada_num)) +
  geom_line(aes(y = NiAsc, color = "Ascendente"), size = 1.2) +
  geom_point(aes(y = NiAsc, color = "Ascendente"), size = 2.5) +
  geom_line(aes(y = NiDsc, color = "Descendente"), size = 1.2) +
  geom_point(aes(y = NiDsc, color = "Descendente"), size = 2.5) +
  scale_color_manual(values = c("Ascendente" = "#2980b9", "Descendente" = "#e74c3c")) +
  labs(
    title = "Frecuencia acumulada de los descubrimientos por decadas",
    x = "Década",
    y = "Frecuencia Acumulada",
    color = "Tipo",
    caption = "Fuente: Dataset Mundial de Petróleo y Gas"
  ) +
  theme_minimal(base_size = 12) +
  theme(
    plot.title = element_text(face = "bold", hjust = 0.5),
    axis.text.x = element_text(angle = 45, hjust = 1)
  )


6.3 Diagrama de Cajas

El diagrama de cajas muestra la distribución de los años de descubrimiento de los yacimientos. La mayoría de los registros se concentra entre 1960 y 2000, mientras que algunos años más antiguos aparecen como valores atípicos, indicando descubrimientos poco frecuentes en los primeros períodos analizados.

df_plot <- data.frame(año = discovery_year)

ggplot(df_plot, aes(x = año)) +
  geom_boxplot(fill = "#27ae60", color = "#1a252f", alpha = 0.8, width = 0.4) +
  labs(
    title = "Distribucion de los Años de Descubrimiento",
    y = "Año de Descubrimiento",
    caption = "Fuente: Dataset Mundial de Petróleo y Gas"
  ) +
  theme_minimal(base_size = 13) +
  theme(plot.title = element_text(face = "bold", hjust = 0.5))


7 Indicadores Estadísticos

Los indicadores estadísticos permiten resumir el comportamiento de los años de descubrimiento de los yacimientos.

variable  <- "Discovery Year"
rango     <- paste0("[ ", min(discovery_year), " ; ", max(discovery_year), " ]")
media     <- round(mean(discovery_year), 0)
mediana   <- round(median(discovery_year), 2)
moda_val  <- as.numeric(names(sort(table(discovery_year), decreasing = TRUE)[1]))
varianza  <- round(var(discovery_year), 2)
desv_est  <- round(sd(discovery_year), 2)
cv        <- round((desv_est / media) * 100, 2)
asimetria <- round(skewness(discovery_year), 4)
curtosis  <- round(kurtosis(discovery_year), 4)

q1  <- quantile(discovery_year, 0.25)
q3  <- quantile(discovery_year, 0.75)
iqr <- q3 - q1
limite_inf <- q1 - 1.5 * iqr
limite_sup <- q3 + 1.5 * iqr

valores_outliers <- discovery_year[discovery_year < limite_inf | discovery_year > limite_sup]
n_outliers <- length(valores_outliers)

if (n_outliers > 0) {
  outliers_txt <- paste0(n_outliers, " [ ", round(min(valores_outliers), 2), " ; ", round(max(valores_outliers), 2), " ]")
} else {
  outliers_txt <- "0 [ Sin outliers ]"
}

indicadores <- data.frame(
  Variable     = variable,
  Rango        = rango,
  `Media (X)`  = media,
  `Mediana (Me)` = mediana,
  `Moda (Mo)`  = moda_val,
  `Varianza (S²)` = varianza,
  `Desv. Est. (S)` = desv_est,
  `C.V. (%)`   = cv,
  `Asimetría (As)` = asimetria,
  `Curtosis (K)` = curtosis,
  `Outliers [Intervalo]` = outliers_txt,
  check.names = FALSE
)

kable(indicadores, align = "c", escape = FALSE,
      caption = "<div style='font-size:18px; font-weight:bold; text-align:center;'>Tabla N°1: Indicadores Estadísticos de Discovery Year</div>") %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed", "bordered"),
                full_width = TRUE,
                position = "center") %>%
  row_spec(0, bold = TRUE, background = "#dbe9f9", color = "black") %>%
  footnote(general = "Autor: Grupo 5", general_title = "", footnote_as_chunk = TRUE)
Tabla N°1: Indicadores Estadísticos de Discovery Year
Variable Rango Media (X) Mediana (Me) Moda (Mo) Varianza (S²) Desv. Est. (S) C.V. (%) Asimetría (As) Curtosis (K) Outliers [Intervalo]
Discovery Year [ 1869 ; 2023 ] 1976 1976 1949 694.16 26.35 1.33 -0.4387 0.092 26 [ 1869 ; 1901 ]
Autor: Grupo 5

8 Conclusión

Los valores de “Año de Descubrimiento” fluctúan entre 1869 y 2023 y gira entorno a 1976, con una desviación estandar de 26.35. Con 26[1869-1901] valores atipicos, siendo un conjunto de datos homogéneo, cuyos valores se agrupan fuerte en la parte alta de Año de Descubrimiento. Por lo anterior el comportamiento es beneficioso.