ANÁLISIS ESTADÍSTICO
1. CARGA DE LIBRERÍAS Y DATOS
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 DISTRIBUCIÓN DE FRECUENCIAS
inicio <- datos$Spud.Initiation.year
# REGLA DE STURGES
n <- length(na.omit(inicio))
k_sturges <- 1 + (3.322 * log10(n))
k_sturges
## [1] 14.61696
# Sturges dio un resultado de 14, por lo tanto se considero usar un
# bucle for para reducir el numero de intervalos
# PROCESAMIENTO 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°1: Distribución de cantidad de los años 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 = cells_body(
rows = Intervalo == "TOTAL"
)
) %>%
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"
)
tabla_gt
| Tabla N°1: Distribución de cantidad de los años 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 |
|
|
|
|
3. GRÁFICAS DE DISTRIBUCIÓN DE FRECUENCIAS
par(mar = c(7, 4, 4, 2) + 0.1)
barplot(ni, names.arg = orden_intervalos, las = 2, col = "skyblue",
xlab = "Año de inicio de Perforacion",ylab = "Cantidad",
main = "Gráfica Nº1: Distribución de cantidad de los años de
inicio de perforación de los pozos de gas natural
en Nuevo México")

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º2: Distribución de cantidad de los años de
inicio de perforación de los pozos de gas natural
en Nuevo México")

barplot(hi, names.arg = orden_intervalos, las = 2, col = "lightgreen",
xlab = "Año de inicio de Perforacion",ylab = "Porcentaje (%)",
main = "Gráfica Nº3: 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")

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º4: Relativa Global 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")

# OJIVAS (Ni)
posicion_x <- 1:length(ni)
plot(posicion_x, Ni_asc, type = "o", pch = 19, col = "blue",
xaxt = "n", main = "Grafica Nº5: Ojiva combinada de los años 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 = 18, col = "red")

# OJIVAS (Hi)
plot(posicion_x, Hi_asc, type = "o", pch = 19, col = "blue",
xaxt = "n", ylim = c(0, 100),
main = "Grafica Nº6: Ojiva combinada de los años 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 = 18, col = "black")

#BLOXPLOT
boxplot(inicio, horizontal = TRUE, col = "lightblue",
main = "Gráfica Nº7: Distribucion de cantidad de los años de inicio
de perforacion de los pozos de gas natural en Nuevo Mexico")

4. INDICADORES ESTADÍSTICOS Y OUTLIERS
summary(inicio)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 1950 1978 1997 1990 2005 2020
media_x <- mean(inicio, na.rm = TRUE)
val_min <- min(inicio, na.rm = TRUE)
val_max <- max(inicio, na.rm = TRUE)
mediana_Me <- median(inicio, na.rm = TRUE)
desv_estandar <- sd(inicio, na.rm = TRUE)
coef_variacion <- ((desv_estandar / media_x) * 100)
asimetria_As <- skewness(inicio, na.rm = TRUE)
curtosis_K <- kurtosis(inicio, na.rm = TRUE)
# 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")
) %>%
cols_align(align = "center", columns = everything()) %>%
tab_options(
table.width = pct(80),
heading.title.font.weight = "bold",
column_labels.font.weight = "bold"
)
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 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")
) %>%
cols_align(align = "center", columns = everything()) %>%
tab_options(
table.width = pct(80),
heading.title.font.weight = "bold",
column_labels.font.weight = "bold"
)
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 |
5. CONCLUSIÓN
tipo_datos <- if(coef_variacion > 30) "heterogeneo" else "homogeneo"
ubicacion_atipicos <- if(asimetria_As < 0) "extremo izquierdo" else "extremo derecho"
cat(paste0(
"La variable anio de inicio presenta valores que fluctuan entre ", val_min, " y ", val_max,
", con una concentracion en torno a la mediana de ", mediana_Me, ". ",
"La desviacion estandar de ", round(desv_estandar, 2), " indica que se trata de un conjunto ", tipo_datos,
", influenciado por la presencia de ", n_atipicos, " valores atipicos ubicados en el ", ubicacion_atipicos,
" de la distribucion. La acumulacion de valores se encuentra en la parte alta de la variable, ",
"lo que evidencia que la mayoria de los inicios se realizaron en periodos recientes. ",
"Por todo lo anterior mencionado, el comportamiento de la variable es medianamente beneficioso, ",
"debido a que los registros modernos cuentan con informacion geologica mas confiable y mejor documentada."
))
## La variable anio de inicio presenta valores que fluctuan entre 1950 y 2020, con una concentracion en torno a la mediana de 1997. La desviacion estandar de 17.33 indica que se trata de un conjunto homogeneo, influenciado por la presencia de 0 valores atipicos ubicados en el extremo izquierdo de la distribucion. La acumulacion de valores se encuentra en la parte alta de la variable, lo que evidencia que la mayoria de los inicios se realizaron en periodos recientes. Por todo lo anterior mencionado, el comportamiento de la variable es medianamente beneficioso, debido a que los registros modernos cuentan con informacion geologica mas confiable y mejor documentada.