Titularidad de los pozos petroleros

setwd("C:/Users/Usuario/Desktop/Nueva carpeta")
library(readxl)
library(dplyr)
library(gt)
datos <- read_excel("tabela_de_pocos_janeiro_2018.xlsx")

1 Carga del entorno de trabajo y datos

En esta fase inicial, se configura el entorno de trabajo y se realiza la carga del conjunto de datos correspondiente a los pozos petrolíferos mediante la lectura de un archivo CSV, preparando así la información para su posterior procesamiento y análisis exploratorio.

2 Tabla de distribución de frecuencia

Se presenta la tabla de frecuencias de la variable TITULARIDADE para analizar sus distintas categorías

Titularidad <- Datos$TITULARIDADE
TDFTitularidad <- as.data.frame(table(Titularidad))
TDFTitularidad
##    Titularidad  Freq
## 1 Confidencial   705
## 2   P\xfablico 28870

3 Cálculo de frecuencias absoluta y relativa

Se determina la distribución en número (ni) y el porcentaje (hi) de los pozos de acuerdo con su titularidad.

TDFTitularidad$Freq <- as.numeric(as.character(TDFTitularidad$Freq))
library(dplyr)
TDFTitularidad1 <- Datos$TDFTitularidad
TDFTitularidad1  <- TDFTitularidad %>%
  group_by(Titularidad) %>%
  
  summarise( 
    ni = sum(Freq),
    hi = round(sum(Freq) / sum(TDFTitularidad$Freq)*100, 5))

TDFTitularidad1 <- data.frame(TDFTitularidad1)

4 Incorporación de totales

Se presentan los totales generales de la frecuencia absoluta y relativa.

Titularidad <- Datos$TITULARIDADE

TDFTitularidad1 <- as.data.frame(table(Titularidad))

names(TDFTitularidad1) <- c("Titularidad", "ni")

TDFTitularidad1$Titularidad <- as.character(TDFTitularidad1$Titularidad)

TDFTitularidad1$fi <- TDFTitularidad1$ni / sum(TDFTitularidad1$ni)

TDFTitularidad1$hi <- TDFTitularidad1$fi * 100

TDFTitularidad1 <- TDFTitularidad1[, c("Titularidad", "ni", "hi", "fi")]

total_ni <- sum(TDFTitularidad1$ni) 
total_hi <- sum(TDFTitularidad1$hi)
total_fi <- sum(TDFTitularidad1$fi)

TDFTitularidadcompleta <- rbind(
  TDFTitularidad1,
  data.frame(
    Titularidad = "Total",
    ni = total_ni,
    hi = total_hi,
    fi = total_fi
  )
)

print(TDFTitularidadcompleta)
##    Titularidad    ni        hi        fi
## 1 Confidencial   705   2.38377 0.0238377
## 2   P\xfablico 28870  97.61623 0.9761623
## 3        Total 29575 100.00000 1.0000000

5 Presentación de tabular los resultados

Se presenta la tabla de distribución con un formato adecuado para facilitar su interpretación.

library(dplyr)
library(gt)

# Extraer la variable Titularidad
Titularidad <- Datos$TITULARIDADE

# Convertir el texto para que R pueda leerlo sin error
Titularidad <- iconv(Titularidad, from = "latin1", to = "UTF-8", sub = "")

# Quitar espacios vacios
Titularidad <- trimws(Titularidad)

# Eliminar datos vacios o NA
Titularidad <- Titularidad[!is.na(Titularidad) & Titularidad != ""]

# Corregir la palabra Publico/Pblico/Público a Público
Titularidad[grepl("blico", Titularidad)] <- "P\u00fablico"

# Crear tabla de frecuencia absoluta
TDFTitularidad1 <- as.data.frame(table(Titularidad), stringsAsFactors = FALSE)

# Renombrar columnas
names(TDFTitularidad1) <- c("Titularidad", "ni")

# Calcular frecuencia relativa en fraccion y porcentaje
TDFTitularidad1$fi <- TDFTitularidad1$ni / sum(TDFTitularidad1$ni)
TDFTitularidad1$hi <- TDFTitularidad1$fi * 100

# Ordenar columnas
TDFTitularidad1 <- TDFTitularidad1[, c("Titularidad", "ni", "hi", "fi")]

# Calcular totales
total_ni <- sum(TDFTitularidad1$ni)
total_hi <- sum(TDFTitularidad1$hi)
total_fi <- sum(TDFTitularidad1$fi)

# Agregar fila total
TDFTitularidadcompleta <- rbind(
  TDFTitularidad1,
  data.frame(
    Titularidad = "Total",
    ni = total_ni,
    hi = total_hi,
    fi = total_fi
  )
)

TDFTitularidadcompleta
##    Titularidad    ni        hi        fi
## 1 Confidencial   705   2.38377 0.0238377
## 2      Público 28870  97.61623 0.9761623
## 3        Total 29575 100.00000 1.0000000
gt(TDFTitularidadcompleta) %>%
  tab_header( 
    title = md("**Tabla No. 2: DISTRIBUCION DE FRECUENCIAS DE POZOS PETROLEROS DE BRASIL**"), 
    subtitle = "Titularidad de los pozos petroleros"
  ) %>%  
  tab_spanner(
    label = md("**Frecuencia Relativa**"),
    columns = c(hi, fi)
  ) %>%
  cols_label(
    Titularidad = md("**Titularidad**"),
    ni = md("**ni**"),
    hi = md("Porcentual (%)"),
    fi = md("Fraccion")
  ) %>%
  fmt_number(columns = hi, decimals = 2) %>%
  fmt_number(columns = fi, decimals = 4) %>%
  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_style(
    style = list(
      cell_fill(color = "#2E4053"),
      cell_text(color = "white", weight = "bold")
    ),
    locations = cells_column_spanners()
  ) %>%
  tab_style(
    style = list(
      cell_fill(color = "#D5D8DC"),
      cell_text(weight = "bold", color = "#2E4053")
    ),
    locations = cells_body(rows = nrow(TDFTitularidadcompleta))
  ) %>%
  tab_options(
    table.border.top.color = "#2E4053",
    table.border.bottom.color = "#2E4053",
    column_labels.border.bottom.color = "#2E4053",
    data_row.padding = px(6),
    table.font.size = px(13)
  )
Tabla No. 2: DISTRIBUCION DE FRECUENCIAS DE POZOS PETROLEROS DE BRASIL
Titularidad de los pozos petroleros
Titularidad ni
Frecuencia Relativa
Porcentual (%) Fraccion
Confidencial 705 2.38 0.0238
Público 28870 97.62 0.9762
Total 29575 100.00 1.0000

6 Gráficas

6.1 Histograma de frecuencia absoluta local

Se representa la distribución en cantidad según la titularidad de los pozos, excluyendo el total.

TDFTitularidadcompleta_ <- TDFTitularidadcompleta[TDFTitularidadcompleta$Titularidad!= "Total", ]

barplot(TDFTitularidadcompleta_$ni,
        main = "Gráfica N°1: Distribución en cantidad según titularidad",
        xlab = "Titularidad", ylab = "Cantidad",
        col = "#263238", names.arg = TDFTitularidadcompleta_$Titularidad,
        las = 1, cex.names = 1, cex.axis = 0.8, cex.main = 1)

6.2 Histograma de frecuencia absoluta global

Se muestra la distribución en cantidad de los pozos según su titularidad utilizando una escala ampliada.

barplot(TDFTitularidadcompleta_$ni,
        main = "Gráfica N°2: Distribución en cantidad según titularidad",
        xlab = "Titularidad", ylab = "Cantidad",
        col = "#263238", names.arg = TDFTitularidadcompleta_$Titularidad,
        las = 1, cex.names = 1, cex.axis = 0.8, cex.main = 1,
        ylim = c(0,30000))

6.3 Histograma de frecuencia relativa local

Se representa la distribución porcentual según la titularidad de los pozos, sin incluir el total.

barplot(TDFTitularidadcompleta_$hi,
        main = "Gráfica N°3: Distribución porcentual según titularidad",
        xlab = "Titularidad", ylab = "Porcentaje",
        col = "#263238", names.arg = TDFTitularidadcompleta_$Titularidad,
        las = 1, cex.names = 1, cex.axis = 0.8, cex.main = 1)

6.4 Histograma de frecuencia relativa global

Histograma de frecuencia relativa global

barplot(TDFTitularidadcompleta_$hi,
        main = "Gráfica N°4: Distribución porcentual según titularidad",
        xlab = "Titularidad", ylab = "Porcentaje",
        col = "#263238", names.arg = TDFTitularidadcompleta_$Titularidad,
        las = 1, cex.names = 1, cex.axis = 0.8, cex.main = 1,
        ylim = c(0,100)) 

6.5 Diagrama circular

Se presenta la distribución porcentual de los pozos de acuerdo con su titularidad.

pie(TDFTitularidadcompleta_$hi, 
    main = "Gráfica N°5: Distribución porcentual según titularidad", 
    radius = 0.9,
    labels = paste0(round(TDFTitularidadcompleta_$hi,2)),
    col = c("#2E4053", "#F2F3F4"),
    cex = 1, cex.main = 1,
    init.angle = 90)

legend(x = -1.95, y =1,
       legend = TDFTitularidadcompleta_$Titularidad,
       fill = c("#2E4053", "#F2F3F4"),
       cex = 1,
       title = "Titularidad")

7 Resumen Estadístico

Conclusiones <- data.frame(
Variable = "Titularidad",
`Rango [Min; Max]` = "N/A",
`Media (X̄)` = "N/A",
`Mediana (Me)` = "N/A",
`Moda (Mo)` = "Público",
`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 de la Titularidad de los Pozos Petroleros en Brasil") %>%
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 de la Titularidad de los Pozos Petroleros en Brasil
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
Titularidad N/A N/A N/A Público N/A N/A N/A N/A N/A N/A
Autor: Caleb Yanez

7.1 Conclusiones

7.2 Análisis Descriptivo

La categoría Público representa la moda de la variable titularidad, lo que evidencia que la mayor cantidad de pozos petroleros en Brasil está bajo administración estatal, destacando la importancia del sector público dentro de la industria petrolera nacional.