ANÁLISIS ESTADÍSTICO

1. CARGA DE LIBRERÍAS Y DATOS

                    #==============================ENCABEZADO================================
                    # TEMA: ESTADÍSTICA DESCRIPTIVA - INICIO DE PERFORACION
                    # AUTOR: GRUPO 3
                    # FECHA: 03-2026
                    #========================================================================

library(dplyr)
library(e1071)
library(gt)

setwd("C:/Users/HP/Documents/PROYECTO ESTADISTICA/RStudio")
datos <- read.csv("tablap.csv", header = TRUE, dec = ",", sep = ";")

2. TABLA DE DISTRIBUCION DE CANTIDAD CON STURGES

inicio <- datos$Spud.Initiation.year
n_inicio <- length(na.omit(inicio))
k_sturges_inicio <- 1 + (3.322 * log10(n_inicio))
k_sturges_inicio
## [1] 14.61696
clasificacion_sturges_inicio <- cut(inicio, breaks = k_sturges_inicio, right = FALSE)

# Calculos de frecuencias para Sturges
ni_sturges_inicio <- table(clasificacion_sturges_inicio)
total_datos_sturges_inicio <- sum(ni_sturges_inicio)
hi_sturges_inicio <- round(as.numeric(ni_sturges_inicio) / total_datos_sturges_inicio * 100, 2) 

# Construccion de la Tabla Sturges
TDF_Sturges_inicio <- data.frame(
  Intervalo = gsub(",", " - ", names(ni_sturges_inicio)), 
  ni = as.numeric(ni_sturges_inicio), 
  hi = hi_sturges_inicio
)

TDF_Final_Sturges_inicio <- rbind(
  TDF_Sturges_inicio, 
  data.frame(Intervalo="TOTAL", ni=total_datos_sturges_inicio, hi=100)
)

# Renderizar Tabla Sturges con gt()
TDF_Final_Sturges_inicio %>%
  gt() %>%
  tab_header(title = md("Tabla N°1. Tabla de distribucion del año de inicio de perforacion de los pozos de gas natural en Nuevo Mexico")) %>%
  tab_style(
    style = list(cell_fill(color = "lightgray"), cell_text(weight = "bold")),
    locations = list(
      cells_body(rows = Intervalo == "TOTAL"),
      cells_title(groups = "title")
    )
  ) %>%
  cols_align(align = "center", columns = everything()) %>%
  tab_options(table.width = pct(100), column_labels.font.weight = "bold")%>%
  tab_source_note(
    source_note = md("**Tabla 1 de 4**"))
Tabla N°1. Tabla de distribucion del año de inicio de perforacion de los pozos de gas natural en Nuevo Mexico
Intervalo ni hi
[1950 - 1955) 351 2.79
[1955 - 1960) 779 6.20
[1960 - 1965) 480 3.82
[1965 - 1970) 393 3.13
[1970 - 1975) 392 3.12
[1975 - 1980) 1024 8.15
[1980 - 1985) 1237 9.85
[1985 - 1990) 504 4.01
[1990 - 1995) 737 5.87
[1995 - 2000) 950 7.56
[2000 - 2005) 2553 20.32
[2005 - 2010) 2670 21.26
[2010 - 2015) 324 2.58
[2015 - 2020) 167 1.33
TOTAL 12561 100.00
Tabla 1 de 4
# Grafica con sturges
par(mar = c(8.5, 4.1, 4.1, 2.1))
barplot(ni_sturges_inicio, 
        names.arg = gsub(",", " - ", names(ni_sturges_inicio)), 
        las = 2, 
        col = "darkgrey", 
        ylim = c(0, max(ni_sturges_inicio) + 2),
        xlab = "Ano de Inicio de Perforacion", 
        ylab = "Cantidad",
        main = "Grafica N°1: Distribucion de cantidad del año de inicio de
        perforacion de los pozos de gas natural en Nuevo Mexico")
box(which = "outer", col = "black")

3. TABLA DE DISTRIBUCIÓN DE CANTIDAD AGRUPADA

Debido a que Sturges generada 14 intervalos y la gráfica presentaba 14 barras, la hemos simplificado usando un bucle For

inicio <- datos$Spud.Initiation.year 
# CLASIFICACION CON BUCLE FOR
clasificacion <- character(length(inicio))
for(i in seq_along(inicio)){
  if(inicio[i] >= 1950 & inicio[i] < 1960){
    clasificacion[i] <- "1950-1959"
  } else if(inicio[i] >= 1960 & inicio[i] < 1970){
    clasificacion[i] <- "1960-1969"
  } else if(inicio[i] >= 1970 & inicio[i] < 1980){
    clasificacion[i] <- "1970-1979"
  } else if(inicio[i] >= 1980 & inicio[i] < 1990){
    clasificacion[i] <- "1980-1989"
  } else if(inicio[i] >= 1990 & inicio[i] < 2000){
    clasificacion[i] <- "1990-1999"
  } else if(inicio[i] >= 2000 & inicio[i] < 2010){
    clasificacion[i] <- "2000-2009"
  } else if(inicio[i] >= 2010 & inicio[i] < 2020){
    clasificacion[i] <- "2010-2019"
  } else if(inicio[i] >= 2020 & inicio[i] <= 2030){
    clasificacion[i] <- "2020-2029"
  } else {
    clasificacion[i] <- NA
  }
}

clasificacion <- na.omit(clasificacion)
orden_intervalos <- c("1950-1959", "1960-1969", "1970-1979", "1980-1989", 
                      "1990-1999", "2000-2009", "2010-2019", "2020-2029")
clasificacion <- factor(clasificacion, levels = orden_intervalos)

# CÁLCULO DE FRECUENCIAS
ni <- table(clasificacion)
total_datos <- sum(ni)
hi <- round(as.numeric(ni) / total_datos * 100, 2) 
Ni_asc <- cumsum(ni)
Hi_asc <- cumsum(hi)
Ni_des <- rev(cumsum(rev(ni)))
Hi_des <- rev(cumsum(rev(hi)))

# TABLA DE DISTRIBUCIÓN DE FRECUENCIAS
tabla_base <- data.frame(Intervalo = orden_intervalos, ni = as.numeric(ni), hi = hi,
                         Ni_asc = as.numeric(Ni_asc), Hi_asc = round(Hi_asc, 2),
                         Ni_des = as.numeric(Ni_des), Hi_des = round(Hi_des, 2))

fila_total <- data.frame(Intervalo = "TOTAL", ni = total_datos, hi = 100, 
                         Ni_asc = NA, Hi_asc = NA, Ni_des = NA, Hi_des = NA)

TDF_Final_gt <- rbind(tabla_base, fila_total)

tabla_gt <- TDF_Final_gt %>% 
  gt() %>%
  cols_label(
    Intervalo = "Intervalo",
    ni = "ni",
    hi = "hi",
    Ni_asc = "Ni_asc",
    Hi_asc = "Hi_asc",
    Ni_des = "Ni_des",
    Hi_des = "Hi_des"
  ) %>%
  tab_header(
    title = md("Tabla N°2: Distribución de cantidad del año de inicio
               de perforación de los pozos de gas natural en Nuevo México")
  ) %>%
  sub_missing(columns = everything(), missing_text = " ") %>%
  tab_style(
    style = list(
      cell_fill(color = "lightgray"),
      cell_text(weight = "bold")
    ),
    locations = list(
      cells_body(rows = Intervalo == "TOTAL"),
      cells_title(groups = "title")
    )
  ) %>%
  cols_align(
    align = "center",
    columns = c(ni, hi, Ni_asc, Hi_asc, Ni_des, Hi_des)
  ) %>%
  tab_options(
    table.width = pct(80),
    heading.title.font.size = px(20),
    heading.title.font.weight = "bold",
    table.font.names = "Open Sans",
    column_labels.font.weight = "bold"
  )%>%
  tab_source_note(
    source_note = md("**Tabla 2 de 4** ") 
  )
tabla_gt
Tabla N°2: Distribución de cantidad del año de inicio de perforación de los pozos de gas natural en Nuevo México
Intervalo ni hi Ni_asc Hi_asc Ni_des Hi_des
1950-1959 1130 9.00 1130 9.00 12561 100.00
1960-1969 873 6.95 2003 15.95 11431 91.00
1970-1979 1416 11.27 3419 27.22 10558 84.05
1980-1989 1741 13.86 5160 41.08 9142 72.78
1990-1999 1687 13.43 6847 54.51 7401 58.92
2000-2009 5223 41.58 12070 96.09 5714 45.49
2010-2019 477 3.80 12547 99.89 491 3.91
2020-2029 14 0.11 12561 100.00 14 0.11
TOTAL 12561 100.00



Tabla 2 de 4

4. GRÁFICAS DE DISTRIBUCIÓN DE FRECUENCIAS

par(oma = c(1, 1, 1, 1))
#Grafica 1
barplot(ni, names.arg = orden_intervalos, las = 2, col = "skyblue",
        xlab = "Año de inicio de Perforacion",ylab = "Cantidad", 
        main = "Gráfica Nº2: Distribución de cantidad de los años de
        inicio de perforación de los pozos de gas natural 
        en Nuevo México")
box(which = "outer", col = "black")

#Grafica 2
barplot(ni, names.arg = orden_intervalos, las = 2, col = "darkgrey",
        xlab = "Año de inicio de Perforacion",ylab = "Cantidad",
        ylim = c(0, total_datos), 
        main = "Gráfica Nº3: Distribución de cantidad de los años de
        inicio de perforación de los pozos de gas natural 
        en Nuevo México")
box(which = "outer", col = "black")

#Grafica 3
barplot(hi, names.arg = orden_intervalos, las = 2, col = "lightgreen", 
        xlab = "Año de inicio de Perforacion",ylab = "Porcentaje (%)",
        main = "Gráfica Nº4: Distribución de cantidad en porcentaje de los años 
        de inicio de perforación de los pozos de gas natural 
        en Nuevo México")
box(which = "outer", col = "black")

#Grafica 4
barplot(hi, names.arg = orden_intervalos, las = 2, col = "grey50", 
        ylim = c(0, 100), 
        xlab = "Año de inicio de Perforacion",ylab = "Porcentaje (%)",
        main = "Gráfica Nº5:Distribución de cantidad en
        porcentaje de los años de inicio de perforación de los pozos 
        de gas natural en Nuevo México")
box(which = "outer", col = "black")

#Grafica 5
# OJIVAS (Ni)
posicion_x <- 1:length(ni)
plot(posicion_x, Ni_asc, type = "o", pch = 1, col = "blue", 
     xaxt = "n",
     xlab= "Año de inicio de perforacion",
     ylab="Cantidad acumulada (Ni)",
     main = "Grafica Nº6: Ojiva combinada de los años de 
     inicio de perforación (Ni)")
axis(1, at = posicion_x, labels = orden_intervalos, las = 2, 
     cex.axis = 0.7)
lines(posicion_x, Ni_des, type = "o", pch = 1, col = "red")
box(which = "outer", col = "black")

#Grafica 6
# OJIVAS (Hi)
plot(posicion_x, Hi_asc, type = "o", pch = 1, col = "blue", 
     xaxt = "n", ylim = c(0, 100),
     xlab= "Año de inicio de perforacion",
     ylab="Porcentaje acumulado (Hi)",
     main = "Grafica Nº7: Ojiva combinada de los años de 
     inicio de perforación (Hi)")
axis(1, at = posicion_x, labels = orden_intervalos, las = 2, cex.axis = 0.7)
lines(posicion_x, Hi_des, type = "o", pch = 1, col = "red")
box(which = "outer", col = "black")

#Grafica 7
#BLOXPLOT
boxplot(inicio, horizontal = TRUE, col = "lightblue",
        xlab="Año de inicio de perforacion",
        main = "Gráfica Nº8: Distribucion de cantidad de los años de inicio
        de perforacion de los pozos de gas natural en Nuevo Mexico")
box(which = "outer", col = "black")

summary(inicio)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    1950    1978    1997    1990    2005    2020

5. INDICADORES ESTADÍSTICOS Y OUTLIERS

#media
media_x <- mean(inicio, na.rm = TRUE)
media_x
## [1] 1990.086
#minimo
val_min <- min(inicio, na.rm = TRUE)
val_min
## [1] 1950
#maximo
val_max <- max(inicio, na.rm = TRUE)
val_max
## [1] 2020
#mediana
mediana_Me <- median(inicio, na.rm = TRUE)
mediana_Me
## [1] 1997
#desviacion estandar
desv_estandar <- sd(inicio, na.rm = TRUE)
desv_estandar
## [1] 17.32853
#coeficiente de variacion
coef_variacion <- ((desv_estandar / media_x) * 100)
coef_variacion
## [1] 0.8707429
#asimetria
asimetria_As <- skewness(inicio, na.rm = TRUE)
asimetria_As
## [1] -0.6891418
#curtosis
curtosis_K <- kurtosis(inicio, na.rm = TRUE)
curtosis_K
## [1] -0.7097994
# Tabla de Indicadores Estadísticos
Variable_Nombre <- "Año de inicio"
TablaIndicadores <- data.frame(Variable = Variable_Nombre, 
                               minimo = val_min, 
                               máximo = val_max, 
                               x = round(media_x, 0), 
                               Me = mediana_Me, 
                               sd = round(desv_estandar, 2), 
                               Cv = round(coef_variacion, 2), 
                               As = round(asimetria_As, 2), 
                               K = round(curtosis_K, 2))

tabla_indicadores_gt <- TablaIndicadores %>%
  gt() %>%
  tab_header(
    title = md("Tabla N°3. Indicadores estadísticos de 
               la variable año de inicio de perforación")
  ) %>%
  tab_style(
    style = list(
      cell_fill(color = "lightgray"),
      cell_text(weight = "bold")
    ),
    locations = cells_title(groups = "title")
  ) %>%
  cols_align(align = "center", columns = everything()) %>%
  tab_options(
    table.width = pct(80),
    heading.title.font.weight = "bold",
    column_labels.font.weight = "bold"
  )%>%
  tab_source_note(
    source_note = md("**Tabla 3 de 4**"))
tabla_indicadores_gt
Tabla N°3. Indicadores estadísticos de la variable año de inicio de perforación
Variable minimo máximo x Me sd Cv As K
Año de inicio 1950 2020 1990 1997 17.33 0.87 -0.69 -0.71
Tabla 3 de 4
# Tabla Outliers
valores_atipicos <- boxplot.stats(inicio)$out 
n_atipicos <- length(valores_atipicos) 

if(n_atipicos > 0) {
  min_atipico <- min(valores_atipicos)
  max_atipico <- max(valores_atipicos)
} else {
  min_atipico <- 0
  max_atipico <- 0
}

TablaOutliers <- data.frame(Outliers = n_atipicos, Mínimo = min_atipico, Máximo = max_atipico)

tabla_outliers_gt <- TablaOutliers %>%
  gt() %>%
  tab_header(
    title = md("Tabla N°4: Outliers de la variable año de inicio de perforación")
  ) %>%
  tab_style(
    style = list(
      cell_fill(color = "lightgray"),
      cell_text(weight = "bold")
    ),
    locations = cells_title(groups = "title")
  ) %>%
  cols_align(align = "center", columns = everything()) %>%
  tab_options(
    table.width = pct(80),
    heading.title.font.weight = "bold",
    column_labels.font.weight = "bold"
  )%>%
  tab_source_note(
    source_note = md("**Tabla 4 de 4**"))
tabla_outliers_gt
Tabla N°4: Outliers de la variable año de inicio de perforación
Outliers Mínimo Máximo
0 0 0
Tabla 4 de 4

6. CONCLUSIÓN

La variable año de inicio presenta valores que fluctúan entre 1950 y 2020, con una concentración en torno a la mediana de 1997. La desviación estándar de 17.33 indica que se trata de un conjunto con una dispersión moderada y una marcada asimetría a la izquierda, respaldada por la total ausencia de valores atípicos. La acumulación de registros se encuentra en la parte alta de la variable, lo que evidencia que la gran mayoría de los inicios de perforación se realizaron en periodos recientes (particularmente el auge observado entre 2000 y 2009). Por todo lo anterior mencionado, el comportamiento de la variable es medianamente beneficioso, debido a que los registros modernos cuentan con información geológica más confiable y mejor documentada