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))
minimo <- min(latitud_pozos)
maximo <- max(latitud_pozos)
R <- maximo - minimo
A <- R / k
k #Valor de Sturges
## [1] 14
A #Amplitud
## [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 = cells_body(rows = Li == "TOTAL")
  ) %>%
  tab_options(table.width = pct(90), heading.title.font.weight = "bold")
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

3. TABLA DE DISTRIBUCIÓN DE CANTIDAD SIMPLIFICADA

h_f <- hist(latitud_pozos, 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 = cells_body(rows = Li == "TOTAL")
  ) %>%
  tab_options(table.width = pct(95), heading.title.font.weight = "bold")
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

4. GRÁFICAS DE DISTRIBUCIÓN

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)

hist(latitud_pozos, col = colores, xlab = "Latitud", ylab = "Cantidad",
     main = "Grafica N°1: Distribución de cantidad de la latitud en pozos
      de gas natural en Nuevo México")

hist(latitud_pozos, col = colores, xlab = "Latitud", ylab = "Cantidad",
     ylim = c(0, n), 
     main = "Grafica N°2: Distribución de cantidad de la latitud en pozos
      de gas natural en Nuevo México")

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°3: Distribución de cantidad en porcentaje 
        de la latitud en pozos de gas natural en Nuevo México")

plot(h_porcentaje, col = colores, xlab = "Latitud", ylab = "Porcentaje (%)",
     ylim = c(0, 100),
     main = "Grafica N°4: Distribución de cantidad en porcentaje 
        de la latitud en pozos de gas natural en Nuevo México")

plot(lss, Nidsc, type="o", col="blue", pch=19, xlab="Latitud", ylab="Cant. Acumulada",
     main="Grafica N°5: Ojivas combinadas de cantidad en porcentaje de la latitud en pozos
      de gas natural en Nuevo México")
lines(lis, Niasc, type="o", col="black", pch=18)
legend("right", legend=c("Descendente", "Ascendente"), col=c("blue", "black"), pch=c(19, 18), bty="n")

plot(lss, Hidsc, type="o", col="blue", pch=19, ylim=c(0, 100),
     xlab="Latitud", ylab="Porcentaje Acumulado",
     main="Grafica N°6: Ojivas combinadas de cantidad en porcentaje de la latitud en pozos
      de gas natural en Nuevo México")
lines(lis, Hiasc, type="o", col="black", pch=18)
legend("right", legend=c("Descendente", "Ascendente"), col=c("blue", "black"), pch=c(19, 18), bty="n")

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

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))

# 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"))
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
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"))
TABLA N°4: Valores atípicos de la variable Latitud
Cantidad Mínimo Máximo
0 0 0

6. CONCLUSIÓN

media_val <- mean(latitud_pozos)
desv_val <- sd(latitud_pozos)
min_val <- min(latitud_pozos)
max_val <- max(latitud_pozos)

cv_analisis <- (desv_val / media_val) * 100
tipo_datos <- if(cv_analisis > 30) "heterogeneos" else "homogeneos"
conteo_atipicos <- length(boxplot.stats(latitud_pozos)$out)

cat(paste0(
  "La variable latitud, medida en grados, fluctua entre ", floor(min_val), " y ", ceiling(max_val), 
  ", con valores que se encuentran en torno a la media de ", round(media_val, 2), 
  ", y una desviacion estandar de ", round(desv_val, 2), 
  ", lo que indica un conjunto de datos ", tipo_datos, ". ",
  "La mayor concentracion de registros se localiza en la parte media de la variable. ",
  "Se identifican ", conteo_atipicos, " valores atipicos. ",
  "Por todo lo anterior, el comportamiento de la latitud es medianamente beneficioso, ",
  "ya que la amplia distribucion longitudinal refleja la presencia global de los depositos, ",
  "lo cual favorece el analisis minero a escala regional y mundial, aunque con una mayor variabilidad espacial."
))
## La variable latitud, medida en grados, fluctua entre 32 y 37, con valores que se encuentran en torno a la media de 35.65, y una desviacion estandar de 1.76, lo que indica un conjunto de datos homogeneos. La mayor concentracion de registros se localiza en la parte media de la variable. Se identifican 0 valores atipicos. Por todo lo anterior, el comportamiento de la latitud es medianamente beneficioso, ya que la amplia distribucion longitudinal refleja la presencia global de los depositos, lo cual favorece el analisis minero a escala regional y mundial, aunque con una mayor variabilidad espacial.