1. Carga de Librerías

library(tidyverse)
library(knitr)
library(kableExtra)
library(scales)

2. Carga de Data Set

datos_originales <- read_csv2("C:/Users/cordo/OneDrive/Desktop/ESTADISITCA/Oil__Gas____Other_Regulated_Wells__Beginning_1860.csv")

names(datos_originales) <- trimws(toupper(names(datos_originales)))

3. Extracción y Limpieza de la Variable

df_clean <- datos_originales %>%
  select(Quad_Section = `QUAD SECTION`) %>%
  filter(!is.na(Quad_Section)) %>%
  mutate(Quad_Section = as.character(Quad_Section))

tabla_frec <- df_clean %>%
  count(QUAD_SECTION = Quad_Section, name = "Frecuencia_Absoluta") %>%
  mutate(
    Frecuencia_Relativa = Frecuencia_Absoluta / sum(Frecuencia_Absoluta),
    Porcentaje = Frecuencia_Relativa * 100,
    Frecuencia_Acumulada = cumsum(Frecuencia_Absoluta)
  ) %>%
  arrange(desc(Frecuencia_Absoluta))

4. Tabla de Distribución de Frecuencias

La variable QUAD_SECTION registra la sección específica dentro del cuadrante donde se ubica el pozo. Para este análisis, se han considerado la totalidad de las categorías presentes en el registro, manteniendo la integridad de los datos originales sin realizar procesos de agrupación. Esto permite una visión exhaustiva de la distribución de los pozos en cada sección identificada.

fila_total <- tibble(
  QUAD_SECTION = "Total",
  Frecuencia_Absoluta = sum(tabla_frec$Frecuencia_Absoluta),
  Porcentaje = sum(tabla_frec$Porcentaje)
)

tabla_frec_con_total <- bind_rows(
  tabla_frec %>% mutate(Porcentaje = Porcentaje),
  fila_total
)

tabla_frec_con_total %>%
  mutate(Porcentaje = round(Porcentaje, 2)) %>%
  select(Sección = QUAD_SECTION, `ni (Absoluta)` = Frecuencia_Absoluta, `hi % (Relativa)` = Porcentaje) %>%
  kable(caption = "Tabla N°1: Tabla de Distribución de Frecuencias",
        align = c("l", "c", "c")) %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed", "responsive"), 
                full_width = FALSE, 
                position = "center") %>%
  row_spec(0, background = "#1D4E73", color = "white", bold = TRUE) %>%
  row_spec(nrow(tabla_frec_con_total), bold = TRUE, background = "#EAF4FD") %>%
  footnote(general = "Fuente: Oil, Gas & Other Regulated Wells - NY State",
           general_title = "",
           footnote_as_chunk = TRUE)
Tabla N°1: Tabla de Distribución de Frecuencias
Sección ni (Absoluta) hi % (Relativa)
G 6723 14.45
E 6156 13.23
I 6093 13.10
D 5772 12.41
H 5546 11.92
F 4933 10.60
B 4831 10.39
C 3264 7.02
A 3201 6.88
Total 46519 100.00
Fuente: Oil, Gas & Other Regulated Wells - NY State

5. Análisis Gráfico

tema_vertical <- theme_minimal() + 
  theme(
    plot.title = element_text(face = "bold", color = "#1D4E73", size = 12, hjust = 0.5),
    panel.grid.major.x = element_blank(), 
    panel.grid.minor.x = element_blank(),
    axis.text.x = element_text(angle = 0, hjust = 0.5, vjust = 0.5, size = 10, face = "bold")
  )

colores_usados <- colorRampPalette(paleta_colores)(nrow(tabla_frec))

5.1 Diagrama de Barras — Frecuencia Absoluta

ggplot(tabla_frec, aes(x = reorder(QUAD_SECTION, -Frecuencia_Absoluta), y = Frecuencia_Absoluta, fill = QUAD_SECTION)) +
  geom_col(show.legend = FALSE) +
  scale_fill_manual(values = colores_usados) +
  geom_text(aes(label = Frecuencia_Absoluta), vjust = -0.5, size = 3.5, fontface = "bold") +
  tema_vertical +
  labs(
    title = "Gráfica N°1: Frecuencia Absoluta",
    x = "Sección del Cuadrante",
    y = "Frecuencia Absoluta (ni)",
    caption = "Fuente: Oil, Gas & Other Regulated Wells - NY State"
  ) +
  ylim(0, max(tabla_frec$Frecuencia_Absoluta) * 1.15)

5.2 Diagrama de Barras — Frecuencia Relativa / Porcentajes

ggplot(tabla_frec, aes(x = reorder(QUAD_SECTION, -Porcentaje), y = Porcentaje, fill = QUAD_SECTION)) +
  geom_col(show.legend = FALSE) +
  scale_fill_manual(values = colores_usados) +
  geom_text(aes(label = paste0(round(Porcentaje, 1), "%")), vjust = -0.5, size = 3.5, fontface = "bold") +
  tema_vertical +
  labs(
    title = "Gráfica N°2: Porcentajes por Sección del Cuadrante",
    x = "Sección del Cuadrante",
    y = "Porcentaje (%)",
    caption = "Fuente: Oil, Gas & Other Regulated Wells - NY State"
  ) +
  ylim(0, max(tabla_frec$Porcentaje) * 1.15)

6. Conjetura de Modelo Geométrico

conteo_modelo <- tabla_frec %>%
  mutate(QUAD_SECTION = as.character(QUAD_SECTION)) %>%
  arrange(desc(Frecuencia_Absoluta))

p_est <- conteo_modelo$Porcentaje[1] / 100
k_categorias <- nrow(conteo_modelo) 
x_vals <- 1:k_categorias

prob_geom <- p_est * ((1 - p_est)^(x_vals - 1))
prob_geom_norm <- prob_geom / sum(prob_geom)

conteo_modelo$hi_pct <- round(conteo_modelo$Porcentaje, 2)
conteo_modelo$hi_modelo_pct <- round(prob_geom_norm * 100, 2)

Gráfica comparativa de los valores observados y estimados

df_comparativo <- conteo_modelo %>%
  select(QUAD_SECTION, hi_pct, hi_modelo_pct) %>%
  pivot_longer(cols = c(hi_pct, hi_modelo_pct),
               names_to = "Origen", values_to = "Valor") %>%
  mutate(Origen = ifelse(Origen == "hi_pct", "Realidad", "Modelo Geométrico"))

df_comparativo$QUAD_SECTION <- factor(df_comparativo$QUAD_SECTION, levels = conteo_modelo$QUAD_SECTION)

ggplot(df_comparativo, aes(x = QUAD_SECTION, y = Valor, fill = Origen)) +
  geom_bar(stat = "identity", position = "dodge", color = "white") +
  scale_fill_manual(values = c("Modelo Geométrico" = "#7ABDEF", "Realidad" = "#1D4E73")) +
  theme_minimal() +
  theme(
    plot.title = element_text(face = "bold", color = "#1D4E73", size = 13, hjust = 0.5),
    plot.subtitle = element_text(hjust = 0.5),
    axis.text.x = element_text(angle = 0, hjust = 0.5, vjust = 0.5, size = 10, face = "bold")
  ) +
  labs(
    title    = "Gráfica N°3: Modelo Geométrico comparado con la Realidad",
    x        = "Sección del Cuadrante",
    y        = "Probabilidad (%)",
    fill     = "Origen"
  )

7. Test de Bondad

7.1 Test de Pearson

cat("Correlación de Pearson (%):", round(r_pearson, 4), "\n")
## Correlación de Pearson (%): 91.0078
plot(Fo, Fe,
     xlab = "Frecuencia Observada (hi %)",
     ylab = "Frecuencia Esperada (hi modelo %)",
     pch  = 19,
     col  = "#1D4E73",
     cex.main = 1.1,
     font.main = 2,
     col.main = "#1D4E73")
title(main = "Gráfica N°4: Correlación Modelo Observado y Esperado", line = 2.5, adj = 0.5)
abline(lm(Fe ~ Fo), col = "red", lwd = 2)
legend("topleft",
       legend = paste0("r = ", round(r_pearson, 2), "%"),
       bty    = "n")

7.2 Test Chi-Cuadrado (\(\chi^2\))

cat("Chi-Cuadrado calculado:", round(chi2_calc, 4), "\n")
## Chi-Cuadrado calculado: 3.9927
cat("Valor Crítico (95% confianza):", round(chi2_crit, 4), "\n")
## Valor Crítico (95% confianza): 15.5073
cat("¿El modelo geométrico es aceptado?:", chi2_calc < chi2_crit, "\n")
## ¿El modelo geométrico es aceptado?: TRUE

Tabla Resumen del Test

tabla_test <- data.frame(
  Variable          = "Sección del Cuadrante",
  `Modelo Teórico`  = "Modelo Geométrico",
  `Test Pearson (%)`= round(r_pearson, 2),
  `Chi Cuadrado`    = round(chi2_calc, 2),
  `Umbral de Aceptación` = round(chi2_crit, 2),
  Resultado         = ifelse(chi2_calc < chi2_crit, "Modelo Aceptado", "Modelo Rechazado"),
  check.names = FALSE
)

tabla_test %>%
  kable(caption = "Tabla N°2: Resumen del Test de Bondad al Modelo Geométrico",
        align = c("c", "c", "c", "c", "c", "c")) %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed", "responsive"), 
                full_width = FALSE, 
                position = "center") %>%
  row_spec(0, background = "#1D4E73", color = "white", bold = TRUE) %>%
  footnote(general = "Autor: Jennifer Cordones",
           general_title = "",
           footnote_as_chunk = TRUE)
Tabla N°2: Resumen del Test de Bondad al Modelo Geométrico
Variable Modelo Teórico Test Pearson (%) Chi Cuadrado Umbral de Aceptación Resultado
Sección del Cuadrante Modelo Geométrico 91.01 3.99 15.51 Modelo Aceptado
Autor: Jennifer Cordones

8. Cálculo de Probabilidades

# Probabilidad del cuadrante real más frecuente (primer elemento de conteo_modelo)
prob_principal <- (conteo_modelo$Frecuencia_Absoluta[1] / sum(tabla_frec$Frecuencia_Absoluta)) * 100
cuadrante_principal <- as.character(conteo_modelo$QUAD_SECTION[1])

cat("Probabilidad de estar en el cuadrante más frecuente (", cuadrante_principal, "):",
    round(prob_principal, 2), "%\n")
## Probabilidad de estar en el cuadrante más frecuente ( G ): 14.45 %
# Pozos acumulados en los dos cuadrantes reales principales
pozos_top2 <- sum(conteo_modelo$Frecuencia_Absoluta[1:min(2, nrow(conteo_modelo))])
cuadrantes_top2 <- paste(conteo_modelo$QUAD_SECTION[1:min(2, nrow(conteo_modelo))], collapse = " y ")

cat("Pozos en las principales concentraciones territoriales (", cuadrantes_top2, "):", pozos_top2, "\n")
## Pozos en las principales concentraciones territoriales ( G y E ): 12879

¿Cuál es la probabilidad de que un pozo seleccionado al azar se encuentre en el cuadrante con mayor concentración (G)? La probabilidad estimada indica que aproximadamente el 14.45% de los pozos regulados se concentran en el cuadrante G, siendo la demarcación cartográfica real con mayor actividad e inventario registrado.

¿Cuántos pozos se encuentran ubicados entre las principales concentraciones territoriales (G y E)? En la base de datos analizada, un total de 12879 pozos se concentran en estas demarcaciones principales, lo que representa una porción sumamente relevante del inventario total.

9. Conclusión

Tras analizar la totalidad de los registros de la variable QUAD SECTION, divididos en sus 9 categorías originales sin necesidad de agrupación, se determinó que la sección G registra la mayor concentración de pozos, albergando un 14.45% de la actividad cartografiada.

Al evaluar el comportamiento de las frecuencias bajo una distribución estocástica, la conjetura del Modelo Geométrico obtuvo una fuerte correlación de Pearson del 91.01% y un estadístico Chi-Cuadrado calculado de 3.9927 frente a un valor crítico de 15.5073. Dado que \(\chi^2_{calc} < \chi^2_{crit}\), el modelo de probabilidad es aceptado como una aproximación válida.


Autor: Jennifer Cordones | Análisis Estadístico — Oil, Gas & Other Regulated Wells - NY State