1.Introduccion Y Metodologia

El presente informe estadístico analiza la variable Término (Fecha de finalización) de los pozos petroleros de Brasil.

2. Tabla de Frecuencias

A continuación se presenta la tabla de frecuencias detallada.

Tabla_Base <- Datos %>%
  group_by(Variable_Analisis) %>%
  summarise(ni = n()) %>%
  arrange(Variable_Analisis)

xi <- Tabla_Base$Variable_Analisis
ni <- Tabla_Base$ni                

N <- sum(ni)
hi <- (ni / N) * 100              
Ni_asc <- cumsum(ni)              
Ni_desc <- rev(cumsum(rev(ni)))   
Hi_asc <- cumsum(hi)
Hi_desc <- rev(cumsum(rev(hi)))

TDF_Final <- data.frame(
  Xi = as.character(xi), ni = as.character(ni), hi = as.character(round(hi, 2)),
  Ni_asc = as.character(Ni_asc), Ni_desc = as.character(Ni_desc),
  Hi_asc = as.character(round(Hi_asc, 2)), Hi_desc = as.character(round(Hi_desc, 2))
)
TDF_Final <- rbind(TDF_Final, c("TOTAL", sum(ni), round(sum(hi), 2), "-", "-", "-", "-"))


TDF_Final %>%
  gt() %>%
  tab_header(title = md("DISTRIBUCIÓN RESTRINGIDA - TÉRMINO (10 AÑOS)"), subtitle = paste(ANIO_INICIO, "-", ANIO_FIN)) %>%
  tab_source_note(source_note = md("Fuente: Datos ANP 2018")) %>%
  cols_label(
    Xi      = "Año",
    ni      = "Frec. Absoluta (ni)",
    hi      = "Frec. Relativa % (hi)",
    Ni_asc  = "Frec. Acum. Asc. (Ni)",
    Ni_desc = "Frec. Acum. Desc. (Ni*)",
    Hi_asc  = "Frec. Rel. Acum. Asc. (Hi)",
    Hi_desc = "Frec. Rel. Acum. Desc. (Hi)"
  ) %>%
  cols_align(align = "center", columns = everything()) %>%
  tab_options(table.border.top.color = "#2E4053") %>%
  tab_style(style = list(cell_fill(color = "#1F618D"), cell_text(color = "white", weight = "bold")), locations = cells_title())
DISTRIBUCIÓN RESTRINGIDA - TÉRMINO (10 AÑOS)
2009 - 2018
Año Frec. Absoluta (ni) Frec. Relativa % (hi) Frec. Acum. Asc. (Ni) Frec. Acum. Desc. (Ni*) Frec. Rel. Acum. Asc. (Hi) Frec. Rel. Acum. Desc. (Hi)
2009 865 15.76 865 5490 15.76 100
2010 798 14.54 1663 4625 30.29 84.24
2011 659 12 2322 3827 42.3 69.71
2012 794 14.46 3116 3168 56.76 57.7
2013 647 11.79 3763 2374 68.54 43.24
2014 579 10.55 4342 1727 79.09 31.46
2015 677 12.33 5019 1148 91.42 20.91
2016 247 4.5 5266 471 95.92 8.58
2017 224 4.08 5490 224 100 4.08
TOTAL 5490 100 - - - -
Fuente: Datos ANP 2018

3.Analisis Grafico

Representación visual de la actividad de perforacion en Brazil

3.1 Histograma de Frecuencias

# Frecuencias 
col_barras <- "#154360" 
col_texto  <- "black"

# GRÁFICO 1
par(mar = c(8, 5, 4, 2)) 
bar_pos <- barplot(ni, names.arg = xi,
                   main = "Gráfica No.1: Distribución de Término",
                   ylab = "Frecuencia Absoluta",
                   xlab = "Año",
                   col = col_barras, 
                   border = "white",
                   ylim = c(0, max(ni)*1.2), # Ajuste automático del alto
                   las=2)
grid(nx=NA, ny=NULL, col="gray", lty="dotted")

# GRÁFICO 2
par(mar = c(8, 5, 4, 2))
bar_pos2 <- barplot(Ni_asc, names.arg = xi,
                    main = "Gráfica N°2: Distribución Acumulada de Término",
                    ylab = "Total Pozos Finalizados", 
                    xlab = "Año",
                    col = "#154360", 
                    border = "white",
                    ylim = c(0, max(Ni_asc) * 1.15), 
                    las=2)
text(x = bar_pos2, y = Ni_asc, label = Ni_asc, pos = 3, cex = 0.8, col="black") 
grid(nx=NA, ny=NULL, col="gray", lty="dotted")

3.2 Graficos Porcentuales

# GRÁFICO 3
par(mar = c(8, 5, 4, 2))
bar_pos3 <- barplot(hi, names.arg = xi,
                    main = "Gráfica N°3: Distribución Porcentual de Término",
                    ylab = "Porcentaje(%)", 
                    xlab = "Año",
                    col = "#154360", border = "white",
                    ylim = c(0, max(hi)*1.2), 
                    las=2)
text(x = bar_pos3, y = hi, label = paste0(round(hi, 1), "%"), pos = 3, cex = 0.8)
grid(nx=NA, ny=NULL, col="gray", lty="dotted")

# GRÁFICO 4
par(mar = c(8, 5, 4, 2))
bar_pos4 <- barplot(Hi_asc, names.arg = xi,
                    main = "Gráfica No.4: Distribución Porcentual Acumulada de Término",
                    ylab = "Porcentaje Total(%)",
                    xlab = "Año",
                    col = "#154360", 
                    border = "white",
                    ylim = c(0, 110), las=2)
text(x = bar_pos4, y = Hi_asc, label = paste0(round(Hi_asc, 2), "%"), pos = 3, cex = 0.6)

3.3 Diagrama de Caja y Ojivas

par(mar = c(5, 5, 4, 2))
boxplot(as.numeric(Fechas_Completas), 
        horizontal = TRUE, 
        col = "#F1C40F", 
        main = "Gráfica No.5: Diagrama de Caja de Término (Boxplot)", 
        frame.plot = FALSE, 
        xaxt = "n",
        xlab = "Año")  

eje_fechas <- seq(min(Fechas_Completas), max(Fechas_Completas), length.out = 5)
axis(1, at = as.numeric(eje_fechas), labels = format(eje_fechas, "%Y"), cex.axis=0.8)

Datos_Grafico <- Tabla_Base %>%
  arrange(Variable_Analisis) %>% 
  mutate(
    hi = (ni / sum(ni)) * 100,
    Hi_asc = cumsum(hi),            
    Hi_desc = rev(cumsum(rev(hi)))  
  )

ggplot(Datos_Grafico, aes(x = Variable_Analisis)) +
  geom_line(aes(y = Hi_asc, color = "Ascendente"), size = 1) +
  geom_point(aes(y = Hi_asc, color = "Ascendente"), size = 3) +
  
  geom_line(aes(y = Hi_desc, color = "Descendente"), size = 1) +
  geom_point(aes(y = Hi_desc, color = "Descendente"), size = 3) +
  
  scale_x_continuous(breaks = Datos_Grafico$Variable_Analisis) + 
  scale_y_continuous(limits = c(0, 110)) + 
  
  scale_color_manual(name = "Tipo de Ojiva", 
                     values = c("Ascendente" = "#2E4053", "Descendente" = "#C0392B")) +
  
  labs(
    title = "Ojivas Ascendente y Descendente (Término)",
    subtitle = "Distribución acumulada de finalización de pozos",
    x = "Año",
    y = "Frecuencia Acumulada (%)"
  ) +
  theme_minimal() +
  theme(legend.position = "right")

4 Resumen Estadistico

x <- Datos$Variable_Analisis

# CÁLCULOS
media    <- mean(x)
mediana <- median(x)

get_mode <- function(v) {
  uni <- unique(v)
  uni[which.max(tabulate(match(v, uni)))]
}
moda    <- get_mode(x)
varianza <- var(x)
desv_std <- sd(x)
cv       <- (desv_std / media) * 100
asimetria <- skewness(x)
curtosis  <- kurtosis(x)
min_val   <- min(x)
max_val   <- max(x)

# OUTLIERS
Q1 <- quantile(x, 0.25)
Q3 <- quantile(x, 0.75)
IQR_val <- Q3 - Q1
lim_inf <- Q1 - 1.5 * IQR_val
lim_sup <- Q3 + 1.5 * IQR_val

outliers_data <- x[x < lim_inf | x > lim_sup]
num_outliers <- length(outliers_data)

if(num_outliers > 0){
  rango_outliers <- paste0(num_outliers, " [", min(outliers_data), "; ", max(outliers_data), "]")
} else {
  rango_outliers <- "0 [Sin Outliers]"
}

# TABLA RESUMEN
df_resumen <- data.frame(
  Variable = "Año de Término",
  Rango    = paste0("[", min_val, "; ", max_val, "]"),
  Media    = round(media, 2),
  Mediana  = round(mediana, 2),
  Moda     = round(moda, 2),
  Varianza = round(varianza, 2),
  Desv_Est = round(desv_std, 2),
  CV       = round(cv, 2),
  Asimetria = round(asimetria, 4),
  Curtosis  = round(curtosis, 2),
  Outliers  = rango_outliers
)

df_resumen %>%
  gt() %>%
  tab_header(
    title = md("CONCLUSIONES Y ESTADÍSTICOS"),
    subtitle = "Resumen de Indicadores de Término (Fecha)"
  ) %>%
  cols_label(
    Variable = "Variable",
    Rango = "Rango [Min; Max]",
    Media = "Media (x̄)",
    Mediana = "Mediana (Me)",
    Moda = "Moda (Mo)",
    Varianza = "Varianza (S²)",
    Desv_Est = "Desv. Est. (S)",
    CV = "C.V. (%)",
    Asimetria = "Asimetría (As)",
    Curtosis = "Curtosis (K)",
    Outliers = "Outliers [Intervalo]"
  ) %>%
  tab_options(
    table.border.top.color = "#2E4053",
    heading.background.color = "white"
  ) %>%
  tab_style(
    style = list(
      cell_fill(color = "#2E4053"),
      cell_text(color = "white", weight = "bold")
    ),
    locations = cells_column_labels()
  ) %>%
  cols_align(align = "center", columns = everything())
CONCLUSIONES Y ESTADÍSTICOS
Resumen de Indicadores de Término (Fecha)
Variable Rango [Min; Max] Media (x̄) Mediana (Me) Moda (Mo) Varianza (S²) Desv. Est. (S) C.V. (%) Asimetría (As) Curtosis (K) Outliers [Intervalo]
Año de Término [2009; 2017] 2012.2 2012 2009 5.47 2.34 0.12 0.2701 -1 0 [Sin Outliers]

5 Conclusiones

x <- Datos$Variable_Analisis
min_val <- min(x)
max_val <- max(x)
mediana <- median(x)
desv_std <- sd(x)
cv <- (desv_std / mean(x)) * 100
num_outliers <- length(boxplot.stats(x)$out)

tipo_homogeneidad <- if(cv < 10) "muy homogénea" else if(cv < 30) "homogénea" else "heterogénea"

cat(paste0(
  "<h3>5.1 Análisis Descriptivo (Término)</h3>",
  "<p style='text-align: justify;'>",
  "La variable <b>Término (Finalización)</b> fluctúa entre <b>", min_val, "</b> y <b>", max_val, "</b>, ",
  "con una tendencia central alrededor del año <b>", round(mediana, 0), "</b>. ",
  "Presenta una desviación estándar de <b>", round(desv_std, 2), "</b> años, ",
  "caracterizándose como una variable <b>", tipo_homogeneidad, "</b> (CV: ", round(cv, 2), "%). ",
  "En cuanto a valores extremos, la distribución <b>no presenta valores atípicos (", num_outliers, " outliers)</b>, ",
  "lo que indica que los procesos de finalización de pozos siguieron un ritmo temporal consistente con el inicio de las operaciones.",
  "</p>"
))

5.1 Análisis Descriptivo (Término)

La variable Término (Finalización) fluctúa entre 2009 y 2017, con una tendencia central alrededor del año 2012. Presenta una desviación estándar de 2.34 años, caracterizándose como una variable muy homogénea (CV: 0.12%). En cuanto a valores extremos, la distribución no presenta valores atípicos (0 outliers), lo que indica que los procesos de finalización de pozos siguieron un ritmo temporal consistente con el inicio de las operaciones.