ANÁLISIS ESTADÍSTICO
1. CARGA DE LIBRERÍAS Y DATOS
#==============================ENCABEZADO================================
# TEMA: ESTADÍSTICA DESCRIPTIVA - INICIO DE PERFORACION
# AUTOR: GRUPO 3
# FECHA: 03-2026
#========================================================================
library(dplyr)
library(e1071)
library(gt)
setwd("C:/Users/HP/Documents/PROYECTO ESTADISTICA/RStudio")
datos <- read.csv("tablap.csv", header = TRUE, dec = ",", sep = ";")
2. TABLA DE DISTRIBUCION DE CANTIDAD CON
STURGES
inicio <- datos$Spud.Initiation.year
n_inicio <- length(na.omit(inicio))
k_sturges_inicio <- 1 + (3.322 * log10(n_inicio))
k_sturges_inicio
## [1] 14.61696
clasificacion_sturges_inicio <- cut(inicio, breaks = k_sturges_inicio, right = FALSE)
# Calculos de frecuencias para Sturges
ni_sturges_inicio <- table(clasificacion_sturges_inicio)
total_datos_sturges_inicio <- sum(ni_sturges_inicio)
hi_sturges_inicio <- round(as.numeric(ni_sturges_inicio) / total_datos_sturges_inicio * 100, 2)
# Construccion de la Tabla Sturges
TDF_Sturges_inicio <- data.frame(
Intervalo = gsub(",", " - ", names(ni_sturges_inicio)),
ni = as.numeric(ni_sturges_inicio),
hi = hi_sturges_inicio
)
TDF_Final_Sturges_inicio <- rbind(
TDF_Sturges_inicio,
data.frame(Intervalo="TOTAL", ni=total_datos_sturges_inicio, hi=100)
)
# Renderizar Tabla Sturges con gt()
TDF_Final_Sturges_inicio %>%
gt() %>%
tab_header(title = md("Tabla N°1. Tabla de distribucion del año de inicio de perforacion 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 del año de inicio de perforacion de los pozos de gas natural en Nuevo Mexico |
| Intervalo |
ni |
hi |
| [1950 - 1955) |
351 |
2.79 |
| [1955 - 1960) |
779 |
6.20 |
| [1960 - 1965) |
480 |
3.82 |
| [1965 - 1970) |
393 |
3.13 |
| [1970 - 1975) |
392 |
3.12 |
| [1975 - 1980) |
1024 |
8.15 |
| [1980 - 1985) |
1237 |
9.85 |
| [1985 - 1990) |
504 |
4.01 |
| [1990 - 1995) |
737 |
5.87 |
| [1995 - 2000) |
950 |
7.56 |
| [2000 - 2005) |
2553 |
20.32 |
| [2005 - 2010) |
2670 |
21.26 |
| [2010 - 2015) |
324 |
2.58 |
| [2015 - 2020) |
167 |
1.33 |
| TOTAL |
12561 |
100.00 |
| Tabla 1 de 4 |
# Grafica con sturges
par(mar = c(8.5, 4.1, 4.1, 2.1))
barplot(ni_sturges_inicio,
names.arg = gsub(",", " - ", names(ni_sturges_inicio)),
las = 2,
col = "darkgrey",
ylim = c(0, max(ni_sturges_inicio) + 2),
xlab = "Ano de Inicio de Perforacion",
ylab = "Cantidad",
main = "Grafica N°1: Distribucion de cantidad del año de inicio de
perforacion 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 Sturges generada 14 intervalos y
la gráfica presentaba 14 barras, la hemos simplificado usando un bucle
For
inicio <- datos$Spud.Initiation.year
# CLASIFICACION CON BUCLE FOR
clasificacion <- character(length(inicio))
for(i in seq_along(inicio)){
if(inicio[i] >= 1950 & inicio[i] < 1960){
clasificacion[i] <- "1950-1959"
} else if(inicio[i] >= 1960 & inicio[i] < 1970){
clasificacion[i] <- "1960-1969"
} else if(inicio[i] >= 1970 & inicio[i] < 1980){
clasificacion[i] <- "1970-1979"
} else if(inicio[i] >= 1980 & inicio[i] < 1990){
clasificacion[i] <- "1980-1989"
} else if(inicio[i] >= 1990 & inicio[i] < 2000){
clasificacion[i] <- "1990-1999"
} else if(inicio[i] >= 2000 & inicio[i] < 2010){
clasificacion[i] <- "2000-2009"
} else if(inicio[i] >= 2010 & inicio[i] < 2020){
clasificacion[i] <- "2010-2019"
} else if(inicio[i] >= 2020 & inicio[i] <= 2030){
clasificacion[i] <- "2020-2029"
} else {
clasificacion[i] <- NA
}
}
clasificacion <- na.omit(clasificacion)
orden_intervalos <- c("1950-1959", "1960-1969", "1970-1979", "1980-1989",
"1990-1999", "2000-2009", "2010-2019", "2020-2029")
clasificacion <- factor(clasificacion, levels = orden_intervalos)
# CÁLCULO 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 DE DISTRIBUCIÓN DE FRECUENCIAS
tabla_base <- 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))
fila_total <- data.frame(Intervalo = "TOTAL", ni = total_datos, hi = 100,
Ni_asc = NA, Hi_asc = NA, Ni_des = NA, Hi_des = NA)
TDF_Final_gt <- rbind(tabla_base, fila_total)
tabla_gt <- TDF_Final_gt %>%
gt() %>%
cols_label(
Intervalo = "Intervalo",
ni = "ni",
hi = "hi",
Ni_asc = "Ni_asc",
Hi_asc = "Hi_asc",
Ni_des = "Ni_des",
Hi_des = "Hi_des"
) %>%
tab_header(
title = md("Tabla N°2: Distribución de cantidad del año de inicio
de perforación de los pozos de gas natural en Nuevo México")
) %>%
sub_missing(columns = everything(), missing_text = " ") %>%
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 = c(ni, hi, Ni_asc, Hi_asc, Ni_des, Hi_des)
) %>%
tab_options(
table.width = pct(80),
heading.title.font.size = px(20),
heading.title.font.weight = "bold",
table.font.names = "Open Sans",
column_labels.font.weight = "bold"
)%>%
tab_source_note(
source_note = md("**Tabla 2 de 4** ")
)
tabla_gt
| Tabla N°2: Distribución de cantidad del año de inicio
de perforación de los pozos de gas natural en Nuevo México |
| Intervalo |
ni |
hi |
Ni_asc |
Hi_asc |
Ni_des |
Hi_des |
| 1950-1959 |
1130 |
9.00 |
1130 |
9.00 |
12561 |
100.00 |
| 1960-1969 |
873 |
6.95 |
2003 |
15.95 |
11431 |
91.00 |
| 1970-1979 |
1416 |
11.27 |
3419 |
27.22 |
10558 |
84.05 |
| 1980-1989 |
1741 |
13.86 |
5160 |
41.08 |
9142 |
72.78 |
| 1990-1999 |
1687 |
13.43 |
6847 |
54.51 |
7401 |
58.92 |
| 2000-2009 |
5223 |
41.58 |
12070 |
96.09 |
5714 |
45.49 |
| 2010-2019 |
477 |
3.80 |
12547 |
99.89 |
491 |
3.91 |
| 2020-2029 |
14 |
0.11 |
12561 |
100.00 |
14 |
0.11 |
| TOTAL |
12561 |
100.00 |
|
|
|
|
| Tabla 2 de 4 |
4. GRÁFICAS DE DISTRIBUCIÓN DE FRECUENCIAS
par(oma = c(1, 1, 1, 1))
#Grafica 1
barplot(ni, names.arg = orden_intervalos, las = 2, col = "skyblue",
xlab = "Año de inicio de Perforacion",ylab = "Cantidad",
main = "Gráfica Nº2: Distribución de cantidad de los años de
inicio de perforación de los pozos de gas natural
en Nuevo México")
box(which = "outer", col = "black")

#Grafica 2
barplot(ni, names.arg = orden_intervalos, las = 2, col = "darkgrey",
xlab = "Año de inicio de Perforacion",ylab = "Cantidad",
ylim = c(0, total_datos),
main = "Gráfica Nº3: Distribución de cantidad de los años de
inicio de perforación de los pozos de gas natural
en Nuevo México")
box(which = "outer", col = "black")

#Grafica 3
barplot(hi, names.arg = orden_intervalos, las = 2, col = "lightgreen",
xlab = "Año de inicio de Perforacion",ylab = "Porcentaje (%)",
main = "Gráfica Nº4: Distribución de cantidad en porcentaje de los años
de inicio de perforación de los pozos de gas natural
en Nuevo México")
box(which = "outer", col = "black")

#Grafica 4
barplot(hi, names.arg = orden_intervalos, las = 2, col = "grey50",
ylim = c(0, 100),
xlab = "Año de inicio de Perforacion",ylab = "Porcentaje (%)",
main = "Gráfica Nº5:Distribución de cantidad en
porcentaje de los años de inicio de perforación de los pozos
de gas natural en Nuevo México")
box(which = "outer", col = "black")

#Grafica 5
# OJIVAS (Ni)
posicion_x <- 1:length(ni)
plot(posicion_x, Ni_asc, type = "o", pch = 1, col = "blue",
xaxt = "n",
xlab= "Año de inicio de perforacion",
ylab="Cantidad acumulada (Ni)",
main = "Grafica Nº6: Ojiva combinada de los años de
inicio de perforación (Ni)")
axis(1, at = posicion_x, labels = orden_intervalos, las = 2,
cex.axis = 0.7)
lines(posicion_x, Ni_des, type = "o", pch = 1, col = "red")
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= "Año de inicio de perforacion",
ylab="Porcentaje acumulado (Hi)",
main = "Grafica Nº7: Ojiva combinada de los años de
inicio de perforación (Hi)")
axis(1, at = posicion_x, labels = orden_intervalos, las = 2, cex.axis = 0.7)
lines(posicion_x, Hi_des, type = "o", pch = 1, col = "red")
box(which = "outer", col = "black")

#Grafica 7
#BLOXPLOT
boxplot(inicio, horizontal = TRUE, col = "lightblue",
xlab="Año de inicio de perforacion",
main = "Gráfica Nº8: Distribucion de cantidad de los años de inicio
de perforacion de los pozos de gas natural en Nuevo Mexico")
box(which = "outer", col = "black")

summary(inicio)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 1950 1978 1997 1990 2005 2020
5. INDICADORES ESTADÍSTICOS Y OUTLIERS
#media
media_x <- mean(inicio, na.rm = TRUE)
media_x
## [1] 1990.086
#minimo
val_min <- min(inicio, na.rm = TRUE)
val_min
## [1] 1950
#maximo
val_max <- max(inicio, na.rm = TRUE)
val_max
## [1] 2020
#mediana
mediana_Me <- median(inicio, na.rm = TRUE)
mediana_Me
## [1] 1997
#desviacion estandar
desv_estandar <- sd(inicio, na.rm = TRUE)
desv_estandar
## [1] 17.32853
#coeficiente de variacion
coef_variacion <- ((desv_estandar / media_x) * 100)
coef_variacion
## [1] 0.8707429
#asimetria
asimetria_As <- skewness(inicio, na.rm = TRUE)
asimetria_As
## [1] -0.6891418
#curtosis
curtosis_K <- kurtosis(inicio, na.rm = TRUE)
curtosis_K
## [1] -0.7097994
# Tabla de Indicadores Estadísticos
Variable_Nombre <- "Año de inicio"
TablaIndicadores <- data.frame(Variable = Variable_Nombre,
minimo = val_min,
máximo = val_max,
x = round(media_x, 0),
Me = mediana_Me,
sd = round(desv_estandar, 2),
Cv = round(coef_variacion, 2),
As = round(asimetria_As, 2),
K = round(curtosis_K, 2))
tabla_indicadores_gt <- TablaIndicadores %>%
gt() %>%
tab_header(
title = md("Tabla N°3. Indicadores estadísticos de
la variable año de inicio de perforación")
) %>%
tab_style(
style = list(
cell_fill(color = "lightgray"),
cell_text(weight = "bold")
),
locations = cells_title(groups = "title")
) %>%
cols_align(align = "center", columns = everything()) %>%
tab_options(
table.width = pct(80),
heading.title.font.weight = "bold",
column_labels.font.weight = "bold"
)%>%
tab_source_note(
source_note = md("**Tabla 3 de 4**"))
tabla_indicadores_gt
| Tabla N°3. Indicadores estadísticos de
la variable año de inicio de perforación |
| Variable |
minimo |
máximo |
x |
Me |
sd |
Cv |
As |
K |
| Año de inicio |
1950 |
2020 |
1990 |
1997 |
17.33 |
0.87 |
-0.69 |
-0.71 |
| Tabla 3 de 4 |
# Tabla Outliers
valores_atipicos <- boxplot.stats(inicio)$out
n_atipicos <- length(valores_atipicos)
if(n_atipicos > 0) {
min_atipico <- min(valores_atipicos)
max_atipico <- max(valores_atipicos)
} else {
min_atipico <- 0
max_atipico <- 0
}
TablaOutliers <- data.frame(Outliers = n_atipicos, Mínimo = min_atipico, Máximo = max_atipico)
tabla_outliers_gt <- TablaOutliers %>%
gt() %>%
tab_header(
title = md("Tabla N°4: Outliers de la variable año de inicio de perforación")
) %>%
tab_style(
style = list(
cell_fill(color = "lightgray"),
cell_text(weight = "bold")
),
locations = cells_title(groups = "title")
) %>%
cols_align(align = "center", columns = everything()) %>%
tab_options(
table.width = pct(80),
heading.title.font.weight = "bold",
column_labels.font.weight = "bold"
)%>%
tab_source_note(
source_note = md("**Tabla 4 de 4**"))
tabla_outliers_gt
| Tabla N°4: Outliers de la variable año de inicio de perforación |
| Outliers |
Mínimo |
Máximo |
| 0 |
0 |
0 |
| Tabla 4 de 4 |
6. CONCLUSIÓN
La variable año de inicio presenta valores que
fluctúan entre 1950 y 2020, con una concentración en torno a la mediana
de 1997. La desviación estándar de 17.33 indica que se trata de un
conjunto con una dispersión moderada y una marcada asimetría a la
izquierda, respaldada por la total ausencia de valores atípicos. La
acumulación de registros se encuentra en la parte alta de la variable,
lo que evidencia que la gran mayoría de los inicios de perforación se
realizaron en periodos recientes (particularmente el auge observado
entre 2000 y 2009). Por todo lo anterior mencionado, el comportamiento
de la variable es medianamente beneficioso, debido a que los registros
modernos cuentan con información geológica más confiable y mejor
documentada