#==============================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 = ";")
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)
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 | ||||||||
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")
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 | ||
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.