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.