ANÁLISIS ESTADÍSTICO
1. CARGA DE LIBRERÍAS Y DATOS
#==============================ENCABEZADO================================
# TEMA: ESTADÍSTICA DESCRIPTIVA - LONGITUD
# 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
longitud_pozos <- as.numeric(datos$Longitude.of.well.pad)
longitud_pozos <- na.omit(longitud_pozos)
n <- length(longitud_pozos)
k <- floor(1 + 3.322 * log10(n))
minimo <- min(longitud_pozos)
maximo <- max(longitud_pozos)
R <- maximo - minimo
A <- R / k
k #valor de Sturges
## [1] 14
A #Amplitud
## [1] 0.381049
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(longitud_pozos >= Li_s[i] & longitud_pozos < Ls_s[i])
}
ni_s[length(Li_s)] <- sum(longitud_pozos >= Li_s[length(Li_s)] & longitud_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))
TDF_Sturges_P %>%
gt() %>%
tab_header(title = md("Tabla N°1. Tabla de distribucion de cantidad de
longitud 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
longitud de los pozos de gas natural en Nuevo México |
| Li |
Ls |
MC |
ni |
hi |
| -108.4 |
-108.02 |
-108.21 |
1487 |
11.84 |
| -108.02 |
-107.64 |
-107.83 |
3058 |
24.35 |
| -107.64 |
-107.26 |
-107.45 |
3230 |
25.71 |
| -107.26 |
-106.88 |
-107.07 |
853 |
6.79 |
| -106.88 |
-106.5 |
-106.69 |
0 |
0.00 |
| -106.5 |
-106.12 |
-106.31 |
0 |
0.00 |
| -106.12 |
-105.74 |
-105.93 |
0 |
0.00 |
| -105.74 |
-105.36 |
-105.55 |
0 |
0.00 |
| -105.36 |
-104.97 |
-105.16 |
211 |
1.68 |
| -104.97 |
-104.59 |
-104.78 |
599 |
4.77 |
| -104.59 |
-104.21 |
-104.4 |
1197 |
9.53 |
| -104.21 |
-103.83 |
-104.02 |
822 |
6.54 |
| -103.83 |
-103.45 |
-103.64 |
352 |
2.80 |
| -103.45 |
-103.07 |
-103.26 |
751 |
5.98 |
| TOTAL |
|
|
12560 |
100.00 |
3. TABLA DE DISTRIBUCIÓN DE CANTIDAD
SIMPLIFICADA
h_f <- hist(longitud_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=" "))
TDF_Simp_P %>%
gt() %>%
tab_header(title = md("TABLA°2: Tabla de distribución de cantidad de la longitud 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 longitud en pozos
de gas natural en Nuevo México |
| Li |
Ls |
MC |
ni |
hi |
Niasc |
Nidsc |
Hiasc |
Hidsc |
| -108.5 |
-108 |
-108.25 |
1630 |
12.98 |
1630 |
12561 |
12.98 |
100 |
| -108 |
-107.5 |
-107.75 |
4010 |
31.92 |
5640 |
10931 |
44.9 |
87.02 |
| -107.5 |
-107 |
-107.25 |
2972 |
23.66 |
8612 |
6921 |
68.56 |
55.1 |
| -107 |
-106.5 |
-106.75 |
17 |
0.14 |
8629 |
3949 |
68.7 |
31.44 |
| -106.5 |
-106 |
-106.25 |
0 |
0.00 |
8629 |
3932 |
68.7 |
31.3 |
| -106 |
-105.5 |
-105.75 |
0 |
0.00 |
8629 |
3932 |
68.7 |
31.3 |
| -105.5 |
-105 |
-105.25 |
171 |
1.36 |
8800 |
3932 |
70.06 |
31.3 |
| -105 |
-104.5 |
-104.75 |
804 |
6.40 |
9604 |
3761 |
76.46 |
29.94 |
| -104.5 |
-104 |
-104.25 |
1690 |
13.45 |
11294 |
2957 |
89.91 |
23.54 |
| -104 |
-103.5 |
-103.75 |
453 |
3.61 |
11747 |
1267 |
93.52 |
10.09 |
| -103.5 |
-103 |
-103.25 |
814 |
6.48 |
12561 |
814 |
100 |
6.48 |
| 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(longitud_pozos, col = colores, xlab = "Longitud", ylab = "Cantidad",
main = "Grafica N°1: Distribución de cantidad de la longitud en pozos
de gas natural en Nuevo México")

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

h_porcentaje <- hist(longitud_pozos, plot = FALSE)
h_porcentaje$counts <- (h_porcentaje$counts / sum(h_porcentaje$counts)) * 100
plot(h_porcentaje, col = colores, xlab = "Longitud", ylab = "Porcentaje (%)",
main = "Grafica N°3: Distribución de cantidad en porcentaje
de la longitud en pozos de gas natural en Nuevo México")

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

plot(lss, Nidsc, type="o", col="blue", pch=19, xlab="Longitud", ylab="Cant. Acumulada",
main="Grafica N°5: Ojivas combinadas de cantidad acumulada")
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="Longitud", ylab="Porcentaje Acumulado",
main="Grafica N°6: Ojivas combinadas en porcentaje acumulado")
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(longitud_pozos, horizontal = TRUE, col = "skyblue", xlab = "Longitud",
main = "Grafica N°7: Distribución de cantidad de la longitud")

5. INDICADORES ESTADÍSTICOS Y OUTLIERS
TablaInd <- data.frame(Variable="Longitud", min=min(longitud_pozos), max=max(longitud_pozos),
x=round(mean(longitud_pozos),2), Me=median(longitud_pozos),
sd=round(sd(longitud_pozos),2), Cv=round(abs((sd(longitud_pozos)/mean(longitud_pozos))*100),2),
As=round(skewness(longitud_pozos),2), K=round(kurtosis(longitud_pozos),2))
TablaInd %>%
gt() %>%
tab_header(title = md("Tabla N.3: Indicadores estadisticos de la variable
longitud en pozos de gas natural en Nuevo México"))
| Tabla N.3: Indicadores estadisticos de la variable
longitud en pozos de gas natural en Nuevo México |
| Variable |
min |
max |
x |
Me |
sd |
Cv |
As |
K |
| Longitud |
-108.4039 |
-103.0692 |
-106.57 |
-107.434 |
1.7 |
1.59 |
0.84 |
-1.03 |
valores_atipicos <- boxplot.stats(longitud_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)
TablaOutliers %>%
gt() %>%
tab_header(title = md("TABLA N°4: Valores atípicos de la variable Longitud"))
| TABLA N°4: Valores atípicos de la variable Longitud |
| Cantidad |
Mínimo |
Máximo |
| 0 |
0 |
0 |
6. CONCLUSIÓN
cat(paste0(
"La variable longitud de los pozos presenta valores que fluctúan entre ", round(min(longitud_pozos),4),
" y ", round(max(longitud_pozos),4), ", con una media de ", round(mean(longitud_pozos),2),
" y una mediana de ", round(median(longitud_pozos),2), ". La desviación estándar de ", round(sd(longitud_pozos),2),
" e indica una baja dispersión de los datos, lo que muestra que las longitudes se encuentran ",
"relativamente concentradas alrededor del promedio. Además, el coeficiente de asimetría de ",
round(skewness(longitud_pozos),2), " evidencia una ligera asimetría positiva, mientras que la curtosis de ",
round(kurtosis(longitud_pozos),2), " indica una distribución platicúrtica. En conjunto, estos resultados ",
"reflejan que la longitud de los pozos presenta una distribución relativamente homogénea, ",
"con una variabilidad espacial moderada dentro del área de estudio."
))
## La variable longitud de los pozos presenta valores que fluctúan entre -108.4039 y -103.0692, con una media de -106.57 y una mediana de -107.43. La desviación estándar de 1.7 e indica una baja dispersión de los datos, lo que muestra que las longitudes se encuentran relativamente concentradas alrededor del promedio. Además, el coeficiente de asimetría de 0.84 evidencia una ligera asimetría positiva, mientras que la curtosis de -1.03 indica una distribución platicúrtica. En conjunto, estos resultados reflejan que la longitud de los pozos presenta una distribución relativamente homogénea, con una variabilidad espacial moderada dentro del área de estudio.