ANÁLISIS ESTADÍSTICO

1. CARGA DE LIBRERÍAS Y DATOS

                    #==============================ENCABEZADO===================
                    # TEMA: ESTADISTICA DESCRIPTIVA - IMPACTO DEL CONCRETO
                    # 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. SELECCIÓN DE VARIABLE

Asignamos nuestra variable Impact.concrete.production..pad. (Impacto de Concreto) con el nombre de concreto

concreto <- as.numeric(datos$Impact.concrete.production..pad.)
concreto <- na.omit(concreto)
n <- length(concreto)

3. TABLA DE DISTRIBUCIÓN DE CANTIDAD

TABLA DE DISTRIBUCIÓN CON STURGES

options(scipen = 999)
#STURGES
k <- floor(1 + 3.322 * log10(n))
k
## [1] 14
#MINIMO
minimo <- min(concreto)
minimo
## [1] 32308.8
#MAXIMO
maximo <- max(concreto)
maximo
## [1] 516940.8
#RANGO
R <- maximo - minimo
R
## [1] 484632
#AMPLITUD
A <- R / k
A
## [1] 34616.57
#TRABAJAMOS CON 5 DECIMALES DEBIDO A QUE UN VALOR QUEDABA FUERA DEL RANGO
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(concreto >= Li_s[i] & concreto < Ls_s[i])
}
ni_s[length(Li_s)] <- sum(concreto >= Li_s[length(Li_s)] & concreto <= 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 impacto de concreto en pozos de gas natural en Nuevo México
Li Ls MC ni hi
32308.8 66925.37 49617.08 686 5.46
66925.37 101541.94 84233.66 1473 11.73
101541.94 136158.51 118850.23 1760 14.01
136158.51 170775.09 153466.8 1383 11.01
170775.09 205391.66 188083.38 953 7.59
205391.66 240008.23 222699.94 748 5.95
240008.23 274624.8 257316.52 688 5.48
274624.8 309241.37 291933.08 773 6.15
309241.37 343857.94 326549.66 831 6.62
343857.94 378474.51 361166.22 749 5.96
378474.51 413091.09 395782.8 667 5.31
413091.09 447707.66 430399.38 569 4.53
447707.66 482324.23 465015.94 408 3.25
482324.23 516940.8 499632.52 873 6.95
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(concreto, 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 N°2: Tabla de distribución de cantidad de impacto de concreto en pozos de gas natural en Nuevo México
Li Ls MC ni hi Niasc Nidsc Hiasc Hidsc
0 50000 25000 214 1.70 214 12561 1.7 100
50000 100000 75000 1864 14.84 2078 12347 16.54 98.3
100000 150000 125000 2489 19.82 4567 10483 36.36 83.46
150000 200000 175000 1556 12.39 6123 7994 48.75 63.64
200000 250000 225000 1071 8.53 7194 6438 57.27 51.25
250000 300000 275000 1052 8.38 8246 5367 65.65 42.73
300000 350000 325000 1198 9.54 9444 4315 75.19 34.35
350000 400000 375000 1032 8.22 10476 3117 83.4 24.81
400000 450000 425000 828 6.59 11304 2085 89.99 16.6
450000 500000 475000 522 4.16 11826 1257 94.15 10.01
500000 550000 525000 735 5.85 12561 735 100 5.85
TOTAL 12561 100.00
Tabla 2 de 4

4. GRÁFICAS DE DISTRIBUCIÓN

Creación de Polígono de Frecuencia

h_concreto <- hist(concreto, plot = FALSE)
limite_inferior_c <- h_concreto$breaks[1]
limite_superior_c <- tail(h_concreto$breaks, 1)

x_c <- c(limite_inferior_c, MC_f, limite_superior_c)
y_c <- c(0, ni_f, 0)

# Gráfica 1: Histograma Frecuencia Absoluta
hist(concreto, freq = TRUE, col = "skyblue",
     main = "Gráfica Nº 1: Distribución de cantidad de impacto de 
     concreto en pozos de gas natural en Nuevo México",
     xlab = "Impacto del concreto (lb)", ylab = "Cantidad (ni)")
lines(x_c, y_c, type = "b", col = "red", pch = 19, lwd = 2)
box(which = "outer", col = "black")

# Gráfica 3: Histograma Global
hist(concreto, freq = TRUE, col = "skyblue", ylim = c(0, n),
     main = "Gráfica Nº 2: Distribución de cantidad de impacto del 
     concreto en pozos de gas natural en Nuevo México",
     xlab = "Impacto del concreto (lb)", ylab = "Cantidad (ni)")
box(which = "outer", col = "black")

# Gráfica 4: Histograma Frecuencia Relativa
h_rel <- hist(concreto, plot = FALSE)
h_rel$counts <- (h_rel$counts / sum(h_rel$counts)) * 100
plot(h_rel, col = "skyblue",
     main = "Gráfica Nº 3: Distribución de cantidad en porcentaje de 
     impacto del concreto en pozos de gas natural en Nuevo México",
     xlab = "Impacto del concreto (lb)", ylab = "Porcentaje (%)")
box(which = "outer", col = "black")

# Gráfica 5
plot(h_rel, col = "skyblue", ylim = c(0, 100),
     main = "Gráfica Nº 4: Distribución de cantidad en porcentaje de 
     impacto del concreto en pozos de gas natural en Nuevo México",
     xlab = "Impacto del concreto (lb)", ylab = "Porcentaje (%)")
box(which = "outer", col = "black")

# Gráfica 6: Ojivas
plot(lss, Nidsc, type = "b", col = "blue", pch = 19, bg = "white", xlab = "Impacto del concreto (lb)", ylab = "Cant. Acumulada (Ni)",
     main = "Gráfica Nº 5: Ojivas combinadas de cantidad
     del impacto del concreto en pozos de gas natural en 
     Nuevo México")
lines(lis, Niasc, col = "black", type = "b", pch = 19)
legend("right", 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: Ojivas
plot(lss, Hidsc, type = "b", col = "blue", pch = 19, bg = "white", ylim = c(0, 100),
     main = "Gráfica Nº 6: Ojivas combinadas de cantidad en porcentaje
     del impacto del concreto en pozos de gas natural en 
     Nuevo México",
     xlab = "Impacto del concreto (lb)", ylab = "Porcentaje Acumulado (Hi)")
lines(lis, Hiasc, col = "black", type = "b", pch = 19)
legend("right", legend = c("Descendente", "Ascendente"), col = c("blue", "black"), 
       pch = c(19, 19), pt.bg = "white", bty = "n")
box(which = "outer", col = "black")

# Gráfica 8: Boxplot
boxplot(concreto, horizontal = TRUE, col = "skyblue",
        main = "Gráfica Nº 7: Distribución de cantidad de impacto de 
        concreto en pozos de gas natural en Nuevo México",
        xlab = "Impacto del concreto (lb)")
box(which = "outer", col = "black")

summary(concreto)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   32309  120211  206832  239912  349268  516941
hist(concreto, prob = TRUE, col = "gray", 
     xlab = "Impacto del concreto (lb)", ylab = "Densidad",
     main = "Gráfica Nº 8: Distribución de cantidad de impacto de 
        concreto en pozos de gas natural en Nuevo México")
par(new = TRUE)
boxplot(concreto, horizontal = TRUE, axes = FALSE,
        col = rgb(0, 0.8, 1, alpha = 0.5))
box(which = "outer", col = "black")

5. INDICADORES ESTADÍSTICOS

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


#media
media_val <- mean(concreto)
media_val
## [1] 239911.8
#desviacion estandar
desv_val <- sd(concreto)
desv_val
## [1] 138428.3
#minimo
min_val <- min(concreto)
min_val
## [1] 32308.8
#maximo
max_val <- max(concreto)
max_val
## [1] 516940.8
cv_analisis <- (desv_val / media_val) * 100
cv_analisis
## [1] 57.69966
tipo_datos <- if(cv_analisis > 30) "heterogeneos" else "homogeneos"
conteo_atipicos <- length(boxplot.stats(concreto)$out)
Indicadores estadísticos de la variable Impacto del Concreto de los pozos de Gas Natural en Nuevo México
Variable min max x Me sd Cv As K
Concreto 32308.8 516940.8 239911.9 206831.6 138428.3 57.7 0.49 -0.96
Tabla 3 de 4
# ESTRUCTURA DE OUTLIERS COMPLETADA
valores_atipicos <- boxplot.stats(concreto)$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 Impacto del concreto
Cantidad Mínimo Máximo
0 0 0
Tabla 4 de 4

6. CONCLUSIÓN

La variable impacto de la producción de concreto para la plataforma presenta valores que fluctúan entre 96273.2 y 342333.1, con una media de 160267.1 y un valor central de 158976. La desviación estándar de 29908.7, junto con un Coeficiente de Variación de 18.7%, indica una homogeneidad moderada en los datos. Esto refleja que el volumen de concreto utilizado varía de forma controlada según las especificaciones técnicas de los pozos en Nuevo México. La asimetría de 0.55 indica que existe una mayor concentración de proyectos en rangos de impacto bajo y medio. Finalmente, se identificaron 145 valores atípicos, lo que sugiere la existencia de obras con requerimientos técnicos excepcionales que se desvían de los procesos constructivos estándar.