1 Cargar datos

Se define el directorio de trabajo y se procede a importar la base de datos empleando la codificación Latin-1.

2 Tabla de distribución de frecuencia

Se determina la frecuencia absoluta de las empresas operadoras.

Operador <- Datos$OPERADOR
TDFOperador <- as.data.frame(table(Operador))
TDFOperador
##                Operador  Freq
## 1                        2932
## 2                 Alcom    11
## 3              Allpetro     1
## 4             Alvopetro    16
## 5          Amerada Hess     3
## 6              Anadarko    15
## 7               Arclima     1
## 8    Aurizônia Petróleo    16
## 9             BG Brasil     9
## 10            BP Brasil     3
## 11            BP Energy    12
## 12                Cemes     1
## 13    Central Resources     6
## 14       Chevron Brasil     1
## 15        Chevron Frade    65
## 16                Cisco     1
## 17 Cowan Petróleo e Gás     3
## 18         Devon Brasil    13
## 19        Dommo Energia   115
## 20                Egesa     3
## 21              Eni Oil     9
## 22           EPG Brasil     8
## 23              Espigão     2
## 24   Esso Expl Offshore     1
## 25    Esso Explor e Des     1
## 26    ExxonMobil Brasil     4
## 27       Geopark Brasil     2
## 28            Great Oil     2
## 29         Guto & Cacal     2
## 30              Imetame    61
## 31             Integral     1
## 32                  IPI     4
## 33               Karoon     8
## 34                Leros     1
## 35          Maha Energy    14
## 36             Marítima     2
## 37            Máxima 07     1
## 38                 Newo    10
## 39                 Nord     5
## 40           Norteoleum    23
## 41    Nova Petróleo Rec    57
## 42              Oceania     1
## 43      Oeste de Canoas     4
## 44          ONGC Campos     1
## 45           OP Energia    18
## 46              Panergy     5
## 47 Parnaíba Gás Natural   121
## 48        Partex Brasil    52
## 49       Perenco Brasil     4
## 50              Perícia     9
## 51        Petra Energia    28
## 52            Petrobras 25142
## 53      Petrogal Brasil    43
## 54              Petroil    19
## 55         PetroRio O&G    52
## 56         Petrosynergy   142
## 57              Phoenix    12
## 58                Proen     1
## 59              Quantra    12
## 60       Queiroz Galvão    19
## 61        Recôncavo E&P    41
## 62       Repsol Sinopec    13
## 63              Rosneft    13
## 64              Santana    47
## 65                  SHB    40
## 66                Shell     3
## 67         Shell Brasil   115
## 68        Silver Marlin     5
## 69                Sipet     2
## 70       Statoil Brasil    10
## 71   Statoil Brasil O&G   106
## 72     Tecpetrol Brasil     1
## 73                  Tek     3
## 74        Texaco BM-C-5     2
## 75  Total E&P do Brasil     8
## 76               Unocal     2
## 77          UP Petróleo     6
## 78       UTC Engenharia     1
## 79                Vanco     3
## 80              Vipetro    19
## 81        W. Washington     2
## 82  Wintershall BM-S-14     3

3 Agrupación de operadores por categorías

Se realiza la clasificación de los operadores según su tipo de empresa.

library(dplyr)
## 
## Adjuntando el paquete: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
TDFOperador$Operadores <- ifelse(TDFOperador$Operador %in% c("Petrobras"), "Empresa Nacional Estatal",
  ifelse(TDFOperador$Operador %in% c("PetroRio O&G","Recôncavo E&P","Dommo Energia","Parnaíba Gás Natural","Petra Energia","Petrosynergy","Petroil","Queiroz Galvão","SHB","Santana","Imetame","Panergy","OP Energia","Vipetro","Guto & Cacal", "Espigão","Oeste de Canoas","Nova Petróleo Rec","Norteoleum","Nord", "Newo","Máxima 07","Marítima","Alvopetro","Allpetro","Alcom", "Aurizônia Petróleo","Arclima","Central Resources","Cemes","Perícia"
    ),"Empresas Nacionales Privadas", 
    ifelse(TDFOperador$Operador %in% c("Shell","Shell Brasil","BP","BP Brasil","BP Energy","Total E&P do Brasil", "Chevron Brasil","Chevron Frade","ExxonMobil Brasil","Equinor", "Statoil Brasil","Statoil Brasil O&G","Repsol Sinopec","Eni Oil", "BG Brasil","Petrogal Brasil","Rosneft"),
      "Empresas Extranjeras Mayores",
      ifelse(TDFOperador$Operador %in% c("Wintershall BM-S-14","Unocal","Texaco BM-C-5","Devon Brasil", "Amerada Hess","Anadarko","Cowan Petróleo e Gás","ONGC Campos", "Partex Brasil","Perenco Brasil","Karoon","Maha Energy", "Geopark Brasil","Great Oil","Silver Marlin","Sipet","Tek", "Tecpetrol Brasil","Leros","Phoenix","Cisco","EPG Brasil", "Esso Expl Offshore","Esso Explor e Des","IPI","Integral"), "Empresas Extranjeras Independientes", "Otros"))))

head(TDFOperador$Operadores)
## [1] "Otros"                               "Empresas Nacionales Privadas"       
## [3] "Empresas Nacionales Privadas"        "Empresas Nacionales Privadas"       
## [5] "Empresas Extranjeras Independientes" "Empresas Extranjeras Independientes"

4 Cálculo de frecuencias por categoría

Se calcula la distribución de frecuencias absoluta (ni) y relativa (hi) para cada grupo.

TDFOperador$Freq <- as.numeric(as.character(TDFOperador$Freq))
library(dplyr)
TDFOperador1 <- Datos$TDFOperador
TDFOperador1 <- TDFOperador %>%
  group_by(Operadores) %>%
  summarise( 
    ni = sum(Freq),
    hi = round(sum(Freq) / sum(TDFOperador$Freq)*100, 2))

TDFOperador1 <- data.frame(TDFOperador1)

5 Agregar totales

Se incorpora la fila de totales para las frecuencias absoluta y relativa.

TDFOperador1 <- TDFOperador1 [, c("Operadores", "ni", "hi")]
total_ni <- sum(TDFOperador1$ni)
total_hi <- 100
TDFOPERADORCOMPLETA <- rbind(TDFOperador1, data.frame(Operadores = "Total",
                                                       ni = total_ni, 
                                                       hi = total_hi))
print(TDFOPERADORCOMPLETA)
##                            Operadores    ni     hi
## 1            Empresa Nacional Estatal 25142  85.01
## 2 Empresas Extranjeras Independientes   164   0.55
## 3        Empresas Extranjeras Mayores   414   1.40
## 4        Empresas Nacionales Privadas   894   3.02
## 5                               Otros  2961  10.01
## 6                               Total 29575 100.00

6 Tabla en formato GT

Se presenta la tabla con formato claro y profesional.

library(gt)
gt(TDFOPERADORCOMPLETA) %>%
  tab_header( 
    title = md("**Cuadro No.1**"), 
    subtitle = "Operadores de los pozos petrolíferos en Brasil") %>% 
  cols_align(align = "center", columns = everything()) %>%
  tab_style(
    style = list(cell_fill(color = "#2E4053"), cell_text(color = "white", weight = "bold")),
    locations = cells_title()
  ) %>%
  tab_style(
    style = list(cell_fill(color = "#F2F3F4"), cell_text(weight = "bold", color = "#2E4053")),
    locations = cells_column_labels()
  ) %>%
  tab_options(
    table.border.top.color = "#2E4053",
    table.border.bottom.color = "#2E4053",
    column_labels.border.bottom.color = "#2E4053",
    data_row.padding = px(6)) 
Cuadro No.1
Operadores de los pozos petrolíferos en Brasil
Operadores ni hi
Empresa Nacional Estatal 25142 85.01
Empresas Extranjeras Independientes 164 0.55
Empresas Extranjeras Mayores 414 1.40
Empresas Nacionales Privadas 894 3.02
Otros 2961 10.01
Total 29575 100.00

7 Gráficas

7.1 Histograma de frecuencia absoluta local

Se representa gráficamente la frecuencia absoluta de cada grupo.

TDFOPERADORCOMPLETA<- TDFOPERADORCOMPLETA[TDFOPERADORCOMPLETA$Operadores != "Total", ]
par(mar = c(9, 4, 4, 2))
barplot(TDFOPERADORCOMPLETA$ni,
        main = "Gráfica N°1: Distribución en cantidad de operadores",
        ylab = "Cantidad",
        col = "#2E4053", names.arg = TDFOPERADORCOMPLETA$Operadores,
        las = 2, cex.names = 0.6, cex.axis = 0.8, cex.main = 1)
mtext("Operadores", side = 1, line = 7, adj = 0.99)

7.2 Histograma de frecuencia absoluta global

Se muestra la distribución de la frecuencia absoluta con un rango ampliado en el eje Y.

par(mar = c(9, 4, 4, 2))
barplot(TDFOPERADORCOMPLETA$ni,
        main = "Gráfica N°2: Distribución en cantidad de operadoreS",
        ylab = "Cantidad",
        col = "#2E4053", names.arg = TDFOPERADORCOMPLETA$Operadores,
        las = 2, cex.names = 0.6, cex.axis = 0.8, cex.main = 1,
        ylim = c(0,30000)) 
mtext("Operadores", side = 1, line = 7, adj = 0.99)

7.3 Histograma de frecuencia relativa local

Se presenta la distribución porcentual de cada categoría.

par(mar = c(9, 4, 4, 2))
barplot(TDFOPERADORCOMPLETA$hi,
        main = "Gráfica N°3: Distribución en porcentaje de participación de operadores",
        ylab = "Porcentaje",
        col = "#2E4053", names.arg = TDFOPERADORCOMPLETA$Operadores,
        las = 2, cex.names = 0.6, cex.axis = 0.8, cex.main = 1)
mtext("Operadores", side = 1, line = 7, adj = 0.99)

7.4 Histograma de frecuencia relativa global

Se presenta la gráfica porcentual con un límite superior de 100 %.

par(mar = c(9, 4, 4, 2))
barplot(TDFOPERADORCOMPLETA$hi,
        main = "Gráfica N°4: Distribución en porcentaje de participación de operadoreS",
        ylab = "Porcentaje",
        col = "#2E4053", names.arg = TDFOPERADORCOMPLETA$Operadores,
        las = 2, cex.names = 0.6, cex.axis = 0.8, cex.main = 1,
        ylim = c(0,100))
mtext("Operadores", side = 1, line = 7, adj = 0.99)

7.5 Diagrama circular

Se genera un diagrama circular utilizando las bibliotecas ggplot2 y ggrepel para representar la participación relativa de cada grupo

library(ggplot2)
library(ggrepel)

datos_plot <- TDFOPERADORCOMPLETA 
datos_plot$ymax <- cumsum(datos_plot$hi)
datos_plot$ymin <- c(0, head(datos_plot$ymax, n=-1))
datos_plot$posicion_label <- (datos_plot$ymax + datos_plot$ymin) / 2
colores <- c("#90CFFF", "#966BFF", "#FF6A8B", "#FFA88B", "#CCDE8B", "#20DE8B")
ggplot(datos_plot, aes(ymax=ymax, ymin=ymin, xmax=4, xmin=0, fill=Operadores)) +
  geom_rect(color = "black") +
  coord_polar(theta="y") + 
  geom_label_repel(aes(y = posicion_label, x = 4, label = paste0(round(hi, 2))),
                   size = 4, 
                   nudge_x = 0.5,  
                   show.legend = FALSE) +
  scale_fill_manual(values = colores) +
  ggtitle("Gráfica N°5: Distribución porcentual de operadores") +
  theme_void()+
  theme(
    legend.position = "right",
    plot.title = element_text(hjust = 0.5),
    legend.background = element_rect(color = "black", 
                                     fill = "white",    
                                     linewidth = 0.5, 
                                     linetype = "solid"
  ), 
  legend.margin = margin(t = 10, r = 10, b = 10, l = 10) 
  )

8 Resumen Estadístico

Conclusiones <- data.frame(
Variable = "Tipo de operador petrolero",
`Rango [Min; Max]` = "N/A",
`Media (X̄)` = "N/A",
`Mediana (Me)` = "N/A",
`Moda (Mo)` = "Empresa Nacional Estatal",
`Varianza (S²)` = "N/A",
`Desv. Est. (S)` = "N/A",
`C.V. (%)` = "N/A",
`Asimetría (As)` = "N/A",
`Curtosis (K)` = "N/A",
`Valores Atípicos` = "N/A",
check.names = FALSE)


library(gt)

gt(Conclusiones) %>%
tab_header(
title = md("CONCLUSIONES Y ESTADÍSTICOS"),
subtitle = "Resumen de indicadores descriptivos"
) %>%
tab_source_note(source_note = "Autor: Caleb Yanez") %>%
  cols_align(align = "center", columns = everything()) %>%
  tab_style(
    style = list(cell_fill(color = "#2E4053"), cell_text(color = "white", weight = "bold")),
    locations = cells_title()
  ) %>%
  tab_style(
    style = list(cell_fill(color = "#F2F3F4"), cell_text(weight = "bold", color = "#2E4053")),
    locations = cells_column_labels()
  ) %>%
  tab_options(
    table.border.top.color = "#2E4053",
    table.border.bottom.color = "#2E4053",
    column_labels.border.bottom.color = "#2E4053",
    data_row.padding = px(6))
CONCLUSIONES Y ESTADÍSTICOS
Resumen de indicadores descriptivos
Variable Rango [Min; Max] Media (X̄) Mediana (Me) Moda (Mo) Varianza (S²) Desv. Est. (S) C.V. (%) Asimetría (As) Curtosis (K) Valores Atípicos
Tipo de operador petrolero N/A N/A N/A Empresa Nacional Estatal N/A N/A N/A N/A N/A N/A
Autor: Caleb Yanez

8.1 Interpretación narrativa detallada y automática

8.2 Análisis Descriptivo

La moda corresponde a la categoría Empresa Nacional Estatal, ya que es el tipo de operador que presenta la mayor frecuencia dentro del conjunto de pozos petrolíferos analizados.