ANÁLISIS ESTADÍSTICO

1. CARGA DE LIBRERÍAS Y DATOS

                    #==============================ENCABEZADO================================
                    # TEMA: ESTADÍSTICA INFERENCIAL- COMPLEJIDAD DE LA ESTRUCTURA DE REVESTIMIENTO
                    # AUTOR: GRUPO 3
                    # FECHA: 03-2026
                    #========================================================================
library(dplyr)
library(gt)
library(knitr)

setwd("C:/Users/HP/Documents/PROYECTO ESTADISTICA/RStudio")
datos <- read.csv("tablap.csv", header = TRUE, dec = ",", sep = ";")

2. TABLA DE DISTRIBUCIÓN DE PROBABILIDAD

casing_raw <- datos$Complexity.of.the.casing.structure
casing_raw <- casing_raw[!is.na(casing_raw)]
Complejidad_Ori <- factor(casing_raw, levels = 0:7, ordered = TRUE)
ni_ori <- table(Complejidad_Ori)
hi_ori <- round(prop.table(ni_ori) * 100, 2)

tabla_base_n <- data.frame(
  Nivel = names(ni_ori),
  ni    = as.numeric(ni_ori),
  hi    = as.numeric(hi_ori)
)

fila_total_n <- data.frame(Nivel = "TOTAL", ni = sum(tabla_base_n$ni), hi = 100)
tabla_final_n <- rbind(tabla_base_n, fila_total_n)
Tabla Nº1. Distribución de probabilidad de Complejidad de estructura de revestimiento en las cuencas de gas natural en Nuevo México
Nivel de Complejidad ni hi (%)
0 2476 19.71
1 33 0.26
2 5383 42.85
3 4138 32.94
4 503 4.00
5 25 0.20
6 2 0.02
7 1 0.01
TOTAL 12561 100.00
Tabla 1 de 3

3. TABLA DE DISTRIBUCIÓN DE PROBABILIDAD AGRUPADA

Comp_Texto <- as.character(casing_raw)

# 1. CLASIFICACIÓN MEDIANTE BUCLE FOR E IF-ELSE
for (i in 1:length(Comp_Texto)) {
  if (Comp_Texto[i] %in% c("0", "1", "2")) {
    Comp_Texto[i] <- "Baja"
  } else if (Comp_Texto[i] %in% c("3", "4", "5")) {
    Comp_Texto[i] <- "Media"
  } else if (Comp_Texto[i] %in% c("6", "7")) {
    Comp_Texto[i] <- "Alta"
  }
}

# 2. CONVERSION A FACTOR ORDENADO
Comp_Factor <- factor(Comp_Texto, levels = c("Baja", "Media", "Alta"), ordered = TRUE)

# 3. GENERACIÓN DE FRECUENCIAS
ni_ag <- table(Comp_Factor)
hi_ag <- round(prop.table(ni_ag) * 100, 2)

tabla_base_ag <- data.frame(
  Nivel = names(ni_ag),
  ni    = as.numeric(ni_ag),
  hi    = as.numeric(hi_ag)
)

# 4. CRITERIO NUMÉRICO ORDINAL
tabla_base_ag$Nivel_num <- NA

for (i in 1:nrow(tabla_base_ag)) {
  if (tabla_base_ag$Nivel[i] == "Baja") {
    tabla_base_ag$Nivel_num[i] <- 0
  } else if (tabla_base_ag$Nivel[i] == "Media") {
    tabla_base_ag$Nivel_num[i] <- 1
  } else if (tabla_base_ag$Nivel[i] == "Alta") {
    tabla_base_ag$Nivel_num[i] <- 2
  }
}

# 5. CREACIÓN DE FILA TOTAL
fila_total_ag <- data.frame(
  Nivel = "TOTAL", 
  ni = sum(tabla_base_ag$ni), 
  hi = 100,
  Nivel_num = NA
)

tabla_final_ag <- rbind(tabla_base_ag, fila_total_ag)
Tabla Nº2. Distribución de probabilidad de Complejidad de estructura de revestimiento en las cuencas de gas natural en Nuevo México
Clasificación ni hi (%)
Baja 7892 62.83
Media 4666 37.15
Alta 3 0.02
TOTAL 12561 100.00
Tabla 2 de 3

4. GRÁFICAS DE DISTRIBUCIÓN DE PROBABILIDAD

par(oma = c(1, 1, 1, 1))
par(mfrow=c(1,1))

barplot(tabla_base_n$hi, main = "Gráfica Nº1. Distribución de probabilidad de
  Complejidad de estructura de revestimiento en las cuencas de gas 
  natural en Nuevo México",
        xlab = "Nivel de Complejidad", ylab = "Probabilidad (%)", col = "gray", names.arg = 0:7, ylim = c(0, 100))
box(which = "outer", col = "black")

barplot(tabla_base_ag$hi, main = "Gráfica Nº2. Distribución de probabilidad de
  Complejidad de estructura de revestimiento en las cuencas de gas 
  natural en Nuevo México",
        xlab = "Clasificación", ylab = "Probabilidad (%)", col = "skyblue", 
        names.arg = tabla_base_ag$Nivel, ylim = c(0, 100))
box(which = "outer", col = "black")

5. CONJETURA DE MODELO

# 1. Tamaño muestral total (Suma de todos los pozos analizados)
n <- sum(tabla_base_ag$ni)
n
## [1] 12561
# 2. Frecuencias absolutas observadas (El conteo de pozos por cada nivel)
x <- tabla_base_ag$ni
x
## [1] 7892 4666    3
# 3. Variable aleatoria discreta (Valores numéricos de los niveles: 0, 1, 2)
X_val <- tabla_base_ag$Nivel_num
X_val
## [1] 0 1 2
# 4. Media muestral ponderada (El promedio del nivel de complejidad observado)
media_observada <- sum(X_val * x) / n
media_observada
## [1] 0.3719449
# 5. Estimación del parámetro p (Probabilidad de éxito del modelo geométrico)
p_param <- 1 / (media_observada + 1)
p_param
## [1] 0.7288922
# 6. Cálculo de la probabilidad teórica mediante la distribución geométrica
P_geometrica <- dgeom(X_val, prob = p_param)
P_geometrica
## [1] 0.72889224 0.19760834 0.05357315
# 7. Frecuencias Observadas en porcentaje (Porcentaje real de datos en la muestra)
Fo <- (tabla_base_ag$ni / n) * 100
Fo
## [1] 62.82939256 37.14672399  0.02388345
# 8. Frecuencias Esperadas en porcentaje (Porcentaje teórico que predice el modelo)
Fe <- P_geometrica * 100
Fe
## [1] 72.889224 19.760834  5.357315
par(oma = c(1, 1, 1, 1))

barplot(rbind(Fo, Fe), beside = TRUE, col = c("skyblue", "darkgreen"),
        names.arg = tabla_base_ag$Nivel, 
        main = "Gráfica Nº3. Comparación de la realidad con el modelo
        geométrico del nivel de complejidad de los pozos de 
        gas natural en Nuevo México",
        ylab = "Probabilidad (%)", xlab = "Nivel de Complejidad", ylim = c(0, 100))
legend("right", legend = c("Realidad", "Modelo"), fill = c("skyblue", "darkgreen"), cex = 1)
box(which = "outer", col = "black")

6. TEST DE APROBACIÓN

par(oma = c(1, 1, 1, 1))
plot(Fo, Fe,
     xlim = c(0, max(Fo)),
     ylim = c(0, max(Fe)),
     main = "Gráfica Nº4. Correlación de frecuencias",
     xlab = "Frecuencia Observada (%)",
     ylab = "Frecuencia Esperada (%)",
     pch = 19,
     col = "darkblue")

abline(a = 0, b = 1, col = "red", lwd = 2)
box(which = "outer", col = "black")

Correlacion_pearson <- cor(Fo, Fe) * 100
Correlacion_pearson
## [1] 91.12476
K <- length(x)
gl <- K - 1
x2 <- sum((Fo - Fe)^2 / Fe)
x2
## [1] 21.99444
vc <- qchisq(0.99999, gl) 
vc
## [1] 23.02585
# TABLA DE RESUMEN
tabla_resumen_data <- data.frame(
  Variable = "Complejidad",
  Pearson = round(Correlacion_pearson, 2),
  Chi2 = round(x2, 2),
  Umbral = round(vc, 2)
)
Tabla Nº3. Resumen de test de bondad al modelo de probabilidad
Variable Pearson (%) Chi Cuadrado Umbral de aceptación
Complejidad 91.12 21.99 23.03
Tabla 3 de 3

7. CÁLCULO DE PROBABILIDADES

prob_baja_geom <- round(dgeom(0, p_param) * 100, 2)

8. CONCLUSIÓN

La variable complejidad se explica a través de un modelo geométrico, aprobando satisfactoriamente los test de bondad de ajuste de Pearson (91.1%) y Chi-cuadrado(cuyo valor de 21.99 es menor al umbral de aceptacion). De esta manera, el modelo es estadísticamente válido para calcular probabilidades.