1 Introducción y Metodología

El presente informe analiza la variable Fecha de Inicio de Perforación (Date Spudded) 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 spud (inicio de perforació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. Las décadas previas a 1900 son muy escasas (1860 con 3 pozos y 1870 con 5), 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.Spudded))) %>%
  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 spud 1900-2026):", N, "| Décadas:", nrow(TDF_Decadas), "\n")
## N (pozos con año de spud 1900-2026): 19939 | 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 inicio de perforación (Date Spudded)** · 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 inicio de perforación (Date Spudded) · Nueva York
Periodo (Década) Cant. Pozos (ni) Porcentaje (hi%)
Frecuencias acumuladas
Ni (Asc) Ni (Desc) Hi (Asc) Hi (Desc)
1900 - 1909 168 0.84 168 19939 0.84 100
1910 - 1919 445 2.23 613 19771 3.07 99.16
1920 - 1929 540 2.71 1153 19326 5.78 96.93
1930 - 1939 780 3.91 1933 18786 9.69 94.22
1940 - 1949 485 2.43 2418 18006 12.13 90.31
1950 - 1959 805 4.04 3223 17521 16.16 87.87
1960 - 1969 1469 7.37 4692 16716 23.53 83.84
1970 - 1979 3656 18.34 8348 15247 41.87 76.47
1980 - 1989 5400 27.08 13748 11591 68.95 58.13
1990 - 1999 1481 7.43 15229 6191 76.38 31.05
2000 - 2009 2939 14.74 18168 4710 91.12 23.62
2010 - 2019 1423 7.14 19591 1771 98.25 8.88
2020 - 2029 348 1.75 19939 348 100 1.75
TOTAL 19939 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 inicio de perforación (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 inicio de perforación (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 inicio de perforación (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 inicio de perforación (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 inicio de perforación (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 inicio (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

# Indicadores sobre la variable exacta (años)
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 inicio (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 spud"
  ) %>%
  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 spud
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 inicio (exacto) [1900; 2026] 1,979.63 1,982.00 1982 622.03 24.94 1.26 −0.8440 0.62 1664 outliers
Autor: EDUARDO

5 Conclusiones

5.1 Análisis Descriptivo y Conclusiones

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

El coeficiente de variación es de 1.26%, lo que indica que la intensidad de perforación ha sido relativamente constante a lo largo del tiempo. La asimetría de -0.844 revela un sesgo hacia los años recientes (asimetría negativa), coherente con la concentración de la actividad en las décadas de 1970–1980 y su posterior descenso. Se identificaron 1664 años atípicos (perforaciones muy tempranas respecto al grueso de la actividad).