ANÁLISIS ESTADÍSTICO

1. CARGA DE LIBRERÍAS Y DATOS

#==============================ENCABEZADO================================
# TEMA: ESTADISTICA DESCRIPTIVA - IMPACTO DEL CONCRETO
# AUTOR: GRUPO 3
# FECHA: 05-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)
k <- floor(1 + 3.322 * log10(n))
minimo <- min(concreto)
maximo <- max(concreto)
R <- maximo - minimo
A <- R / k
k # Valor de Sturges
## [1] 14
A # Amplitud
## [1] 17575.71
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))

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 = cells_body(rows = Li == "TOTAL")
  )
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.19 113848.9 105061.04 566 4.51
113848.9 131424.61 122636.75 1664 13.25
131424.61 149000.32 140212.46 2460 19.58
149000.32 166576.03 157788.17 2836 22.58
166576.03 184151.74 175363.88 2558 20.36
184151.74 201727.45 192939.6 1412 11.24
201727.45 219303.16 210515.3 633 5.04
219303.16 236878.87 228091.02 259 2.06
236878.87 254454.58 245666.72 111 0.88
254454.58 272030.3 263242.44 41 0.33
272030.3 289606.01 280818.16 11 0.09
289606.01 307181.72 298393.86 6 0.05
307181.72 324757.43 315969.57 1 0.01
324757.43 342333.14 333545.29 2 0.02
TOTAL 12560 100.00

2. TABLA DE DISTRIBUCIÓN AGRUPADA

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 = cells_body(rows = Li == "TOTAL")
  )
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

3. GRÁFICAS DE DISTRIBUCIÓN

par(mfrow=c(1,1))

# Grafica 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", ylab = "Cantidad")

# Grafica 2: 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", ylab = "Cantidad")

# Grafica 3: 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", ylab = "Porcentaje (%)")

# Grafica 4
plot(h_rel, col = "skyblue", ylim = c(0, 100),
     main = "Gráfica 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 (%)")

# Grafica 5: Ojivas
plot(lss, Hidsc, type="o", col="blue", pch=19, ylim=c(0, 100),
     main="Gráfica 5. Ojivas combinadas de cantidad en porcentaje
     del Impacto del Concreto en pozos de gas natural en 
     Nuevo México",
     xlab="Impacto", ylab="Porcentaje Acumulado")
lines(lis, Hiasc, type="o", col="black", pch=18)
legend("topright", legend=c("Descendente", "Ascendente"), col=c("blue", "black"), 
       pch=c(19, 18), bty="n")

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

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

TablaInd %>% gt() %>% tab_header(title = md("**Tabla N°3: Indicadores Estadísticos de la variable Impacto del concreto**"))
Tabla N°3: Indicadores Estadísticos de la variable Impacto del concreto
Variable min max x Me sd Cv As K
Concreto 96273.19 342333.1 160267 158976 29908.69 18.66 0.55 0.62
valores_atipicos <- boxplot.stats(concreto)$out 
TablaOutliers <- data.frame(Cantidad = length(valores_atipicos), 
                            Mínimo = if(length(valores_atipicos) > 0) min(valores_atipicos) else 0, 
                            Máximo = if(length(valores_atipicos) > 0) max(valores_atipicos) else 0)

TablaOutliers %>% gt() %>% tab_header(title = md("**Tabla N°4: Análisis de Valores Atípicos**"))
Tabla N°4: Análisis de Valores Atípicos
Cantidad Mínimo Máximo
146 239642.4 342333.1

5. CONCLUSIÓN

cat(paste0(
  "La variable impacto de la producción de concreto para la plataforma presenta valores que fluctúan entre ", 
  round(min(concreto),1), " y ", round(max(concreto),1), ", con una media de ", round(mean(concreto),1), 
  " y un valor central de ", round(median(concreto),1), ". La desviación estándar de ", round(sd(concreto),1), 
  ", junto con un Coeficiente de Variación de ", round(abs((sd(concreto)/mean(concreto))*100),1), 
  "%, indica una heterogeneidad moderada-alta en los datos. Esto refleja que el volumen de concreto ",
  "utilizado varía considerablemente según las especificaciones técnicas de los pozos en Nuevo México. ",
  "La asimetría de ", round(skewness(concreto),2), " indica que existe una mayor concentración de proyectos ",
  "en rangos de impacto bajo y medio. Finalmente, se identificaron ", length(valores_atipicos), 
  " valores atípicos, lo que sugiere estabilidad en los procesos constructivos estándar."
))
## 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 heterogeneidad moderada-alta en los datos. Esto refleja que el volumen de concreto utilizado varía considerablemente 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 146 valores atípicos, lo que sugiere estabilidad en los procesos constructivos estándar.