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. TABLA DE DISTRIBUCIÓN CON STURGES

concreto <- as.numeric(datos$Impact.concrete.production..pad.)
concreto <- na.omit(concreto)
concreto <- concreto[concreto >= 0] 

n <- length(concreto)
#STURGES
k <- floor(1 + 3.322 * log10(n))
k
## [1] 14
#MINIMO
minimo <- min(concreto)
minimo
## [1] 96273.19
#MAXIMO
maximo <- max(concreto)
maximo
## [1] 342333.1
#RANGO
R <- maximo - minimo
R
## [1] 246060
#AMPLITUD
A <- R / k
A
## [1] 17575.71
#TRABAJAMOS CON 5 DECIMALES DEBIDO A QUE UN VALOR QUEDABA FUERA DEL RANGO
Li_s <- round(seq(from = minimo, to = maximo - A, by = A), 5)
Ls_s <- round(seq(from = minimo + A, to = maximo, by = A), 5)
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))

TDF_Sturges_P %>%
  gt() %>%
  tab_header(title = md("**Tabla N°1. Tabla de distribución de cantidad de impacto de concreto 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(
    column_labels.font.weight = "bold" 
  )  %>%
  tab_source_note(
    source_note = md("**Tabla 1 de 4**"))
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
96273.18789 113848.89863 105061.04 567 4.51
113848.89863 131424.60938 122636.75 1664 13.25
131424.60938 149000.32012 140212.46 2460 19.58
149000.32012 166576.03086 157788.18 2836 22.58
166576.03086 184151.74161 175363.89 2558 20.36
184151.74161 201727.45235 192939.6 1412 11.24
201727.45235 219303.1631 210515.31 633 5.04
219303.1631 236878.87384 228091.02 259 2.06
236878.87384 254454.58458 245666.73 111 0.88
254454.58458 272030.29533 263242.44 41 0.33
272030.29533 289606.00607 280818.15 11 0.09
289606.00607 307181.71681 298393.86 6 0.05
307181.71681 324757.42756 315969.57 1 0.01
324757.42756 342333.1383 333545.28 2 0.02
TOTAL 12561 100.00
Tabla 1 de 4
# GRAFICA N°1: DISTRIBUCIÓN DEL IMPACTO DE CONCRETO
cortes_histograma_con <- c(Li_s, maximo)
par(mar = c(7.5, 4.1, 4.1, 2.1))
hist(concreto, 
     breaks = cortes_histograma_con, 
     right = FALSE, 
     col = "darkgrey", 
     xaxt = "n", 
     xlab = "", 
     ylab = "Cantidad",
     main = "Grafica N°1: Distribución de cantidad de impacto de concreto en
     pozos de gas natural en Nuevo México")
axis(1, at = cortes_histograma_con, labels = round(cortes_histograma_con, 2), las = 2)
title(xlab = "Impacto del concreto", line = 5.5)
box(which = "outer", col = "black")

3. TABLA DE DISTRIBUCIÓN AGRUPADA

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

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

TDF_Simp_P %>%
  gt() %>%
  tab_header(title = md("**TABLA N°2: Tabla de distribución de cantidad de impacto de concreto 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(
    column_labels.font.weight = "bold" 
  ) %>%
  tab_source_note(
    source_note = md("**Tabla 2 de 4**"))
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
80000 100000 90000 21 0.17 21 12561 0.17 100
100000 120000 110000 987 7.86 1008 12540 8.02 99.83
120000 140000 130000 2395 19.07 3403 11553 27.09 91.98
140000 160000 150000 3015 24.00 6418 9158 51.09 72.91
160000 180000 170000 3177 25.29 9595 6143 76.39 48.91
180000 200000 190000 1837 14.62 11432 2966 91.01 23.61
200000 220000 210000 716 5.70 12148 1129 96.71 8.99
220000 240000 230000 269 2.14 12417 413 98.85 3.29
240000 260000 250000 99 0.79 12516 144 99.64 1.15
260000 280000 270000 29 0.23 12545 45 99.87 0.36
280000 300000 290000 11 0.09 12556 16 99.96 0.13
300000 320000 310000 3 0.02 12559 5 99.98 0.04
320000 340000 330000 1 0.01 12560 2 99.99 0.02
340000 360000 350000 1 0.01 12561 1 100 0.01
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)

x_c  <- MC_f    # Marca de clase para cantidad
y_c  <- ni_f    # Frecuencia absoluta

x_p  <- MC_f    # Marca de clase para porcentaje
y_p  <- hi_f    # Frecuencia porcentual

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

# Grafica 3: Histograma Global
hist(concreto, freq = TRUE, col = "skyblue", ylim = c(0, n),
     main = "Gráfica Nº3. Distribución de cantidad de Impacto del 
     Concreto en pozos de gas natural en Nuevo México",
     xlab = "Impacto del Concreto", ylab = "Cantidad")
lines(x_c, y_c, type = "b", col = "red", pch = 19, lwd = 2)
box(which = "outer", col = "black")

# Grafica 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º4. Distribución de cantidad en porcentaje de 
     Impacto del Concreto en pozos de gas natural en Nuevo México",
     xlab = "Impacto del Concreto", ylab = "Porcentaje (%)")
lines(x_p, y_p, type = "b", col = "red", pch = 19, lwd = 2)
box(which = "outer", col = "black")

# Grafica 5
plot(h_rel, col = "skyblue", ylim = c(0, 100),
     main = "Gráfica Nº5: Distribución de cantidad en porcentaje de 
     Impacto del Concreto en pozos de gas natural en Nuevo México",
     xlab = "Impacto del Concreto", ylab = "Porcentaje (%)")
lines(x_p, y_p, type = "b", col = "red", pch = 19, lwd = 2)
box(which = "outer", col = "black")

#Grafica 6: ojivas
plot(lss, Nidsc, type="b", col="blue", pch=19, bg="white", xlab="Impacto del concreto", ylab="Cant. Acumulada",
     main="Gráfica Nº6: 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")

# Grafica 7: Ojivas
plot(lss, Hidsc, type="b", col="blue", pch=19, bg="white", ylim=c(0, 100),
     main="Gráfica Nº7: Ojivas combinadas de cantidad en porcentaje
     del Impacto del Concreto en pozos de gas natural en 
     Nuevo México",
     xlab="Impacto del concreto", ylab="Porcentaje Acumulado")
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")

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

summary(concreto)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   96273  138183  158976  160267  178751  342333
# Grafica 9: Superposición de Boxplot sobre Histograma (AGREGADO)
hist(concreto, prob = TRUE, col = "gray", 
     xlab = "Impacto del Concreto", ylab = "Densidad",
     main = "Gráfica Nº9: 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] 160267.1
#desviacion estandar
desv_val <- sd(concreto)
desv_val
## [1] 29908.69
#minimo
min_val <- min(concreto)
min_val
## [1] 96273.19
#maximo
max_val <- max(concreto)
max_val
## [1] 342333.1
cv_analisis <- (desv_val / media_val) * 100
cv_analisis
## [1] 18.66179
tipo_datos <- if(cv_analisis > 30) "heterogeneos" else "homogeneos"
conteo_atipicos <- length(boxplot.stats(concreto)$out)


# TABLA 3 CON GT 
TablaInd %>% 
  gt() %>% 
  tab_header(title = md("Tabla Nº3: Indicadores estadísticos de la variable 
impacto del concreto 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 estadísticos de la variable impacto del concreto en pozos de gas natural en Nuevo México
Variable min max x Me sd Cv As K
Concreto 96273.19 342333.1 160267 158976 29908.69 18.66 0.55 0.62
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 4 CON GT 
TablaOutliers %>% 
  gt() %>% 
  tab_header(title = md("TABLA N°4: Valores atípicos de la variable Impacto del concreto")) %>%
  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 Impacto del concreto
Cantidad Mínimo Máximo
146 239642.4 342333.1
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.