El presente informe estadístico analiza la variable Término (Fecha de finalización) de los pozos petroleros de Brasil.
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 | ||||||
Representación visual de la actividad de perforacion en Brazil
# 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")# 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)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")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] |
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>"
))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.