ANÁLISIS ESTADÍSTICO

1. CARGA DE LIBRERÍAS Y DATOS

                    #==============================ENCABEZADO================================
                    # TEMA: ESTADÍSTICA DESCRIPTIVA - LATITUD
                    # AUTOR: GRUPO 3
                    # FECHA: 03-2026
                    #========================================================================
library(dplyr)
library(e1071)
library(gt)

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

2. TABLA DE DISTRIBUCIÓN DE CANTIDAD POR STURGES

latitud_pozos <- as.numeric(datos$Latitude.of.well.pad)
latitud_pozos <- na.omit(latitud_pozos)
n <- length(latitud_pozos)

# REGLA DE STURGES
k <- floor(1 + 3.322 * log10(n))
k 
## [1] 14
minimo <- min(latitud_pozos)
maximo <- max(latitud_pozos)
R <- maximo - minimo
R
## [1] 4.998391
#Amplitud
A <- R / k
A 
## [1] 0.3570279
Li_s <- round(seq(from = minimo, to = maximo - A, by = A), 2)

Ls_s <- round(seq(from = minimo + A, to = maximo, by = A), 2)

MC_s <- round((Li_s + Ls_s) / 2, 2)

ni_s <- numeric(length(Li_s))

for (i in 1:length(Li_s)) {
  ni_s[i] <- sum(latitud_pozos >= Li_s[i] & latitud_pozos < Ls_s[i])
}
ni_s[length(Li_s)] <- sum(latitud_pozos >= Li_s[length(Li_s)] & latitud_pozos <= maximo)

TDF_Sturges <- data.frame(Li=Li_s, Ls=Ls_s, MC=MC_s, ni=ni_s, hi=round((ni_s/n)*100, 2))
TDF_Sturges_P <- rbind(TDF_Sturges, data.frame(Li="TOTAL", Ls="", MC="", ni=sum(ni_s), hi=100))

# TABLA 1 CON GT
TDF_Sturges_P %>%
  gt() %>%
  tab_header(title = md("Tabla N°1. Tabla de distribucion de cantidad de 
      latitud de los pozos de gas natural en Nuevo México")) %>%
  tab_style(
    style = list(cell_fill(color = "lightgray"), cell_text(weight = "bold")),
    locations = list(
      cells_body(rows = Li == "TOTAL"),
      cells_title(groups = "title")
    )
  ) %>%
  tab_options(
    table.width = pct(90), 
    heading.title.font.weight = "bold",
    column_labels.font.weight = "bold"
  ) %>%
  tab_source_note(
    source_note = md("**Tabla 1 de 4**")
  )
Tabla N°1. Tabla de distribucion de cantidad de latitud de los pozos de gas natural en Nuevo México
Li Ls MC ni hi
32 32.36 32.18 707 5.63
32.36 32.71 32.53 1290 10.27
32.71 33.07 32.89 638 5.08
33.07 33.43 33.25 74 0.59
33.43 33.79 33.61 413 3.29
33.79 34.14 33.97 155 1.23
34.14 34.5 34.32 0 0.00
34.5 34.86 34.68 0 0.00
34.86 35.21 35.03 0 0.00
35.21 35.57 35.39 0 0.00
35.57 35.93 35.75 0 0.00
35.93 36.28 36.11 303 2.41
36.28 36.64 36.46 3563 28.37
36.64 37 36.82 5418 43.13
TOTAL 12561 100.00
Tabla 1 de 4
#GRAFICA 1
cortes_histograma <- c(Li_s, maximo)
par(mar = c(5.1, 4.1, 4.1, 2.1))
hist(latitud_pozos, 
     breaks = cortes_histograma, 
     right = FALSE, 
     col = "darkgrey", 
     xaxt = "n", 
     xlab = "Latitud", 
     ylab = "Cantidad",
     main = "Grafica N°1: Distribución de cantidad de la latitud en pozos
      de gas natural en Nuevo México")

# Limites
axis(1, at = cortes_histograma, labels = round(cortes_histograma, 2), las = 2)
box(which = "outer", col = "black")

3. TABLA DE DISTRIBUCIÓN DE CANTIDAD AGRUPADA

Debido a que la tabla y la grafica presentas valores con decimales complejos vamos a agruparla

h_f <- hist(latitud_pozos, breaks = seq(32, 37, by = 0.5), plot = FALSE)
lis <- h_f$breaks[1:(length(h_f$breaks)-1)]
lss <- h_f$breaks[2:length(h_f$breaks)]
MC_f  <- h_f$mids
ni_f  <- h_f$counts
hi_f  <- (ni_f / sum(ni_f)) * 100

Niasc <- cumsum(ni_f); Nidsc <- rev(cumsum(rev(ni_f)))
Hiasc <- round(cumsum(hi_f), 2); Hidsc <- round(rev(cumsum(rev(hi_f))), 2)

TDF_Simp <- data.frame(Li=lis, Ls=lss, MC=MC_f, ni=ni_f, hi=round(hi_f, 2), 
                       Niasc, Nidsc, Hiasc, Hidsc)
TDF_Simp_P <- rbind(TDF_Simp, data.frame(Li="TOTAL", Ls=" ", MC=" ", ni=sum(ni_f), hi=100,Niasc=" ", Nidsc=" ", Hiasc=" ", Hidsc=" "))

# TABLA 2 CON GT
TDF_Simp_P %>%
  gt() %>%
  tab_header(title = md("TABLA°2: Tabla de distribución de cantidad 
                        de la latitud en pozos de gas natural en Nuevo México")) %>%
  tab_style(
    style = list(cell_fill(color = "lightgray"), cell_text(weight = "bold")),
    locations = list(
      cells_body(rows = Li == "TOTAL"),
      cells_title(groups = "title")
    )
  ) %>%
  tab_options(
    table.width = pct(95), 
    heading.title.font.weight = "bold",
    column_labels.font.weight = "bold" 
  )%>%
  tab_source_note(
    source_note = md("**Tabla 2 de 4**"))
TABLA°2: Tabla de distribución de cantidad de la latitud en pozos de gas natural en Nuevo México
Li Ls MC ni hi Niasc Nidsc Hiasc Hidsc
32 32.5 32.25 1296 10.32 1296 12561 10.32 100
32.5 33 32.75 1306 10.40 2602 11265 20.71 89.68
33 33.5 33.25 184 1.46 2786 9959 22.18 79.29
33.5 34 33.75 486 3.87 3272 9775 26.05 77.82
34 34.5 34.25 5 0.04 3277 9289 26.09 73.95
34.5 35 34.75 0 0.00 3277 9284 26.09 73.91
35 35.5 35.25 0 0.00 3277 9284 26.09 73.91
35.5 36 35.75 3 0.02 3280 9284 26.11 73.91
36 36.5 36.25 1868 14.87 5148 9281 40.98 73.89
36.5 37 36.75 7413 59.02 12561 7413 100 59.02
TOTAL 12561 100.00
Tabla 2 de 4

4. GRÁFICAS DE DISTRIBUCIÓN

par(oma = c(1, 1, 1, 1))
par(mfrow=c(1,1))
par(mar = c(6, 5, 4, 2) + 0.1)
colores <- gray.colors(length(ni_f), start = 0.3, end = 0.9)

# Para Graficas 2 y 3 (Cantidad)
h_datos23 <- hist(latitud_pozos, plot = FALSE)
x_cant <- h_datos23$mids    
y_cant <- h_datos23$counts  

# Para Graficas 4 y 5 (Porcentaje)
h_datos45 <- hist(latitud_pozos, plot = FALSE)
h_datos45$counts <- (h_datos45$counts / sum(h_datos45$counts)) * 100
x_porc <- h_datos45$mids    
y_porc <- h_datos45$counts  


#GRAFICA 2
hist(latitud_pozos, col = colores, xlab = "Latitud", ylab = "Cantidad",
     main = "Grafica N°2: Distribución de cantidad de la latitud en pozos
      de gas natural en Nuevo México")
lines(x_cant, y_cant, type = "b", col = "red", pch = 19, lwd = 2) 
box(which = "outer", col = "black")

#GRAFICA 3
hist(latitud_pozos, col = colores, xlab = "Latitud", ylab = "Cantidad",
     ylim = c(0, 12561), 
     main = "Grafica N°3: Distribución de cantidad de la latitud en pozos
      de gas natural en Nuevo México")
lines(x_cant, y_cant, type = "b", col = "red", pch = 19, lwd = 2) 
box(which = "outer", col = "black")

#GRAFICA 4
h_porcentaje <- hist(latitud_pozos, plot = FALSE)
h_porcentaje$counts <- (h_porcentaje$counts / sum(h_porcentaje$counts)) * 100

plot(h_porcentaje, col = colores, xlab = "Latitud", ylab = "Porcentaje (%)",
     main = "Grafica N°4: Distribución de cantidad en porcentaje 
        de la latitud en pozos de gas natural en Nuevo México")
lines(x_porc, y_porc, type = "b", col = "red", pch = 19, lwd = 2) # Poligono de frecuencia agregado
box(which = "outer", col = "black")

#GRAFICA 5
plot(h_porcentaje, col = colores, xlab = "Latitud", ylab = "Porcentaje (%)",
     ylim = c(0, 100),
     main = "Grafica N°5: Distribución de cantidad en porcentaje 
        de la latitud en pozos de gas natural en Nuevo México")
lines(x_porc, y_porc, type = "b", col = "red", pch = 19, lwd = 2) # Poligono de frecuencia agregado
box(which = "outer", col = "black")

#GRAFICA 6
plot(lss, Nidsc, type="b", col="blue", pch=19, bg="white", xlab="Latitud", ylab="Cant. Acumulada",
     main="Grafica N°6: Ojivas combinadas de cantidad acumulada de la 
     latitud en pozos de gas natural en Nuevo México")
lines(lis, Niasc, col="black", type="b", pch=19)
legend("top", legend=c("Descendente", "Ascendente"), col=c("blue", "black"), pch=c(19, 19), pt.bg="white", bty="n")
box(which = "outer", col = "black")

#GRAFICA 7
plot(lss, Hidsc, type="b", col="blue", pch=19, bg="white", ylim=c(0, 100),
     xlab="Latitud", ylab="Porcentaje Acumulado",
     main="Grafica N°7: Ojivas combinadas de porcentaje acumulado de la 
     latitud en pozos de gas natural en Nuevo México")
lines(lis, Hiasc, col="black", type="b", pch=19)
legend("bottomright", legend=c("Descendente", "Ascendente"), col=c("blue", "black"), pch=c(19, 19), pt.bg="white", bty="n")
box(which = "outer", col = "black")

#GRAFICA 8
boxplot(latitud_pozos, horizontal = TRUE, col = "skyblue", xlab = "Latitud",
        main = "Grafica N°8: Distribución de cantidad de la latitud 
        en pozos de gas natural en Nuevo México")
box(which = "outer", col = "black")

summary(latitud_pozos)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   32.00   33.80   36.58   35.65   36.79   37.00
#GRAFICA N°9: SUPERPOSICIÓN DE BOXPLOT SOBRE HISTOGRAMA

hist(latitud_pozos, prob = TRUE,
     col = colores, xlab = "Latitud", ylab = "Densidad",
     main = "Grafica N°9: Distribución de cantidad de la latitud 
        en pozos de gas natural en Nuevo México")
par(new = TRUE)
boxplot(latitud_pozos, horizontal = TRUE, axes = FALSE,
        col = rgb(0, 0.8, 1, alpha = 0.5))
box(which = "outer", col = "black")

5. INDICADORES ESTADÍSTICOS Y OUTLIERS

TablaInd <- data.frame(Variable="Latitud", min=min(latitud_pozos), max=max(latitud_pozos),
                       x=round(mean(latitud_pozos),2), Me=median(latitud_pozos), 
                       sd=round(sd(latitud_pozos),2), Cv=round((sd(latitud_pozos)/mean(latitud_pozos))*100,2),
                       As=round(skewness(latitud_pozos),2), K=round(kurtosis(latitud_pozos),2))

#media
media_val <- mean(latitud_pozos)
media_val
## [1] 35.65062
#desviacion estandar
desv_val <- sd(latitud_pozos)
desv_val
## [1] 1.757531
#minimo
min_val <- min(latitud_pozos)
min_val
## [1] 32.00058
#maximo
max_val <- max(latitud_pozos)
max_val
## [1] 36.99897
cv_analisis <- (desv_val / media_val) * 100
cv_analisis
## [1] 4.929873
tipo_datos <- if(cv_analisis > 30) "heterogeneos" else "homogeneos"
conteo_atipicos <- length(boxplot.stats(latitud_pozos)$out)



# TABLA 3 CON GT
TablaInd %>% 
  gt() %>% 
  tab_header(title = md("Tabla Nº3: Indicadores estadisticos de la variable 
latitud en pozos de gas natural en Nuevo México")) %>%
  tab_style(
    style = list(cell_fill(color = "lightgray"), cell_text(weight = "bold")),
    locations = cells_title(groups = "title")
  ) %>%
  tab_options(
    column_labels.font.weight = "bold"
  ) %>%
  tab_source_note(
    source_note = md("**Tabla 3 de 4**"))
Tabla Nº3: Indicadores estadisticos de la variable latitud en pozos de gas natural en Nuevo México
Variable min max x Me sd Cv As K
Latitud 32.00058 36.99897 35.65 36.58063 1.76 4.93 -1.12 -0.61
Tabla 3 de 4
valores_atipicos <- boxplot.stats(latitud_pozos)$out 
n_atipicos <- length(valores_atipicos) 

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

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



# TABLA 4 CON GT
TablaOutliers %>% 
  gt() %>% 
  tab_header(title = md("TABLA N°4: Valores atípicos de la variable Latitud")) %>%
  tab_style(
    style = list(cell_fill(color = "lightgray"), cell_text(weight = "bold")),
    locations = cells_title(groups = "title")
  ) %>%
  tab_options(
    column_labels.font.weight = "bold"
  ) %>%
  tab_source_note(
    source_note = md("**Tabla 4 de 4**"))
TABLA N°4: Valores atípicos de la variable Latitud
Cantidad Mínimo Máximo
0 0 0
Tabla 4 de 4
names(which.max(table(latitud_pozos)))
## [1] "32.0559502"

6. CONCLUSIÓN

La variable latitud, medida en grados, fluctúa entre 32 y 37, con valores que se encuentran en torno a la media de 35.65, y una desviación estándar de 1.76, lo que indica un conjunto de datos homogéneos. La mayor concentración de registros se localiza en la parte alta de la variable, reflejando una marcada asimetría hacia el norte del área de estudio. Se identifican 0 valores atípicos. Por todo lo anterior, el comportamiento de la latitud es medianamente beneficioso, ya que la amplia distribución latitudinal refleja la presencia extendida de los depósitos, lo cual favorece el análisis minero a escala local y regional, aunque con una mayor variabilidad espacial.