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)

setwd("C:/Users/HP/Desktop/VARIABLESDALLY")
Datos_Brutos <- read.csv("Oil__Gas____Other_Regulated_Wells__Beginning_1860 (4).csv",
                         header = TRUE, sep = ";", dec = ",")

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): 19930 | Décadas: 13

2 Distribución de Frecuencia

Se presenta la distribución de pozos agrupada en intervalos de 10 años (décadas).

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

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_source_note(source_note = "Fuente: NYS DEC — Oil, Gas & Other Regulated Wells") %>%
  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 = "#2E4053"), cell_text(color = "white", weight = "bold")),
    locations = cells_title()
  ) %>%
  tab_style(
    style = list(cell_fill(color = "#F2F3F4"), cell_text(weight = "bold", color = "#2E4053")),
    locations = cells_column_labels()
  ) %>%
  tab_style(
    style = list(cell_text(weight = "bold")),
    locations = cells_body(rows = Periodo == "TOTAL")
  ) %>%
  tab_options(
    table.border.top.color = "#2E4053",
    table.border.bottom.color = "#2E4053",
    column_labels.border.bottom.color = "#2E4053",
    data_row.padding = px(6)
  )
DISTRIBUCIÓN POR DÉCADAS
Variable: Fecha de inicio de perforación (Date Spudded) · Nueva York
Periodo (Década) Cant. Pozos (ni) Porcentaje (hi%) Ni (Asc) Ni (Desc) Hi (Asc) Hi (Desc)
1900 - 1909 167 0.84 167 19930 0.84 100
1910 - 1919 445 2.23 612 19763 3.07 99.16
1920 - 1929 540 2.71 1152 19318 5.78 96.93
1930 - 1939 780 3.91 1932 18778 9.69 94.22
1940 - 1949 485 2.43 2417 17998 12.13 90.31
1950 - 1959 805 4.04 3222 17513 16.17 87.87
1960 - 1969 1469 7.37 4691 16708 23.54 83.83
1970 - 1979 3652 18.32 8343 15239 41.86 76.46
1980 - 1989 5397 27.08 13740 11587 68.94 58.14
1990 - 1999 1478 7.42 15218 6190 76.36 31.06
2000 - 2009 2939 14.75 18157 4712 91.1 23.64
2010 - 2019 1423 7.14 19580 1773 98.24 8.9
2020 - 2029 350 1.76 19930 350 100 1.76
TOTAL 19930 100 - - - -
Fuente: NYS DEC — Oil, Gas & Other Regulated Wells

3 Análisis Gráfico

3.1 Gráficos de Barras

col_gris_azulado <- "#5D6D7E"
col_ejes <- "#2E4053"

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_gris_azulado, border = "white", axes = FALSE,
        ylim = c(0, ylim_max), axisnames = FALSE)
axis(2, col = col_ejes, col.axis = col_ejes)
axis(1, at = bp, labels = vals_x, col = col_ejes, col.axis = col_ejes, las = 2, cex.axis = 0.8)
title(xlab = "Década", line = 8)
grid(nx = NA, ny = NULL, col = "#D7DBDD", lty = "dotted")
box(bty = "l", col = col_ejes)

# GRAFICO 2: Frecuencia Absoluta (GLOBAL)
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_gris_azulado, border = "white", axes = FALSE,
        ylim = c(0, N), axisnames = FALSE)
axis(2, col = col_ejes, col.axis = col_ejes)
axis(1, at = bp2, labels = vals_x, col = col_ejes, col.axis = col_ejes, las = 2, cex.axis = 0.8)
title(xlab = "Década", line = 8)
grid(nx = NA, ny = NULL, col = "#D7DBDD", lty = "dotted")
box(bty = "l", col = col_ejes)

vals_y_pct <- TDF_Decadas$hi

3.2 Gráficos de Barras (Frecuencia Porcentual)

# GRAFICO 3: Porcentual (LOCAL)
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_gris_azulado, border = "white", axes = FALSE,
        ylim = c(0, max(vals_y_pct) * 1.2), axisnames = FALSE)
axis(2, col = col_ejes, col.axis = col_ejes)
axis(1, at = bp3, labels = vals_x, col = col_ejes, col.axis = col_ejes, 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_ejes)
title(xlab = "Década", line = 8)
grid(nx = NA, ny = NULL, col = "#D7DBDD", lty = "dotted")
box(bty = "l", col = col_ejes)

# GRAFICO 4: Porcentual (GLOBAL - escala 0 a 100%)
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_gris_azulado, border = "white", axes = FALSE,
        ylim = c(0, 100), axisnames = FALSE)
axis(2, col = col_ejes, col.axis = col_ejes)
axis(1, at = bp4, labels = vals_x, col = col_ejes, col.axis = col_ejes, 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_ejes)
title(xlab = "Década", line = 8)
abline(h = seq(0, 100, 20), col = "#D7DBDD", lty = "dotted")
box(bty = "l", col = col_ejes)

3.3 Diagrama de Caja y Ojivas

# GRAFICO 5: Boxplot (sobre los años exactos)
par(mar = c(7, 5, 4, 2))
boxplot(Variable_Exacta, horizontal = TRUE, col = col_gris_azulado,
        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 = "#C0392B",
        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_ejes, col.axis = col_ejes)
title(xlab = "Año exacto", line = 4)

# GRAFICO 6: Ojivas (ascendente y descendente)
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

col_azul <- "#2E4053"
col_rojo <- "#C0392B"

plot(x_vals_num, y_asc, type = "o", col = col_azul, 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_ejes, col.axis = col_ejes)
axis(2, col = col_ejes, col.axis = col_ejes)
title(xlab = "Década", line = 8)
lines(x_vals_num, y_desc, type = "o", col = col_rojo, lwd = 2, pch = 19)
legend("right", legend = c("Ascendente", "Descendente"),
       col = c(col_azul, col_rojo), lty = 1, pch = 19, cex = 0.7, lwd = 2,
       inset = c(-0.15, 0), bty = "n")
grid(nx = NULL, ny = NULL, col = "lightgray", 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 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"
  ) %>%
  tab_options(
    column_labels.background.color = "#2E4053",
    table.border.top.color = "black",
    table.border.bottom.color = "#2E4053",
    column_labels.border.bottom.color = "#2E4053",
    data_row.padding = px(8)
  ) %>%
  tab_style(
    style = list(cell_text(weight = "bold", color = "white")),
    locations = cells_column_labels()
  )
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.24 24.94 1.26 −0.8428 0.62 1663 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 19930 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.8428 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 1663 años atípicos (perforaciones muy tempranas respecto al grueso de la actividad).