1.Introduccion Y Metodologia

El presente informe estadístico analiza la variable Inicio(fecha) de 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 (10 AÑOS)"), subtitle = paste(ANIO_INICIO, "-", ANIO_FIN)) %>%
   tab_source_note(source_note = "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 (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 868 15.6 868 5565 15.6 100
2010 815 14.65 1683 4697 30.24 84.4
2011 693 12.45 2376 3882 42.7 69.76
2012 819 14.72 3195 3189 57.41 57.3
2013 610 10.96 3805 2370 68.37 42.59
2014 593 10.66 4398 1760 79.03 31.63
2015 665 11.95 5063 1167 90.98 20.97
2016 243 4.37 5306 502 95.35 9.02
2017 243 4.37 5549 259 99.71 4.65
2018 16 0.29 5565 16 100 0.29
TOTAL 5565 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"
par(mar = c(8, 5, 4, 2)) 
bar_pos <- barplot(ni, names.arg = xi,
                   main = "Gráfica No.1: Distribución de Inicio",
                   ylab = "Frecuencia Absoluta",
                   xlab = "Año",
                   col = col_barras, 
                   border = "white",
                   ylim = c(0, 1200), 
                   las=2)
grid(nx=NA, ny=NULL, col="gray", lty="dotted")

# GRÁFICO 
par(mar = c(8, 5, 4, 2))
bar_pos2 <- barplot(Ni_asc, names.arg = xi,
                    main = "Gráfica N°2: Distribución de Inicio",
                    ylab = "Total Pozos", 
                    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="white") 
grid(nx=NA, ny=NULL, col="gray", lty="dotted")

3.2 Graficos Porcentuales

#grafico
par(mar = c(8, 5, 4, 2))
bar_pos3 <- barplot(hi, names.arg = xi,
                    main = "Gráfica N°3: Distribución Porcentual de Inicio",
                    ylab = "Porcentaje(%)", 
                    xlab = "Año",
                    col = "#154360", border = "white",
                    ylim = c(0, 20), 
                    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")

#grafico
par(mar = c(8, 5, 4, 2))
bar_pos4 <- barplot(Hi_asc, names.arg = xi,
                    main = "Gráfica No.4: Distribución Porcentual de Inicio)",
                    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 Inicio (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)

library(ggplot2)
library(dplyr)


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",
    subtitle = "Distribución acumulada de inicios de pozos",
    x = "Año",
    y = "Frecuencia Acumulada (%)"
  ) +
  theme_minimal() +
  theme(legend.position = "right") 

4 Resumen Estadistico

x <- Datos$Variable_Analisis
#TABLA 

media   <- mean(x)
mediana <- median(x)
#moda
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)

# valores atipicos
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
df_resumen <- data.frame(
  Variable = "Año de Inicio",
  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 Inicio (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 Inicio (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 Inicio [2009; 2018] 2012.21 2012 2009 5.58 2.36 0.12 0.3111 -0.94 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</h3>",
  "<p style='text-align: justify;'>",
  "La variable <b>Inicio</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 (0 outliers)</b>, ",
  "lo que sugiere un comportamiento <b>regular y estable</b> en la programación de perforaciones durante este periodo.",
  "</p>"
))

5.1 Análisis Descriptivo

La variable Inicio fluctúa entre 2009 y 2018, con una tendencia central alrededor del año 2012. Presenta una desviación estándar de 2.36 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 sugiere un comportamiento regular y estable en la programación de perforaciones durante este periodo.