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 |