1 Introducción y Metodología

El presente informe analiza la variable Fecha de Finalización del Pozo (Date Well Completed) de los pozos de petróleo y gas del estado de Nueva York. Por tratarse de una variable cuantitativa discreta, se ha extraído el Año de la fecha de finalización y se han agrupado los registros por décadas para evaluar la evolución temporal de la actividad de perforación.

Sobre la reagrupación de clases: se revisó la frecuencia de cada década. Tomando los datos desde 1900, todas las décadas (1900–2020) superan los 160 pozos, por lo que no fue necesaria una reagrupación (fusión) de clases. Los registros anteriores a 1900 son muy escasos, por lo que se excluyen mediante el filtro.

library(readxl)
library(dplyr)
library(gt)
library(e1071)
library(lubridate)

col_principal <- "#0E6655"
col_barras    <- "#16A085"
col_acento    <- "#E67E22"
col_grid      <- "#D7DBDD"

setwd("C:/Users/ASUS/Desktop/Estadistica/new_york_exel")
Datos_Brutos <- read.csv("Oil__Gas____Other_Regulated_Wells__Beginning_1860.csv", header = TRUE)

Datos <- Datos_Brutos %>%
  mutate(Anio_Exacto = as.integer(sub(".*/([0-9]{4}).*", "\\1", Date.Well.Completed))) %>%
  filter(!is.na(Anio_Exacto) & Anio_Exacto >= 1900 & Anio_Exacto <= 2026) %>%
  mutate(
    Decada_Inicio = floor(Anio_Exacto / 10) * 10,
    Periodo = paste0(Decada_Inicio, " - ", Decada_Inicio + 9)
  )

Variable_Exacta <- Datos$Anio_Exacto
if (length(Variable_Exacta) == 0) stop("ERROR: No hay datos válidos.")

TDF_Raw <- Datos %>%
  group_by(Decada_Inicio, Periodo) %>%
  summarise(ni = n(), .groups = "drop") %>%
  arrange(Decada_Inicio)

ni <- TDF_Raw$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_Decadas <- data.frame(
  Periodo = TDF_Raw$Periodo,
  ni = ni,
  hi = round(hi, 2),
  Ni_asc = Ni_asc,
  Ni_desc = Ni_desc,
  Hi_asc = round(Hi_asc, 2),
  Hi_desc = round(Hi_desc, 2)
)

cat("N (pozos con año de finalización 1900-2026):", N, "| Décadas:", nrow(TDF_Decadas), "\n")
## N (pozos con año de finalización 1900-2026): 22481 | Décadas: 13

2 Distribución de Frecuencia

Se presenta la distribución de pozos agrupada en intervalos de 10 años (décadas). Se resalta en naranja la década de mayor actividad y en verde la fila de totales.

totales <- c("TOTAL", sum(ni), round(sum(hi), 2), "-", "-", "-", "-")
TDF_Char <- TDF_Decadas %>% mutate(across(everything(), as.character))
TDF_Show <- rbind(TDF_Char, totales)

modal_row <- which.max(TDF_Decadas$ni)

TDF_Show %>%
  gt() %>%
  tab_header(
    title = md("**DISTRIBUCIÓN POR DÉCADAS**"),
    subtitle = md("Variable: **Fecha de finalización del pozo (Date Well Completed)** · Nueva York")
  ) %>%
  tab_spanner(label = "Frecuencias acumuladas",
              columns = c(Ni_asc, Ni_desc, Hi_asc, Hi_desc)) %>%
  cols_label(
    Periodo = "Periodo (Década)",
    ni = "Cant. Pozos (ni)",
    hi = "Porcentaje (hi%)",
    Ni_asc = "Ni (Asc)", Ni_desc = "Ni (Desc)",
    Hi_asc = "Hi (Asc)", Hi_desc = "Hi (Desc)"
  ) %>%
  cols_align(align = "center", columns = everything()) %>%
  tab_style(
    style = list(cell_fill(color = col_principal), cell_text(color = "white", weight = "bold")),
    locations = cells_title()
  ) %>%
  tab_style(
    style = list(cell_fill(color = "#148F77"), cell_text(color = "white", weight = "bold")),
    locations = cells_column_labels()
  ) %>%
  tab_style(
    style = list(cell_fill(color = "#148F77"), cell_text(color = "white", weight = "bold")),
    locations = cells_column_spanners()
  ) %>%
  tab_style(
    style = list(cell_fill(color = "#FDEBD0"), cell_text(weight = "bold")),
    locations = cells_body(rows = modal_row)
  ) %>%
  tab_style(
    style = list(cell_fill(color = "#D0ECE7"), cell_text(weight = "bold")),
    locations = cells_body(rows = Periodo == "TOTAL")
  ) %>%
  opt_row_striping() %>%
  opt_table_font(font = google_font("Roboto")) %>%
  tab_options(
    table.font.size = px(13),
    heading.align = "left",
    heading.title.font.size = px(17),
    data_row.padding = px(7),
    table.border.top.color = col_principal,
    table.border.bottom.color = col_principal,
    column_labels.border.bottom.color = col_principal
  ) %>%
  tab_source_note(md("*Fuente: NYS DEC — Oil, Gas & Other Regulated Wells. Elaboración: EDUARDO.*"))
DISTRIBUCIÓN POR DÉCADAS
Variable: Fecha de finalización del pozo (Date Well Completed) · Nueva York
Periodo (Década) Cant. Pozos (ni) Porcentaje (hi%)
Frecuencias acumuladas
Ni (Asc) Ni (Desc) Hi (Asc) Hi (Desc)
1900 - 1909 314 1.4 314 22481 1.4 100
1910 - 1919 650 2.89 964 22167 4.29 98.6
1920 - 1929 681 3.03 1645 21517 7.32 95.71
1930 - 1939 1079 4.8 2724 20836 12.12 92.68
1940 - 1949 1025 4.56 3749 19757 16.68 87.88
1950 - 1959 1338 5.95 5087 18732 22.63 83.32
1960 - 1969 1858 8.26 6945 17394 30.89 77.37
1970 - 1979 3552 15.8 10497 15536 46.69 69.11
1980 - 1989 5451 24.25 15948 11984 70.94 53.31
1990 - 1999 1524 6.78 17472 6533 77.72 29.06
2000 - 2009 3079 13.7 20551 5009 91.41 22.28
2010 - 2019 1543 6.86 22094 1930 98.28 8.59
2020 - 2029 387 1.72 22481 387 100 1.72
TOTAL 22481 100 - - - -
Fuente: NYS DEC — Oil, Gas & Other Regulated Wells. Elaboración: EDUARDO.

3 Análisis Gráfico

3.1 Gráficos de Barras

vals_x <- TDF_Decadas$Periodo
vals_y <- TDF_Decadas$ni
ylim_max <- max(vals_y) * 1.1

par(mar = c(10, 5, 4, 2))
bp <- barplot(vals_y,
        main = "Gráfica N°1: Distribución del año de finalización del pozo (NY) — escala local",
        cex.main = 0.85, ylab = "Cantidad de pozos",
        col = col_barras, border = "white", axes = FALSE,
        ylim = c(0, ylim_max), axisnames = FALSE)
axis(2, col = col_principal, col.axis = col_principal)
axis(1, at = bp, labels = vals_x, col = col_principal, col.axis = col_principal, las = 2, cex.axis = 0.8)
title(xlab = "Década", line = 8)
grid(nx = NA, ny = NULL, col = col_grid, lty = "dotted")
box(bty = "l", col = col_principal)

par(mar = c(10, 5, 4, 2))
bp2 <- barplot(vals_y,
        main = "Gráfica N°2: Distribución del año de finalización del pozo (NY) — escala global",
        cex.main = 0.85, ylab = "Cantidad de pozos",
        col = col_barras, border = "white", axes = FALSE,
        ylim = c(0, N), axisnames = FALSE)
axis(2, col = col_principal, col.axis = col_principal)
axis(1, at = bp2, labels = vals_x, col = col_principal, col.axis = col_principal, las = 2, cex.axis = 0.8)
title(xlab = "Década", line = 8)
grid(nx = NA, ny = NULL, col = col_grid, lty = "dotted")
box(bty = "l", col = col_principal)

vals_y_pct <- TDF_Decadas$hi

3.2 Gráficos de Barras (Frecuencia Porcentual)

par(mar = c(10, 5, 4, 2))
bp3 <- barplot(vals_y_pct,
        main = "Gráfica N°3: Distribución porcentual del año de finalización del pozo (NY) — local",
        cex.main = 0.85, ylab = "% del total",
        col = col_barras, border = "white", axes = FALSE,
        ylim = c(0, max(vals_y_pct) * 1.2), axisnames = FALSE)
axis(2, col = col_principal, col.axis = col_principal)
axis(1, at = bp3, labels = vals_x, col = col_principal, col.axis = col_principal, las = 2, cex.axis = 0.8)
text(x = bp3, y = vals_y_pct, label = paste0(round(vals_y_pct, 1), "%"), pos = 3, cex = 0.7, col = col_principal)
title(xlab = "Década", line = 8)
grid(nx = NA, ny = NULL, col = col_grid, lty = "dotted")
box(bty = "l", col = col_principal)

par(mar = c(10, 5, 4, 2))
bp4 <- barplot(vals_y_pct,
        main = "Gráfica N°4: Distribución porcentual del año de finalización del pozo (NY) — global",
        cex.main = 0.85, ylab = "% del total",
        col = col_barras, border = "white", axes = FALSE,
        ylim = c(0, 100), axisnames = FALSE)
axis(2, col = col_principal, col.axis = col_principal)
axis(1, at = bp4, labels = vals_x, col = col_principal, col.axis = col_principal, las = 2, cex.axis = 0.8)
text(x = bp4, y = vals_y_pct, label = paste0(round(vals_y_pct, 1), "%"), pos = 3, cex = 0.7, col = col_principal)
title(xlab = "Década", line = 8)
abline(h = seq(0, 100, 20), col = col_grid, lty = "dotted")
box(bty = "l", col = col_principal)

3.3 Diagrama de Caja y Ojivas

par(mar = c(7, 5, 4, 2))
boxplot(Variable_Exacta, horizontal = TRUE, col = col_barras,
        main = "Gráfica N°5: Diagrama de caja del año de finalización del pozo (NY)",
        cex.main = 0.85, xlab = "", outline = TRUE, outpch = 19, outcol = col_acento,
        boxwex = 0.5, frame.plot = FALSE, xaxt = "n")
eje_x <- pretty(Variable_Exacta, n = 8)
axis(1, at = eje_x, labels = format(eje_x, scientific = FALSE), cex.axis = 0.8,
     col = col_principal, col.axis = col_principal)
title(xlab = "Año exacto", line = 4)

par(mar = c(10, 5, 4, 8), xpd = TRUE)
x_vals_num <- sort(unique(Datos$Decada_Inicio))
x_labels   <- TDF_Decadas$Periodo
y_asc  <- TDF_Decadas$Ni_asc
y_desc <- TDF_Decadas$Ni_desc

plot(x_vals_num, y_asc, type = "o", col = col_principal, lwd = 2, pch = 19,
     main = "Gráfica N°6: Ojivas ascendente y descendente del año de finalización (NY)",
     cex.main = 0.85, ylab = "Frecuencia acumulada", xlab = "",
     axes = FALSE, frame.plot = FALSE)
axis(1, at = x_vals_num, labels = x_labels, las = 2, cex.axis = 0.8, col = col_principal, col.axis = col_principal)
axis(2, col = col_principal, col.axis = col_principal)
title(xlab = "Década", line = 8)
lines(x_vals_num, y_desc, type = "o", col = col_acento, lwd = 2, pch = 19)
legend("right", legend = c("Ascendente", "Descendente"),
       col = c(col_principal, col_acento), lty = 1, pch = 19, cex = 0.7, lwd = 2,
       inset = c(-0.15, 0), bty = "n")
grid(nx = NULL, ny = NULL, col = col_grid, lty = "dotted")

4 Resumen Estadístico

media_val   <- mean(Variable_Exacta)
mediana_val <- median(Variable_Exacta)

t_moda     <- table(Variable_Exacta)
freq_max   <- max(t_moda)
modas_calc <- as.numeric(names(t_moda)[t_moda == freq_max])
moda_txt   <- paste(modas_calc, collapse = ", ")

rango_txt    <- paste0("[", min(Variable_Exacta), "; ", max(Variable_Exacta), "]")
varianza_val <- var(Variable_Exacta)
sd_val       <- sd(Variable_Exacta)
cv_val       <- (sd_val / abs(media_val)) * 100
asimetria_val <- skewness(Variable_Exacta, type = 2)
curtosis_val  <- kurtosis(Variable_Exacta, type = 2)

vals_atipicos <- boxplot.stats(Variable_Exacta)$out
num_atipicos  <- length(vals_atipicos)
status_atipicos <- if (num_atipicos > 0) paste0(num_atipicos, " outliers") else "0 (Sin atípicos)"

df_resumen <- data.frame(
  "Variable"  = "Año de finalización (exacto)",
  "Rango"     = rango_txt,
  "Media"     = media_val,
  "Mediana"   = mediana_val,
  "Moda"      = moda_txt,
  "Varianza"  = varianza_val,
  "Desv_Std"  = sd_val,
  "CV_Porc"   = cv_val,
  "Asimetria" = asimetria_val,
  "Curtosis"  = curtosis_val,
  "Atipicos"  = status_atipicos
)

df_resumen %>%
  gt() %>%
  tab_header(
    title = md("**ESTADÍSTICOS DESCRIPTIVOS**"),
    subtitle = "Indicadores calculados sobre los años exactos de finalización del pozo"
  ) %>%
  tab_source_note(source_note = "Autor: EDUARDO") %>%
  fmt_number(columns = c(Media, Mediana, Varianza, Desv_Std, CV_Porc, Curtosis), decimals = 2) %>%
  fmt_number(columns = c(Asimetria), decimals = 4) %>%
  cols_label(
    Variable = "Variable", Rango = "Rango [Min; Max]",
    Media = "Media (X̄)", Mediana = "Mediana (Me)", Moda = "Moda (Mo)",
    Varianza = "Varianza (S²)", Desv_Std = "Desv. Est. (S)", CV_Porc = "C.V. (%)",
    Asimetria = "Asimetría (As)", Curtosis = "Curtosis (K)", Atipicos = "Outliers"
  ) %>%
  cols_align(align = "center", columns = everything()) %>%
  tab_style(
    style = list(cell_fill(color = col_principal), cell_text(color = "white", weight = "bold")),
    locations = cells_title()
  ) %>%
  tab_style(
    style = list(cell_fill(color = "#148F77"), cell_text(color = "white", weight = "bold")),
    locations = cells_column_labels()
  ) %>%
  tab_style(
    style = list(cell_fill(color = "#FDEBD0"), cell_text(weight = "bold")),
    locations = cells_body(columns = Moda)
  ) %>%
  opt_table_font(font = google_font("Roboto")) %>%
  tab_options(
    table.font.size = px(13),
    heading.align = "left",
    data_row.padding = px(9),
    table.border.top.color = col_principal,
    table.border.bottom.color = col_principal,
    column_labels.border.bottom.color = col_principal
  )
ESTADÍSTICOS DESCRIPTIVOS
Indicadores calculados sobre los años exactos de finalización del pozo
Variable Rango [Min; Max] Media (X̄) Mediana (Me) Moda (Mo) Varianza (S²) Desv. Est. (S) C.V. (%) Asimetría (As) Curtosis (K) Outliers
Año de finalización (exacto) [1900; 2026] 1,976.33 1,981.00 1984 727.91 26.98 1.37 −0.6778 0.01 583 outliers
Autor: EDUARDO

5 Conclusiones

5.1 Análisis Descriptivo y Conclusiones

El análisis histórico de la variable Fecha de Finalización del Pozo abarca un extenso periodo desde 1900 hasta 2026, con un total de 22481 pozos registrados. La década de mayor actividad fue la de 1980 - 1989, y el año con más finalizaciones (moda) fue 1984.

El coeficiente de variación es de 1.37%, lo que indica que la intensidad de finalización de pozos ha sido relativamente constante a lo largo del tiempo. La asimetría de -0.6778 revela un sesgo hacia los años recientes (asimetría negativa), coherente con la concentración de la actividad en la década de 1980 y su posterior descenso. Se identificaron 583 años atípicos (finalizaciones muy tempranas respecto al grueso de la actividad).