ANÁLISIS ESTADÍSTICO

1. CARGA DE LIBRERÍAS Y DATOS

#==============================ENCABEZADO================================
# TEMA: ESTADISTICA DESCRIPTIVA - IMPACTO DEL ACERO
# 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 DISTRIBUCION CON STURGES

acero <- as.numeric(datos$Impact.steel.production..pad.)
acero <- na.omit(acero)
acero <- acero[acero >= 0] 
n <- length(acero)
k <- floor(1 + 3.322 * log10(n))
minimo <- min(acero)
maximo <- max(acero)
R <- maximo - minimo
A <- R / k
k # Valor de Sturges
## [1] 14
A # Amplitud
## [1] 16543.45
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(acero >= Li_s[i] & acero < Ls_s[i])
}
ni_s[length(Li_s)] <- sum(acero >= Li_s[length(Li_s)] & acero <= 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 distribucion de cantidad 
                        de impacto de acero en pozos de gas natural en 
                        Nuevo Mexico**")) %>%
  tab_style(
    style = list(cell_fill(color = "lightgray"), cell_text(weight = "bold")),
    locations = cells_body(rows = Li == "TOTAL")
  )
Tabla Nº1. Tabla de distribucion de cantidad de impacto de acero en pozos de gas natural en Nuevo Mexico
Li Ls MC ni hi
79121.28 95664.74 87393.01 26 0.21
95664.74 112208.19 103936.46 437 3.48
112208.19 128751.64 120479.92 1574 12.53
128751.64 145295.09 137023.36 2542 20.24
145295.09 161838.55 153566.82 3018 24.03
161838.55 178382 170110.28 2580 20.54
178382 194925.45 186653.72 1387 11.04
194925.45 211468.9 203197.17 613 4.88
211468.9 228012.36 219740.63 237 1.89
228012.36 244555.81 236284.08 103 0.82
244555.81 261099.26 252827.54 28 0.22
261099.26 277642.71 269370.98 10 0.08
277642.71 294186.17 285914.44 3 0.02
294186.17 310729.62 302457.9 3 0.02
TOTAL 12561 100.00

2. TABLA DE DISTRIBUCION AGRUPADA

h_f <- hist(acero, 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 distribucion de cantidad 
                        de impacto del acero en pozos de gas natural en 
                        Nuevo Mexico**")) %>%
  tab_style(
    style = list(cell_fill(color = "lightgray"), cell_text(weight = "bold")),
    locations = cells_body(rows = Li == "TOTAL")
  )
TABLA Nº2: Tabla de distribucion de cantidad de impacto del acero en pozos de gas natural en Nuevo Mexico
Li Ls MC ni hi Niasc Nidsc Hiasc Hidsc
60000 80000 70000 1 0.01 1 12561 0.01 100
80000 100000 90000 68 0.54 69 12560 0.55 99.99
100000 120000 110000 997 7.94 1066 12492 8.49 99.45
120000 140000 130000 2636 20.99 3702 11495 29.47 91.51
140000 160000 150000 3572 28.44 7274 8859 57.91 70.53
160000 180000 170000 3089 24.59 10363 5287 82.5 42.09
180000 200000 190000 1442 11.48 11805 2198 93.98 17.5
200000 220000 210000 511 4.07 12316 756 98.05 6.02
220000 240000 230000 184 1.46 12500 245 99.51 1.95
240000 260000 250000 45 0.36 12545 61 99.87 0.49
260000 280000 270000 11 0.09 12556 16 99.96 0.13
280000 300000 290000 3 0.02 12559 5 99.98 0.04
300000 320000 310000 2 0.02 12561 2 100 0.02
TOTAL 12561 100.00

3. GRAFICAS DE DISTRIBUCION

par(mfrow=c(1,1))
color_acero <- "#B0C4DE" 

# Grafica 1: Histograma Frecuencia Absoluta
hist(acero, freq = TRUE, col = color_acero, border = "white",
     main = "Grafica Nº1. Distribucion de cantidad de impacto del acero 
     en pozos de gas natural en Nuevo Mexico",
     xlab = "Impacto del Acero", ylab = "Cantidad")

# Grafica 2: Histograma Global
hist(acero, freq = TRUE, col = color_acero, border = "white", ylim = c(0, n),
     main = "Grafica Nº2. Distribucion de cantidad de impacto 
     del acero en pozos de gas natural en Nuevo Mexico",
     xlab = "Impacto del Acero", ylab = "Cantidad")

# Grafica 3: Histograma Frecuencia Relativa
h_rel <- hist(acero, plot = FALSE)
h_rel$counts <- (h_rel$counts / sum(h_rel$counts)) * 100
plot(h_rel, col = color_acero, border = "white",
     main = "Grafica Nº3. Distribucion de cantidad en porcentaje de impacto 
     del acero en pozos de gas natural en Nuevo Mexico",
     xlab = "Impacto del Acero", ylab = "Porcentaje (%)")

# Grafica 4
plot(h_rel, col = color_acero, border = "white", ylim = c(0, 100),
     main = "Grafica Nº4. Distribucion de cantidad de impacto de acero 
     en pozos de gas natural en Nuevo Mexico",
     xlab = "Impacto del Acero", ylab = "Porcentaje (%)")

# Grafica 5: Ojivas
plot(lss, Hidsc, type="o", col="#2E86C1", lwd=2, pch=19, ylim=c(0, 100),
     main="Grafica Nº5. Ojivas combinadas de Impacto de acero 
     en pozos de gas natural en Nuevo Mexico",
     xlab="Impacto del Acero", ylab="Porcentaje Acumulado")
lines(lis, Hiasc, type="o", col="black", lwd=2, pch=18)
legend("topright", legend=c("Descendente", "Ascendente"), col=c("#2E86C1", "black"), 
       lwd=2, pch=c(19, 18), bty="n")

# Grafica 6: Boxplot
boxplot(acero, horizontal = TRUE, col = color_acero, border = "#2E4053",
        main = "Grafica Nº6. Distribucion de cantidad de impacto 
        de acero en pozos de gas natural en Nuevo Mexico",
        xlab = "Impacto del Acero")

4. INDICADORES ESTADISTICOS

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

TablaInd %>% gt() %>% tab_header(title = md("**Tabla Nº3: Indicadores
                                            Estadisticos de la variable Impacto
                                            de Acero**"))
Tabla Nº3: Indicadores Estadisticos de la variable Impacto de Acero
Variable min max x Me sd Cv As K
Acero 79121.28 310729.6 156012.9 154798.2 27225.15 17.45 0.5 0.56
valores_atipicos <- boxplot.stats(acero)$out 
TablaOutliers <- data.frame(Cantidad = length(valores_atipicos), 
                            Minimo = if(length(valores_atipicos) > 0) min(valores_atipicos) else 0, 
                            Maximo = if(length(valores_atipicos) > 0) max(valores_atipicos) else 0)

TablaOutliers %>% gt() %>% tab_header(title = md("**Tabla Nº4: Analisis de Valores Atipicos**"))
Tabla Nº4: Analisis de Valores Atipicos
Cantidad Minimo Maximo
150 79121.28 310729.6

5. CONCLUSIÓN

cat(paste0(
  "La variable impacto de la produccion de acero para la plataforma presenta valores que fluctuan entre ", 
  round(min(acero),1), " y ", round(max(acero),1), ", con una media de ", round(mean(acero),1), 
  " y un valor central de ", round(median(acero),1), ". La desviacion estandar de ", round(sd(acero),1), 
  ", junto con un Coeficiente de Variacion de ", round(abs((sd(acero)/mean(acero))*100),1), 
  "%, indica la variabilidad de los datos. Esto refleja que el volumen de acero ",
  "utilizado varia segun las especificaciones tecnicas de los pozos en Nuevo Mexico. ",
  "La asimetria de ", round(skewness(acero),2), " indica la distribucion de la concentracion de proyectos ",
  "en los rangos calculados. Finalmente, se identificaron ", length(valores_atipicos), 
  " valores atípicos, lo que sugiere el nivel de estandarización en el uso de materiales para las plataformas."
))
## La variable impacto de la produccion de acero para la plataforma presenta valores que fluctuan entre 79121.3 y 310729.6, con una media de 156012.9 y un valor central de 154798.2. La desviacion estandar de 27225.2, junto con un Coeficiente de Variacion de 17.5%, indica la variabilidad de los datos. Esto refleja que el volumen de acero utilizado varia segun las especificaciones tecnicas de los pozos en Nuevo Mexico. La asimetria de 0.5 indica la distribucion de la concentracion de proyectos en los rangos calculados. Finalmente, se identificaron 150 valores atípicos, lo que sugiere el nivel de estandarización en el uso de materiales para las plataformas.