#==============================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 = ";")
Asignamos nuestra variable Latitude.of.well.pad (Latitud) con el nombre de latitud_pozos
latitud_pozos <- as.numeric(datos$Latitude.of.well.pad)
latitud_pozos <- na.omit(latitud_pozos)
n <- length(latitud_pozos)
TABLA DE DISTRIBUCIÓN CON STURGES
# 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 Nº 1. Tabla de distribución 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 | ||||
TABLA DE DISTRIBUCIÓN AGRUPADA
Debido a los valores decimales resultantes de aplicar la regla de Sturges, se procedió a agrupar los datos en intervalos prácticos.
h_f <- hist(latitud_pozos, breaks = seq(32, 37, by = 1), 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: 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 | 33 | 32.5 | 2602 | 20.71 | 2602 | 12561 | 20.71 | 100 |
| 33 | 34 | 33.5 | 670 | 5.33 | 3272 | 9959 | 26.05 | 79.29 |
| 34 | 35 | 34.5 | 5 | 0.04 | 3277 | 9289 | 26.09 | 73.95 |
| 35 | 36 | 35.5 | 3 | 0.02 | 3280 | 9284 | 26.11 | 73.91 |
| 36 | 37 | 36.5 | 9281 | 73.89 | 12561 | 9281 | 100 | 73.89 |
| TOTAL | 12561 | 100.00 | ||||||
| Tabla 2 de 4 | ||||||||
Creación de Polígono de Frecuencia
h_datos23 <- hist(latitud_pozos, breaks = mis_breaks, plot = FALSE)
limite_inferior <- h_datos23$breaks[1]
limite_superior <- tail(h_datos23$breaks, 1)
x_cant <- c(limite_inferior, h_datos23$mids, limite_superior)
y_cant <- c(0, h_datos23$counts, 0)
# GRÁFICA 1
hist(latitud_pozos, breaks = mis_breaks, col = colores, xlab = "Latitud (grados)", ylab = "Cantidad (ni)",
main = "Gráfica N°1: 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")
# GRÁFICA 2
hist(latitud_pozos, breaks = mis_breaks, col = colores, xlab = "Latitud (grados)", ylab = "Cantidad (ni)",
ylim = c(0, 12561),
main = "Gráfica N°2: Distribución de cantidad de la latitud en pozos
de gas natural en Nuevo México")
box(which = "outer", col = "black")
# GRÁFICA 3
h_porcentaje <- hist(latitud_pozos, breaks = mis_breaks, plot = FALSE)
h_porcentaje$counts <- (h_porcentaje$counts / sum(h_porcentaje$counts)) * 100
plot(h_porcentaje, col = colores, xlab = "Latitud (grados)", ylab = "Porcentaje (%)",
main = "Gráfica N°3: Distribución de cantidad en porcentaje
de la latitud en pozos de gas natural en Nuevo México")
box(which = "outer", col = "black")
# GRÁFICA 4
plot(h_porcentaje, col = colores, xlab = "Latitud (grados)", ylab = "Porcentaje (%)",
ylim = c(0, 100),
main = "Gráfica N°4: Distribución de cantidad en porcentaje
de la latitud en pozos de gas natural en Nuevo México")
box(which = "outer", col = "black")
# GRÁFICA 5
par(mar = c(7, 4, 4, 2) + 0.1)
todos_x <- c(lss, lis)
todos_y <- c(Nidsc, Niasc)
plot(lss, Nidsc, type = "b", col = "blue", pch = 19, bg = "white",
xlim = range(todos_x),
ylim = range(todos_y),
xlab = "",
ylab = "Cant. Acumulada (Ni)",
main = "Gráfica N°5: Ojivas combinadas de cantidad acumulada de la\nlatitud 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")
mtext("Latitud (grados)", side = 1, line = 5.5, cex = 1)
# GRÁFICA 6
plot(lss, Hidsc, type="b", col="blue", pch=19, bg="white", ylim=c(0, 100),
xlab="Latitud (grados)", ylab="Porcentaje Acumulado (Hi)",
main="Gráfica N°6: 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")
# GRÁFICA 7
boxplot(latitud_pozos, horizontal = TRUE, col = "skyblue", xlab = "Latitud (grados)",
main = "Gráfica N°7: 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
# GRÁFICA N°8: SUPERPOSICIÓN DE BOXPLOT SOBRE HISTOGRAMA
hist(latitud_pozos, breaks = mis_breaks, prob = TRUE,
col = colores, xlab = "Latitud (grados)", ylab = "Densidad",
main = "Gráfica N°8: 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")
TablaInd <- data.frame(Variable="Latitud", min=min(latitud_pozos), max=max(latitud_pozos),
x=round(mean(latitud_pozos),1), Me=median(latitud_pozos),
sd=round(sd(latitud_pozos),1), Cv=round((sd(latitud_pozos)/mean(latitud_pozos))*100,1),
As=round(skewness(latitud_pozos),1), 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)
| Indicadores estadísticos de la variable latitud | ||||||||
| Variable | min | max | x | Me | sd | Cv | As | K |
|---|---|---|---|---|---|---|---|---|
| Latitud | 32.00058 | 36.99897 | 35.7 | 36.58063 | 1.8 | 4.9 | -1.1 | -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 N°4: Valores atípicos de la variable Latitud | ||
| Cantidad | Mínimo | Máximo |
|---|---|---|
| 0 | 0 | 0 |
| Tabla 4 de 4 | ||
La variable latitud, medida en grados, fluctúa entre 32 y 37, con valores que se encuentran en torno a la media de 35.6, y una desviación estándar de 1.76, lo que indica un conjunto de datos muy homogéneos tambien refleja una marcada asimetría hacia hacia el sur y se identifican 0 valores atípicos. Por todo lo anterior mencionado, el comportamiento de la latitud es altamente beneficioso, ya que la baja dispersión de los datos refleja una alta concentración de los pozos, lo cual favorece la consistencia del análisis