ANÁLISIS ESTADÍSTICO
1. CARGA DE LIBRERÍAS Y DATOS
#==============================ENCABEZADO================================
# TEMA: ESTADÍSTICA DESCRIPTIVA - VIDA ESTIMADA
# AUTOR: GRUPO 3
# FECHA: 03-2026
#========================================================================
library(gt)
library(dplyr)
library(e1071)
setwd("C:/Users/HP/Documents/PROYECTO ESTADISTICA/RStudio")
datos <- read.csv("tablap.csv", header = TRUE, dec = ",", sep = ";")
2. TABLA DE DISTRIBUCIÓN DE CANTIDAD CON
STURGES
vida_util <- datos$Estimated.lifetime
n <- length(na.omit(vida_util))
k_sturges <- 1 + (3.322 * log10(n))
k_sturges
## [1] 14.61696
clasificacion_sturges <- cut(vida_util, breaks = k_sturges, right = FALSE)
#Cálculos de frecuencias para Sturges
ni_sturges <- table(clasificacion_sturges)
total_datos_sturges <- sum(ni_sturges)
hi_sturges <- round(as.numeric(ni_sturges) / total_datos_sturges * 100, 2)
# Construcción de la Tabla Sturges
TDF_Sturges <- data.frame(
Intervalo =gsub(",","-", names(ni_sturges)),
ni = as.numeric(ni_sturges),
hi = hi_sturges
)
TDF_Final_Sturges <- rbind(
TDF_Sturges,
data.frame(Intervalo="TOTAL", ni=total_datos_sturges, hi=100)
)
# 5. Renderizar Tabla Sturges con gt()
TDF_Final_Sturges %>%
gt() %>%
tab_header(title = md("Tabla N°1. Tabla de distribucion de la vida util estimada de los pozos de gas natural en Nuevo Mexico")) %>%
tab_style(
style = list(cell_fill(color = "lightgray"), cell_text(weight = "bold")),
locations = list(
cells_body(rows = Intervalo == "TOTAL"),
cells_title(groups = "title")
)
) %>%
cols_align(align = "center", columns = everything()) %>%
tab_options(table.width = pct(100), column_labels.font.weight = "bold")%>%
tab_source_note(
source_note = md("**Tabla 1 de 4**"))
| Tabla N°1. Tabla de distribucion de la vida util estimada de los pozos de gas natural en Nuevo Mexico |
| Intervalo |
ni |
hi |
| [25-28.4) |
178 |
1.42 |
| [28.4-31.9) |
0 |
0.00 |
| [31.9-35.3) |
0 |
0.00 |
| [35.3-38.7) |
0 |
0.00 |
| [38.7-42.1) |
0 |
0.00 |
| [42.1-45.6) |
0 |
0.00 |
| [45.6-49) |
0 |
0.00 |
| [49-52.4) |
10346 |
82.37 |
| [52.4-55.9) |
174 |
1.39 |
| [55.9-59.3) |
334 |
2.66 |
| [59.3-62.7) |
291 |
2.32 |
| [62.7-66.1) |
555 |
4.42 |
| [66.1-69.6) |
402 |
3.20 |
| [69.6-73) |
281 |
2.24 |
| TOTAL |
12561 |
100.00 |
| Tabla 1 de 4 |
par(mar = c(8.5, 4.1, 4.1, 2.1))
# Gráfica con sturges
barplot(ni_sturges,
names.arg = gsub(",", " - ", names(ni_sturges)),
las = 2,
col = "darkgrey",
ylim = c(0, max(ni_sturges)+2),
xlab = "Vida util Estimada",
ylab = "Cantidad",
main = "Grafica N°1: Distribucion de cantidad de la vida util Estimada
de los pozos de gas natural en Nuevo Mexico")
box(which = "outer", col = "black")

3. TABLA DE DISTRIBUCIÓN DE CANTIDAD AGRUPADA
Debido a que la Tabla y la gráfica contenían
valores con decimales, la hemos simplificado
clasificacion <- character(length(vida_util))
for(i in seq_along(vida_util)){
if(!is.na(vida_util[i])){
if(vida_util[i] >= 25 & vida_util[i] < 33){
clasificacion[i] <- "25-32"
} else if(vida_util[i] >= 33 & vida_util[i] < 41){
clasificacion[i] <- "33-40"
} else if(vida_util[i] >= 41 & vida_util[i] < 49){
clasificacion[i] <- "41-48"
} else if(vida_util[i] >= 49 & vida_util[i] < 57){
clasificacion[i] <- "49-56"
} else if(vida_util[i] >= 57 & vida_util[i] < 65){
clasificacion[i] <- "57-64"
} else if(vida_util[i] >= 65 & vida_util[i] <= 75){
clasificacion[i] <- "65-75"
} else {
clasificacion[i] <- NA
}
} else {
clasificacion[i] <- NA
}
}
clasificacion <- na.omit(clasificacion)
orden_intervalos <- c("25-32", "33-40", "41-48", "49-56", "57-64", "65-75")
clasificacion <- factor(clasificacion, levels = orden_intervalos)
# Calculos de frecuencias
ni <- table(clasificacion)
total_datos <- sum(ni)
hi <- round(as.numeric(ni) / total_datos * 100, 2)
Ni_asc <- cumsum(ni)
Hi_asc <- cumsum(hi)
Ni_des <- rev(cumsum(rev(ni)))
Hi_des <- rev(cumsum(rev(hi)))
# Tabla Final
TDF_Completa <- data.frame(Intervalo = orden_intervalos, ni = as.numeric(ni), hi = hi,
Ni_asc = as.numeric(Ni_asc), Hi_asc = round(Hi_asc, 2),
Ni_des = as.numeric(Ni_des), Hi_des = round(Hi_des, 2))
TDF_Final <- rbind(TDF_Completa, data.frame(Intervalo="TOTAL", ni=total_datos, hi=100,
Ni_asc=" ", Hi_asc=" ", Ni_des=" ", Hi_des=" "))
TDF_Final %>%
gt() %>%
tab_header(title = md("Tabla N°2. Tabla de distribucion de cantidad de la vida util
estimada de los pozos de gas natural en Nuevo Mexico")) %>%
tab_style(
style = list(cell_fill(color = "lightgray"), cell_text(weight = "bold")),
locations = list(
cells_body(rows = Intervalo == "TOTAL"),
cells_title(groups = "title")
)
) %>%
cols_align(align = "center", columns = everything()) %>%
tab_options(table.width = pct(100), column_labels.font.weight = "bold")%>%
tab_source_note(
source_note = md("**Tabla 2 de 4**"))
| Tabla N°2. Tabla de distribucion de cantidad de la vida util
estimada de los pozos de gas natural en Nuevo Mexico |
| Intervalo |
ni |
hi |
Ni_asc |
Hi_asc |
Ni_des |
Hi_des |
| 25-32 |
178 |
1.42 |
178 |
1.42 |
12561 |
100 |
| 33-40 |
0 |
0.00 |
178 |
1.42 |
12383 |
98.58 |
| 41-48 |
0 |
0.00 |
178 |
1.42 |
12383 |
98.58 |
| 49-56 |
10586 |
84.28 |
10764 |
85.7 |
12383 |
98.58 |
| 57-64 |
817 |
6.50 |
11581 |
92.2 |
1797 |
14.3 |
| 65-75 |
980 |
7.80 |
12561 |
100 |
980 |
7.8 |
| TOTAL |
12561 |
100.00 |
|
|
|
|
| Tabla 2 de 4 |
4. GRÁFICAS DE DISTRIBUCIÓN DE CANTIDAD
color_abs <- "#76D7C4"
color_rel <- "#F1948A"
par(oma = c(1, 1, 1, 1))
par(mfrow=c(1,1))
#Grafica 1: Absoluta local
barplot(ni, names.arg = orden_intervalos, las = 2, col = color_abs,
xlab = "Vida Util Estimada", ylab = "Cantidad",
main = "Grafica N°2: Distribucion de cantidad de la vida util Estimada
de los pozos de gas natural en Nuevo Mexico")
box(which = "outer", col = "black")

#Grafica 2: Absoluta global
barplot(ni, names.arg = orden_intervalos, las = 2, col = "darkgrey",
ylim = c(0, total_datos), xlab = "Vida util Estimada", ylab = "Cantidad",
main = "Grafica N°3: Distribucion de cantidad de la vida util estimada
de los pozos de gas natural en Nuevo Mexico")
box(which = "outer", col = "black")

#Grafica 3: Relativa local
barplot(hi, names.arg = orden_intervalos, las = 2, col = color_rel,
xlab = "Vida util Estimada", ylab = "Porcentaje (%)",
main = "Grafica N°4: Distribucion de cantidad en porcentaje de
la vida util estimada de los pozos de gas natural en
Nuevo Mexico")
box(which = "outer", col = "black")

#Grafica 4: Relativa global
barplot(hi, names.arg = orden_intervalos, las = 2, col = "grey50",
ylim = c(0, 100), xlab = "Vida util Estimada", ylab = "Porcentaje (%)",
main = "Grafica N°5: Distribucion de cantidad en porcentaje de la vida
util estimada de los pozos de gas natural en Nuevo Mexico")
posicion_x <- 1:length(ni)
box(which = "outer", col = "black")

#Grafica 5: Ojivas Ni
plot(posicion_x, Ni_asc, type = "o", pch = 1, col = "blue", xaxt = "n",
xlab = "Vida util Estimada", ylab = "Cantidad acumulada (Ni)",
main = "Grafica N°6: Ojivas combinadas de la vida util estimada (Ni)")
axis(1, at = posicion_x, labels = orden_intervalos, las = 2)
lines(posicion_x, Ni_des, type = "o", pch = 1, col = "red")
legend("right", legend = c("Ascendente", "Descendente"), col = c("blue", "red"), pch = c(1, 1), bty = "n")
box(which = "outer", col = "black")

#Grafica 6: Ojivas Hi
plot(posicion_x, Hi_asc, type = "o", pch = 1, col = "blue", xaxt = "n", ylim = c(0, 100),
xlab = "Vida util Estimada", ylab = "Porcentaje acumulado (Hi)",
main = "Grafica N°7: Ojivas combinadas de la vida util estimada (Hi)")
axis(1, at = posicion_x, labels = orden_intervalos, las = 2)
lines(posicion_x, Hi_des, type = "o", pch = 1, col = "red")
legend("right", legend = c("Ascendente", "Descendente"), col = c("blue", "red"), pch = c(1, 1), bty = "n")
box(which = "outer", col = "black")

#Grafica 7: Boxplot
boxplot(vida_util, horizontal = TRUE, col = "lightblue",
xlab = "Vida util Estimada", main = "Grafica N°8: Distribucion de cantidad de la vida util
estimada de los pozos de gas natural en Nuevo Mexico")
box(which = "outer", col = "black")

summary(vida_util)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 25.00 50.00 50.00 51.86 50.00 73.00
5. INDICADORES ESTADÍSTICOS
#media
media_x <- mean(vida_util, na.rm = TRUE)
media_x
## [1] 51.86331
#minimo
val_min <- min(vida_util, na.rm = TRUE)
val_min
## [1] 25
#maximo
val_max <- max(vida_util, na.rm = TRUE)
val_max
## [1] 73
#mediana
mediana_Me <- median(vida_util, na.rm = TRUE)
mediana_Me
## [1] 50
#desviacion estandart
desv_estandar <- sd(vida_util, na.rm = TRUE)
desv_estandar
## [1] 6.295903
#coeficiente
coef_variacion <- ((desv_estandar / media_x) * 100)
coef_variacion
## [1] 12.13942
#asimetria
asimetria_As <- skewness(vida_util, na.rm = TRUE)
asimetria_As
## [1] 0.5076765
#curtosis
curtosis_K <- kurtosis(vida_util, na.rm = TRUE)
curtosis_K
## [1] 5.8894
#================TABLA DE INDICADORES================
TablaIndicadores <- data.frame(Variable = "Vida Util Estimada", minimo = val_min, maximo = val_max, x = round(media_x, 2),
Me = mediana_Me, sd = round(desv_estandar, 2),
Cv = round(coef_variacion, 2), As = round(asimetria_As, 2), K = round(curtosis_K, 2))
TablaIndicadores %>%
gt() %>%
tab_header(title = md("Tabla N°3. Indicadores estadisticos de la variable vida util
estimada de los pozos de gas natural en Nuevo Mexico")) %>%
tab_style(
style = list(cell_fill(color = "lightgray"), cell_text(weight = "bold")),
locations = cells_title(groups = "title")
) %>%
cols_align(align = "center", columns = everything()) %>%
tab_source_note(
source_note = md("**Tabla 3 de 4**")
) %>%
tab_options(
column_labels.font.weight = "bold" # Subtítulos de columnas en negrita
)
| Tabla N°3. Indicadores estadisticos de la variable vida util
estimada de los pozos de gas natural en Nuevo Mexico |
| Variable |
minimo |
maximo |
x |
Me |
sd |
Cv |
As |
K |
| Vida Util Estimada |
25 |
73 |
51.86 |
50 |
6.3 |
12.14 |
0.51 |
5.89 |
| Tabla 3 de 4 |
#=====================TABLA DE OUTLIERS=====================
valores_atipicos <- boxplot.stats(vida_util)$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(Outliers = n_atipicos, Minimo = min_atipico, Maximo = max_atipico)
TablaOutliers %>%
gt() %>%
tab_header(title = md("Tabla N°4. Outliers de la variable vida util
estimada de los pozos de gas natural en Nuevo Mexico")) %>%
tab_style(
style = list(cell_fill(color = "lightgray"), cell_text(weight = "bold")),
locations = cells_title(groups = "title")
) %>%
cols_align(align = "center", columns = everything()) %>%
tab_source_note(
source_note = md("**Tabla 4 de 4**")
) %>%
tab_options(
column_labels.font.weight = "bold" # Subtítulos de columnas en negrita
)
| Tabla N°4. Outliers de la variable vida util
estimada de los pozos de gas natural en Nuevo Mexico |
| Outliers |
Minimo |
Maximo |
| 2352 |
25 |
73 |
| Tabla 4 de 4 |
6.CONCLUSIÓN
La variable vida útil estimada presenta
valores que fluctúan entre 25 y 73, con una concentración en torno a la
mediana de 50. La desviación estándar de 6.3 indica que se trata de un
conjunto homogéneo, a pesar de la presencia de 2352 valores atípicos
ubicados en el extremo derecho de la distribución. Esta concentración
central evidencia que más del 80% de los pozos proyectan una vida útil
en torno a los 50 años, un comportamiento altamente beneficioso ya que
una mayor longevidad optimiza la produccion