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

La variable COUNTY registra el condado donde se ubica el pozo. Debido a la alta cantidad de categorías en la variable, aquellas que no se encuentran entre las 8 más frecuentes se agruparán en la categoría “Otros” para optimizar la representación gráfica y el análisis de tendencias principales.

df_clean <- datos_originales %>%
  select(County = COUNTY) %>%
  filter(!is.na(County)) %>%
  mutate(County = as.character(County))

top_8 <- df_clean %>% count(County, sort = TRUE) %>% head(8) %>% pull(County)

tabla_frec <- df_clean %>%
  mutate(COUNTY = ifelse(County %in% top_8, County, "Otros")) %>%
  count(COUNTY, 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

tabla_frec %>%
  mutate(Frecuencia_Relativa = round(Frecuencia_Relativa, 4)) %>%
  select(Condado = COUNTY, `ni (Absoluta)` = Frecuencia_Absoluta, `hi (Relativa)` = Frecuencia_Relativa) %>%
  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) %>%
  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
Condado ni (Absoluta) hi (Relativa)
Allegany 16397 0.3462
Cattaraugus 11951 0.2523
Chautauqua 6367 0.1344
Otros 4473 0.0944
Erie 3483 0.0735
Steuben 2067 0.0436
Wyoming 1149 0.0243
Genesee 880 0.0186
Statewide 593 0.0125
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 = 13, hjust = 0.5),
    panel.grid.major.x = element_blank(), 
    panel.grid.minor.x = element_blank(),
    axis.text.x = element_text(angle = 45, hjust = 1, face = "bold")
  )

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

5.1 Diagrama de Barras — Frecuencia Absoluta

ggplot(tabla_frec, aes(x = reorder(COUNTY, -Frecuencia_Absoluta), y = Frecuencia_Absoluta, fill = COUNTY)) +
  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 por Condado",
    x = "Condado",
    y = "Frecuencia Absoluta (ni)",
    caption = "Fuente: Oil, Gas & Other Regulated Wells - NY State"
  )

5.2 Diagrama de Barras — Frecuencia Relativa / Porcentajes

ggplot(tabla_frec, aes(x = reorder(COUNTY, -Porcentaje), y = Porcentaje, fill = COUNTY)) +
  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: Frecuencia Relativa por Condado",
    x = "Condado",
    y = "Porcentaje (%)",
    caption = "Fuente: Oil, Gas & Other Regulated Wells - NY State"
  )

6. Conjetura de Modelo Geométrico

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

conteo_modelo$ID <- 1:nrow(conteo_modelo)

# Estimación del parámetro p por método de momentos
media_observada <- sum(conteo_modelo$ID * conteo_modelo$Frecuencia_Relativa)
p_estimado <- 1 / media_observada

cat("Parámetro estimado p =", round(p_estimado, 4), "\n")
## Parámetro estimado p = 0.3714
# Probabilidades del modelo geométrico
prob_geom <- p_estimado * (1 - p_estimado)^(conteo_modelo$ID - 1)
prob_geom <- prob_geom / sum(prob_geom)

conteo_modelo$hi_modelo     <- round(prob_geom, 4)
conteo_modelo$hi_modelo_pct <- round(prob_geom * 100, 2)
conteo_modelo$hi_pct        <- round(conteo_modelo$Frecuencia_Relativa * 100, 2)

Gráfica comparativa de los valores observados y estimados

df_comparativo <- conteo_modelo %>%
  select(COUNTY, 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"))

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

ggplot(df_comparativo, aes(x = COUNTY, y = Valor, fill = Origen)) +
  geom_bar(stat = "identity", position = "dodge", color = "white") +
  scale_fill_manual(values = c("Modelo" = "skyblue", "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 = 45, hjust = 1, face = "bold")
  ) +
  labs(
    title    = "Gráfica N°3: Modelo Geométrico comparado con la Realidad",
    x        = "Condado",
    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 (%): 99.5161
plot(Fo, Fe,
     main = "Gráfica N°4: Correlación Modelo Observado y Esperado",
     sub = paste0("r = ", round(r_pearson, 2), "%"),
     xlab = "Frecuencia Observada (hi %)",
     ylab = "Frecuencia Esperada (hi modelo %)",
     pch  = 19,
     col  = "#1D4E73",
     cex.main = 1.1,
     font.main = 2,
     col.main = "#1D4E73")
abline(lm(Fe ~ 0 + 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:", round(chi2_calc, 4), "\n")
## Chi-Cuadrado: 1.2061
cat("Valor Crítico:", round(chi2_crit, 4), "\n")
## Valor Crítico: 14.0671
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          = "Condado (COUNTY)",
  `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 de Probabilidad",
        align = 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 de Probabilidad
Variable Test Pearson (%) Chi Cuadrado Umbral de Aceptación Resultado
Condado (COUNTY) 99.52 1.21 14.07 Modelo Aceptado
Autor: Jennifer Cordones

8. Cálculo de Probabilidades

# Probabilidad del condado más frecuente
prob_principal <- tabla_frec$Frecuencia_Relativa[1] * 100
condado_principal <- as.character(tabla_frec$COUNTY[1])

cat("Probabilidad de estar en el condado más frecuente (", condado_principal, "):",
    round(prob_principal, 2), "%\n")
## Probabilidad de estar en el condado más frecuente ( Allegany ): 34.62 %
# Pozos acumulados en las siguientes categorías clave o en los dos condados principales
pozos_top2 <- sum(tabla_frec$Frecuencia_Absoluta[1:min(2, nrow(tabla_frec))])
condados_top2 <- paste(tabla_frec$COUNTY[1:min(2, nrow(tabla_frec))], collapse = " y ")

cat("Pozos en las principales concentraciones territoriales (", condados_top2, "):", pozos_top2, "\n")
## Pozos en las principales concentraciones territoriales ( Allegany y Cattaraugus ): 28348

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

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

9. Conclusión

Tras filtrar los registros nulos de la variable COUNTY y agrupar las categorías menores fuera del Top 8 en la categoría “Otros”, se determinó que el condado Allegany concentra el 34.62% de los yacimientos registrados en el estado de Nueva York.

Al ordenar las categorías por frecuencia descendente para evaluar el comportamiento estocástico, el Modelo Geométrico obtuvo un estadístico Chi-Cuadrado de 1.2061 frente a un valor crítico de 14.0671, por lo que el modelo es aceptado (\(\chi^2_{calc} < \chi^2_{crit}\)), respaldado por una fuerte correlación de Pearson del 99.52%.


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