ANÁLISIS ESTADÍSTICO

1. CARGA DE LIBRERÍAS Y DATOS

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

# Clasificacion manual en rangos de 8 anos
vida_util <- datos$Estimated.lifetime
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°1. 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 = cells_body(rows = Intervalo == "TOTAL")
  ) %>%
  cols_align(align = "center", columns = everything()) %>%
  tab_options(table.width = pct(100), column_labels.font.weight = "bold")
Tabla N°1. 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

3. GRÁFICAS DE DISTRIBUCIÓN DE CANTIDAD

color_abs <- "#76D7C4" 
color_rel <- "#F1948A" 

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°1: Distribucion de cantidad de la vida util Estimada
        de los pozos de gas natural en Nuevo Mexico")

#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°2: Distribucion de cantidad de la vida util estimada
        de los pozos de gas natural en Nuevo Mexico")

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

#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°4: Distribucion de cantidad en porcentaje de la vida util estimada
        de los pozos de gas natural en Nuevo Mexico")

posicion_x <- 1:length(ni)

#Grafica 5: Ojivas Ni
plot(posicion_x, Ni_asc, type = "o", pch = 19, col = "blue", xaxt = "n", 
     xlab = "Vida util Estimada", ylab = "Cantidad acumulada",
     main = "Grafica N°5: 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 = 18, col = "red")
legend("right", legend = c("Ascendente", "Descendente"), col = c("blue", "red"), pch = c(19, 18), bty = "n")

#Grafica 6: Ojivas Hi
plot(posicion_x, Hi_asc, type = "o", pch = 19, col = "blue", xaxt = "n", ylim = c(0, 100), 
     xlab = "Vida util Estimada", ylab = "Porcentaje acumulado",
     main = "Grafica N°6: 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 = 18, col = "black")
legend("right", legend = c("Ascendente", "Descendente"), col = c("blue", "black"), pch = c(19, 18), bty = "n")

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

4. INDICADORES ESTADÍSTICOS

media_x <- mean(vida_util, na.rm = TRUE)
val_min <- min(vida_util, na.rm = TRUE)
val_max <- max(vida_util, na.rm = TRUE)
mediana_Me <- median(vida_util, na.rm = TRUE)
desv_estandar <- sd(vida_util, na.rm = TRUE)
coef_variacion <- ((desv_estandar / media_x) * 100)
asimetria_As <- skewness(vida_util, na.rm = TRUE)
curtosis_K <- kurtosis(vida_util, na.rm = TRUE)

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")) %>%
  cols_align(align = "center", columns = everything())
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
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")) %>%
  cols_align(align = "center", columns = everything())
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

6.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 vida util estimada 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 pozos tienen una proyeccion de vida extensa. ",
  "Por todo lo anterior mencionado, el comportamiento de la variable es medianamente beneficioso, ",
  "debido a que una vida util prolongada permite una mejor amortizacion de los costos de perforacion ",
  "y una planificacion mas estable de la produccion energetica a largo plazo."
))
## La variable vida util estimada presenta valores que fluctuan entre 25 y 73, con una concentracion en torno a la mediana de 50. La desviacion estandar de 6.3 indica que se trata de un conjunto homogeneo, influenciado por la presencia de 2352 valores atipicos ubicados en el extremo derecho de la distribucion. La acumulacion de valores se encuentra en la parte alta de la variable, lo que evidencia que la mayoria de los pozos tienen una proyeccion de vida extensa. Por todo lo anterior mencionado, el comportamiento de la variable es medianamente beneficioso, debido a que una vida util prolongada permite una mejor amortizacion de los costos de perforacion y una planificacion mas estable de la produccion energetica a largo plazo.