##### UNIVERSIDAD CENTRAL DEL ECUADOR #####
#### CARRERA: INGENIERÍA EN PETRÓLEOS #####
#### VARIABLE SUBNATIONAL UNIT ####
## DATASET ##
# Cargar dataset
library(readxl)
Datos <- read_excel("dataset_mundial_petro.xlsx")
## Estructura de los datos
str(Datos)
## tibble [49,212 × 32] (S3: tbl_df/tbl/data.frame)
## $ Unit ID : chr [1:49212] "OG0000001" "OG0000002" "OG0000006" "OG0000007" ...
## $ Unit Name : chr [1:49212] "Matzen" "Abalone" "Aguilhada" "Agulha" ...
## $ Unit name local script : chr [1:49212] NA "Abalone" "Aguilhada" "Agulha" ...
## $ Fuel type : chr [1:49212] "oil and gas" "oil and gas" "oil and gas" "oil and gas" ...
## $ Unit type : chr [1:49212] "field" "field" "field" "field" ...
## $ Country : chr [1:49212] "Austria" "Brazil" "Brazil" "Brazil" ...
## $ Subnational unit (province, state): chr [1:49212] NA "Espírito Santo" "Sergipe" "Rio Grande do Norte" ...
## $ Latitude : num [1:49212] 48.4 -21.4 -10.7 -4.9 -22.1 ...
## $ Longitude : num [1:49212] 16.7 -39.6 -36.9 -36.3 -40 ...
## $ Location accuracy : chr [1:49212] "approximate" "exact" "exact" "exact" ...
## $ Status : chr [1:49212] "operating" "operating" "operating" "operating" ...
## $ Status year : num [1:49212] 2023 2022 2022 2022 2022 ...
## $ Discovery year : num [1:49212] 1949 2001 1966 1975 1984 ...
## $ FID Year : chr [1:49212] NA NA NA NA ...
## $ Production start year : chr [1:49212] "1951" "2009" "1969" "1979" ...
## $ Operator : chr [1:49212] "OMV" "Shell Brasil Petróleo Ltda." NA NA ...
## $ Owner : chr [1:49212] "OMV (100%)" "Shell Brasil (50%);ONGC Campos (27%);Qatarenergy (23%)" "Petrobras (100%)" "Petrobras (100%)" ...
## $ Parent : chr [1:49212] "OMV Aktiengesellschaft (100%)" "Shell plc (50%);Oil and Natural Gas Corporation (ONGC) (27%)" "Petróleo Brasileiro S.A. (100%)" "Petróleo Brasileiro S.A. (100%)" ...
## $ Basin : chr [1:49212] NA NA NA NA ...
## $ Concession / block : chr [1:49212] NA NA NA NA ...
## $ Project or complex : chr [1:49212] "Matzen" NA NA NA ...
## $ Government unit ID : chr [1:49212] NA NA NA NA ...
## $ Wiki URL : chr [1:49212] "https://www.gem.wiki/Matzen_Oil_and_Gas_Field_(Austria)" "https://www.gem.wiki/Abalone_Oil_and_Gas_Field_%28Esp%C3%ADrito_Santo%2C_Brazil%29" "https://www.gem.wiki/Aguilhada_Oil_and_Gas_Field_%28Sergipe%2C_Brazil%29" "https://www.gem.wiki/Agulha_Oil_and_Gas_Field_%28Rio_Grande_do_Norte%2C_Brazil%29" ...
## $ Unit name2 : logi [1:49212] NA NA NA NA NA NA ...
## $ Production/reserves : logi [1:49212] NA NA NA NA NA NA ...
## $ Fuel description : logi [1:49212] NA NA NA NA NA NA ...
## $ Reserves classification (original): logi [1:49212] NA NA NA NA NA NA ...
## $ Quantity (original) : logi [1:49212] NA NA NA NA NA NA ...
## $ Units (original) : logi [1:49212] NA NA NA NA NA NA ...
## $ Data year : logi [1:49212] NA NA NA NA NA NA ...
## $ Quantity (converted) : logi [1:49212] NA NA NA NA NA NA ...
## $ Units (converted) : logi [1:49212] NA NA NA NA NA NA ...
# Cargamos las librerías
library(dplyr)
library(ggplot2)
library(gt)
Se realizó la agrupación geográfica de la variable Subnational unit filtrando únicamente los registros con datos válidos (no nulos) y clasificando las provincias/estados en 7 regiones continentales mediante expresiones regulares en R. Esto permitió consolidar los 5,278 registros válidos en categorías homogéneas para facilitar el tratamiento inferencial de los datos registrados a nivel global.
# Filtrar registros con Subnational unit no nulo
tabla_SUB <- Datos %>%
select(Provincia = `Subnational unit (province, state)`) %>%
filter(!is.na(Provincia))
# Corrección de codificación en nombres especiales
tabla_SUB$Provincia <- gsub("Neuquén", "Neuquén", tabla_SUB$Provincia)
tabla_SUB$Provincia <- gsub("EspÃ\u00adrito Santo", "Espírito Santo", tabla_SUB$Provincia)
# Agrupación geográfica por continente basada en los países del dataset
tabla_SUB <- tabla_SUB %>%
ungroup() %>%
mutate(Continente = case_when(
# América del Norte
grepl("Texas|Louisiana|Oklahoma|California|Alaska|Wyoming|Colorado|Pennsylvania|
New Mexico|North Dakota|Ohio|West Virginia|Federal offshore|Federal Offshore|
Oklahoma-Texas-Kansas",
Provincia, ignore.case = TRUE) ~ "América del Norte (USA)",
# Canadá
grepl("Alberta|Saskatchewan|British Columbia|Manitoba|Newfoundland & Labrador",
Provincia, ignore.case = TRUE) ~ "Canadá",
# América Central y Caribe
grepl("Tabasco|Veracruz|Chiapas|Tamaulipas|Nuevo León|Coahuila|Hidalgo|Puebla|
Matanzas|Habana",
Provincia, ignore.case = TRUE) ~ "América Central y Caribe",
# América del Sur
grepl("Casanare|Meta|Santander|Huila|Arauca|Putumayo|Cesar|Boyaca|Antioquia|
Sucre|Tolima|Norte de Santander|Guajira|Atlantico|Magdalena|Cauca|
Neuquén|Chubut|Mendoza|Rio Negro|La Pampa|Salta|Tierra del Fuego|
Cordoba|Estado Nacional|Rio de Janeiro|São Paulo|Espírito Santo|
Rio Grande do Norte|Sergipe|Maranhão|Bahia|Alagoas|Amazonas|Bolivar|
Santa Cruz|Tarija|Cochabamba|Chuquisaca|Piura|Loreto|Tumbes|Ucayali|
Cusco|Amazônia",
Provincia, ignore.case = TRUE) ~ "América del Sur",
# Asia / Pacífico - China
grepl("Xinjiang|Bohai Sea|South China Sea|Sichuan|Shandong|Chongqing|Shaanxi|
Qinghai|Heilongjiang|Liaoning|Gansu|Inner Mongolia|Jilin|East China Sea|
Tianjin|Hebei|Hubei|Shanxi|China",
Provincia, ignore.case = TRUE) ~ "Asia",
# Oceanía
grepl("Queensland|Western Australia|Victoria|Northern Territory|
New South Wales|Tasmania|South Australia",
Provincia, ignore.case = TRUE) ~ "Oceanía",
# Otros / No Especificado
TRUE ~ "Otros / No Especificado"
))
Se calculó la distribución de frecuencias absolutas \((n_i)\) y relativas \((h_i)\). Los resultados determinan que América del Norte (USA) predomina con la mayor concentración de registros, seguida por Canadá, lo que evidencia una fuerte concentración del desarrollo de unidades petroleras en el eje norteamericano.
TDF_subnacional <- table(tabla_SUB$Continente)
Tabla <- as.data.frame(TDF_subnacional)
colnames(Tabla) <- c("Continente", "ni")
Tabla$Continente <- as.character(Tabla$Continente)
Tabla$`hi (%)` <- (Tabla$ni / sum(Tabla$ni)) * 100
fila_total <- tibble(
Continente = "TOTAL",
ni = sum(Tabla$ni),
`hi (%)` = sum(Tabla$`hi (%)`)
)
tabla_Final <- bind_rows(Tabla, fila_total)
tabla_gt <- tabla_Final %>%
gt() %>%
tab_header(
title = md("**Tabla N°1 de Distribución de Frecuencias por Región — Subnational Unit**")
) %>%
tab_source_note(
source_note = "Autor: Estalin"
) %>%
cols_label(
Continente = "Región / Continente",
ni = "Frecuencia (ni)",
`hi (%)` = "Porcentaje (hi%)"
) %>%
fmt_number(
columns = `hi (%)`,
decimals = 2
) %>%
tab_options(
heading.title.font.size = px(16),
column_labels.background.color = "#F0F0F0"
)
tabla_gt
| Tabla N°1 de Distribución de Frecuencias por Región — Subnational Unit | ||
| Región / Continente | Frecuencia (ni) | Porcentaje (hi%) |
|---|---|---|
| América Central y Caribe | 106 | 2.01 |
| América del Norte (USA) | 3077 | 58.30 |
| América del Sur | 425 | 8.05 |
| Asia | 108 | 2.05 |
| Canadá | 1177 | 22.30 |
| Oceanía | 171 | 3.24 |
| Otros / No Especificado | 214 | 4.05 |
| TOTAL | 5278 | 100.00 |
| Autor: Estalin | ||
Mediante un diagrama de barras de cantidad, se identificó una distribución global asimétrica con una dominancia clara de América del Norte (USA) sobre las demás regiones. Esta observación justificó la división del análisis en dos agrupaciones geoeconómicas (Mercados Consolidados y Mercados Emergentes) para aplicar modelos de probabilidad que describan el comportamiento de exploración y desarrollo en cada segmento.
Tabla_Grafica <- tabla_Final %>% filter(Continente != "TOTAL")
par(mar = c(11, 4, 4, 2))
barplot(height = Tabla_Grafica$ni,
names.arg = Tabla_Grafica$Continente,
main = "Gráfica N°1: Distribución de Cantidad de Unidades Petroleras por Región",
xlab = "",
ylab = "Cantidad",
col = "skyblue",
las = 3,
cex.names = 0.8,
cex.main = 0.85,
ylim = c(0, max(Tabla_Grafica$ni) * 1.2))
mtext("Región Geográfica", side = 1, line = 9)
Se realiza un mapeo asignando valores numéricos a las potencias petroleras líderes. Este proceso permite cuantificar la presencia regional para ajustar el Modelo Geométrico a la frecuencia observada de los mercados con mayor madurez tecnológica e infraestructura consolidada.
# 1. Definición de niveles consolidados
niveles_consolidados <- c("América del Norte (USA)", "Canadá", "Oceanía")
Datos_Consolidados <- tabla_SUB %>%
filter(Continente %in% niveles_consolidados)
Datos_Consolidados$Continente <- factor(Datos_Consolidados$Continente,
levels = niveles_consolidados,
ordered = TRUE)
TDF_G1_Cons <- as.data.frame(table(Datos_Consolidados$Continente))
colnames(TDF_G1_Cons) <- c("Continente", "ni")
TDF_G1_Cons$X <- 0:(nrow(TDF_G1_Cons) - 1)
TDF_G1_Cons$hi <- TDF_G1_Cons$ni / sum(TDF_G1_Cons$ni)
TDF_G1_Cons %>%
select(Continente, X, ni, hi) %>%
gt() %>%
tab_header(
title = md("**Tabla N°2 de Distribución de Frecuencias del Continente - Mapeado**"),
subtitle = "Segmento: Mercados Consolidados (Liderazgo Global)"
) %>%
tab_source_note(source_note = "Autor: Estalin") %>%
cols_label(
Continente = "Continente",
X = "Valor Asignado",
ni = "Frecuencia (ni)",
hi = "Porcentaje (hi%)"
) %>%
fmt_number(columns = hi, decimals = 4) %>%
tab_options(
heading.title.font.size = px(16),
column_labels.background.color = "#F0F0F0"
)
| Tabla N°2 de Distribución de Frecuencias del Continente - Mapeado | |||
| Segmento: Mercados Consolidados (Liderazgo Global) | |||
| Continente | Valor Asignado | Frecuencia (ni) | Porcentaje (hi%) |
|---|---|---|---|
| América del Norte (USA) | 0 | 3077 | 0.6954 |
| Canadá | 1 | 1177 | 0.2660 |
| Oceanía | 2 | 171 | 0.0386 |
| Autor: Estalin | |||
Se seleccionan las regiones de América del Norte (USA), Canadá y Oceanía para analizar el comportamiento del liderazgo industrial. Se aplica un Modelo Geométrico bajo la premisa de que la probabilidad de encontrar una unidad petrolera de alta capacidad disminuye conforme el mercado se vuelve más exigente y saturado, concentrando la mayor frecuencia en América del Norte (USA) como el principal nodo de exploración y producción global.
n_total_cons <- sum(TDF_G1_Cons$ni)
media_obs_cons <- sum(TDF_G1_Cons$X * TDF_G1_Cons$ni) / n_total_cons
prob_geom_cons <- 1 / (media_obs_cons + 1)
P_Geom_Cons <- dgeom(TDF_G1_Cons$X, prob = prob_geom_cons)
P_Geom_Cons <- P_Geom_Cons / sum(P_Geom_Cons) # Normalización
par(mar = c(10, 5, 5, 2))
barplot(rbind(TDF_G1_Cons$hi, P_Geom_Cons),
beside = TRUE,
main = "Gráfica N°2: Comparado de lo Observado frente a lo Esperado (Consolidados)",
ylab = "Porcentaje (%)",
names.arg = TDF_G1_Cons$Continente,
col = c("skyblue", "blue"),
legend.text = c("Observado", "Esperado"),
args.legend = list(x = "topright", bty = "n", cex = 0.8),
las = 2,
cex.names = 0.8,
cex.main = 0.8)
mtext("Mercado Geoeconómico", side = 1, line = 8)
Fo_C <- TDF_G1_Cons$hi
Fe_C <- P_Geom_Cons
plot(Fo_C, Fe_C,
main = "Gráfica N°3: Correlación del Modelo Observado y Esperado de Mercados Consolidados",
cex.main = 0.7,
xlab = "Frecuencia Observada",
ylab = "Frecuencia Esperada",
pch = 19, col = "#21618C")
abline(lm(Fe_C ~ Fo_C), col = "red", lwd = 2)
Correlacion_C <- cor(Fo_C, Fe_C) * 100
Correlacion_C
## [1] 98.81594
x2_C <- sum(((Fo_C - Fe_C)^2) / Fe_C)
gl_C <- length(Fo_C) - 1
vc_C <- qchisq(0.95, gl_C)
x2_C
## [1] 0.03456819
vc_C
## [1] 5.991465
x2_C < vc_C
## [1] TRUE
tabla_resumen_C <- data.frame(
Variable = "Mercados Consolidados",
Pearson = round(Correlacion_C, 2),
Chi2 = round(x2_C, 4),
Umbral = round(vc_C, 2),
Resultado = x2_C < vc_C
)
tabla_resumen_C %>%
gt() %>%
cols_label(
Variable = "Variable",
Pearson = "Test Pearson (%)",
Chi2 = "Chi Cuadrado",
Umbral = "Umbral de Aceptación",
Resultado = "Resultado"
) %>%
tab_header(
title = md("**Tabla N°3 Resumen del Test de Bondad al Modelo de Probabilidad**")
) %>%
tab_source_note(source_note = "Autor: Estalin") %>%
cols_align(align = "center", columns = everything()) %>%
tab_options(
heading.title.font.size = px(16),
column_labels.background.color = "#F0F0F0"
)
| Tabla N°3 Resumen del Test de Bondad al Modelo de Probabilidad | ||||
| Variable | Test Pearson (%) | Chi Cuadrado | Umbral de Aceptación | Resultado |
|---|---|---|---|---|
| Mercados Consolidados | 98.82 | 0.0346 | 5.99 | TRUE |
| Autor: Estalin | ||||
¿Cuál es la probabilidad de que una unidad petrolera seleccionada de forma aleatoria dentro del bloque de mercados consolidados esté ubicada específicamente en América del Norte (USA)?
prob_usa_geom <- dgeom(0, prob = prob_geom_cons)
paste0("La probabilidad estimada para el mercado de América del Norte (USA) es de: ",
round(prob_usa_geom * 100, 2), "%")
## [1] "La probabilidad estimada para el mercado de América del Norte (USA) es de: 74.44%"
Se asignan valores numéricos a las categorías de los mercados en vías de desarrollo. Esta codificación permite parametrizar el Modelo de Poisson, el cual es ideal para evaluar la tasa de aparición de proyectos en regiones con densidades industriales variables.
# 1. Definición de niveles y filtrado
niveles_emergentes <- c("América del Sur", "América Central y Caribe", "Asia", "Otros / No Especificado")
Datos_Emergentes <- tabla_SUB %>%
filter(Continente %in% niveles_emergentes)
# 2. Creación de Tabla de Frecuencias
TDF_G2_Emer <- as.data.frame(table(Datos_Emergentes$Continente))
colnames(TDF_G2_Emer) <- c("Continente", "ni")
# 3. Ordenamiento jerárquico para optimizar el modelo de Poisson
TDF_G2_Emer <- TDF_G2_Emer %>% arrange(desc(ni))
# 4. Mapeo y cálculo de hi
TDF_G2_Emer$X <- 0:(nrow(TDF_G2_Emer) - 1)
TDF_G2_Emer$hi <- TDF_G2_Emer$ni / sum(TDF_G2_Emer$ni)
# 5. Visualización con formato exacto de la Tabla N°2
TDF_G2_Emer %>%
select(Continente, X, ni, hi) %>%
gt() %>%
tab_header(
title = md("**Tabla N°4 de Distribución de Frecuencias del Continente - Mapeado**"),
subtitle = "Segmento: Mercados Emergentes"
) %>%
tab_source_note(source_note = "Autor: Estalin") %>%
cols_label(
Continente = "Continente",
X = "Valor Asignado",
ni = "Frecuencia (ni)",
hi = "Porcentaje (hi%)"
) %>%
fmt_number(columns = hi, decimals = 4) %>%
tab_options(
heading.title.font.size = px(16),
heading.subtitle.font.size = px(14),
column_labels.background.color = "#F0F0F0"
)
| Tabla N°4 de Distribución de Frecuencias del Continente - Mapeado | |||
| Segmento: Mercados Emergentes | |||
| Continente | Valor Asignado | Frecuencia (ni) | Porcentaje (hi%) |
|---|---|---|---|
| América del Sur | 0 | 425 | 0.4982 |
| Otros / No Especificado | 1 | 214 | 0.2509 |
| Asia | 2 | 108 | 0.1266 |
| América Central y Caribe | 3 | 106 | 0.1243 |
| Autor: Estalin | |||
Esta agrupación comprende las regiones de América del Sur, América Central y Caribe, Asia y Otros. Se propone un Modelo de Poisson para representar este segmento, ya que es el más robusto para modelar eventos independientes que ocurren con una tasa constante en un área geográfica. A diferencia de otros modelos, Poisson captura mejor la dispersión de proyectos en mercados donde la infraestructura aún no es uniforme, permitiendo un ajuste de alta precisión al Sur Global.
n_total_emerg <- sum(TDF_G2_Emer$ni)
lambda_emerg <- sum(TDF_G2_Emer$X * TDF_G2_Emer$ni) / n_total_emerg
P_Pois_Emer <- dpois(TDF_G2_Emer$X, lambda = lambda_emerg)
P_Pois_Emer <- P_Pois_Emer / sum(P_Pois_Emer)
par(mar = c(10, 5, 5, 2))
barplot(rbind(TDF_G2_Emer$hi, P_Pois_Emer),
beside = TRUE,
main = "Gráfica N°4: Comparado de lo Observado frente a lo Esperado (Poisson)",
ylab = "Porcentaje (%)",
names.arg = TDF_G2_Emer$Continente,
col = c("skyblue", "blue"),
legend.text = c("Observado", "Esperado"),
args.legend = list(x = "topright", bty = "n"),
las = 2,
cex.names = 0.8,
cex.main = 0.8)
mtext("Mercado Geoeconómico", side = 1, line = 9)
Fo_E <- TDF_G2_Emer$hi
Fe_E <- P_Pois_Emer
plot(Fo_E, Fe_E,
main = "Gráfica N°5: Correlación del Modelo (Poisson) en Mercados Emergentes",
xlab = "Frecuencia Observada", ylab = "Frecuencia Esperada",
pch = 19, col = "#1B4F72")
abline(lm(Fe_E ~ Fo_E), col = "red", lwd = 2)
Correlacion_E <- cor(Fo_E, Fe_E) * 100
Correlacion_E
## [1] 85.33401
x2_E <- sum(((Fo_E - Fe_E)^2) / Fe_E)
gl_E <- length(Fo_E) - 1
vc_E <- qchisq(0.95, gl_E)
x2_E
## [1] 0.1847983
vc_E
## [1] 7.814728
x2_E < vc_E
## [1] TRUE
tabla_resumen_E <- data.frame(
Variable = "Mercados Emergentes",
Pearson = round(Correlacion_E, 2),
Chi2 = round(x2_E, 4),
Umbral = round(vc_E, 2),
Resultado = x2_E < vc_E
)
tabla_resumen_E %>%
gt() %>%
cols_label(
Variable = "Variable",
Pearson = "Test Pearson (%)",
Chi2 = "Chi Cuadrado",
Umbral = "Umbral de Aceptación",
Resultado = "Resultado"
) %>%
tab_header(
title = md("**Tabla N°5 Resumen del Test de Bondad (Modelo Poisson)**")
) %>%
tab_source_note(source_note = "Autor: Estalin") %>%
tab_options(
heading.title.font.size = px(16),
column_labels.background.color = "#F0F0F0"
)
| Tabla N°5 Resumen del Test de Bondad (Modelo Poisson) | ||||
| Variable | Test Pearson (%) | Chi Cuadrado | Umbral de Aceptación | Resultado |
|---|---|---|---|---|
| Mercados Emergentes | 85.33 | 0.1848 | 7.81 | TRUE |
| Autor: Estalin | ||||
¿Cuál es la probabilidad estimada de que una nueva unidad petrolera se localice específicamente en América del Sur (Valor 0) bajo la tasa de ocurrencia de Poisson?
prob_sur_pois <- dpois(0, lambda = lambda_emerg)
paste0("La probabilidad estimada para América del Sur es de: ",
round(prob_sur_pois * 100, 2), "%")
## [1] "La probabilidad estimada para América del Sur es de: 41.61%"
El análisis probabilístico permitió modelar la distribución geográfica de las unidades petroleras a nivel mundial mediante un modelo geométrico para los mercados consolidados y un modelo de Poisson para los mercados emergentes. Los resultados muestran una clara dominancia del eje norteamericano en el liderazgo industrial, mientras que en el segmento de mercados en desarrollo, América del Sur se posiciona como la región con mayor tasa de aparición de nuevos proyectos.
Las pruebas de bondad de ajuste, con coeficientes de Pearson calculados para ambos segmentos, confirman que los modelos representan adecuadamente los datos observados por regiones. Esto evidencia una descripción estadística precisa de la segmentación geoeconómica actual, validando la diferencia entre la concentración industrial en potencias globales y la dispersión de proyectos en regiones emergentes.