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

# 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)

# Aplicación de gt
tabla_gt1 <- tabla_final_n %>% 
  gt() %>%
  cols_label(Nivel = "Nivel", ni = "ni", hi = "hi (%)") %>%
  tab_header(title = md("**Tabla Nº1. Distribución de probabilidad de 
  Complejidad de estructura de revestimiento en las cuencas de gas 
  natural en Nuevo México**")) %>%
  tab_style(
    style = list(cell_fill(color = "lightgray"), cell_text(weight = "bold")),
    locations = cells_body(rows = Nivel == "TOTAL")
  ) %>%
  cols_align(align = "center", columns = c(ni, hi)) %>%
  tab_options(table.width = pct(80), heading.title.font.weight = "bold", column_labels.font.weight = "bold")

tabla_gt1
Tabla Nº1. Distribución de probabilidad de Complejidad de estructura de revestimiento en las cuencas de gas natural en Nuevo México
Nivel 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

3. TABLA DE DISTRIBUCIÓN DE PROBABILIDAD AGRUPADA

# TABLA DE DISTRIBUCIÓN DE PROBABILIDAD AGRUPADA
Comp_Texto <- as.character(casing_raw)

# Clasificación mediante sustitución
Comp_Texto <- gsub("^0$|^1$|^2$", "Baja", Comp_Texto)
Comp_Texto <- gsub("^3$|^4$|^5$", "Media", Comp_Texto)
Comp_Texto <- gsub("^6$|^7$", "Alta", Comp_Texto)

Comp_Factor <- factor(Comp_Texto, levels = c("Baja", "Media", "Alta"), ordered = TRUE)

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)
)

# Criterio Numérico Ordinal
tabla_base_ag$Nivel_num <- NA
tabla_base_ag$Nivel_num[tabla_base_ag$Nivel == "Baja"] <- 0
tabla_base_ag$Nivel_num[tabla_base_ag$Nivel == "Media"] <- 1
tabla_base_ag$Nivel_num[tabla_base_ag$Nivel == "Alta"] <- 2

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)

# Aplicación de gt
tabla_gt2 <- tabla_final_ag %>% 
  gt() %>%
  cols_hide(columns = Nivel_num) %>% 
  cols_label(Nivel = "Clasificación", ni = "ni", hi = "hi (%)") %>%
  tab_header(title = md("**Tabla Nº2. Distribución de probabilidad de 
  Complejidad de estructura de revestimiento en las cuencas de gas 
  natural en Nuevo México**")) %>%
  tab_style(
    style = list(cell_fill(color = "lightgray"), cell_text(weight = "bold")),
    locations = cells_body(rows = Nivel == "TOTAL")
  ) %>%
  cols_align(align = "center", columns = c(ni, hi)) %>%
  tab_options(table.width = pct(80), heading.title.font.weight = "bold", column_labels.font.weight = "bold")

tabla_gt2
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

4. GRÁFICAS DE DISTRIBUCIÓN DE PROBABILIDAD

# GRÁFICAS DE DISTRIBUCIÓN DE PROBABILIDAD
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 = "Niveles", ylab = "Probabilidad (%)", col = "gray", names.arg = 0:7, ylim = c(0, 100))

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))

5. CONJETURA DE MODELO

# 5. CONJETURA DEL MODELO 
n <- sum(tabla_base_ag$ni)
n
## [1] 12561
x <- tabla_base_ag$ni
x
## [1] 7892 4666    3
X_val <- tabla_base_ag$Nivel_num
media_observada <- sum(X_val * x) / n
media_observada
## [1] 0.3719449
p_param <- 1 / (media_observada + 1)
p_param
## [1] 0.7288922
P_geometrica <- dgeom(X_val, prob = p_param)
P_geometrica
## [1] 0.72889224 0.19760834 0.05357315
Fo <- (tabla_base_ag$ni / n) * 100
Fo
## [1] 62.82939256 37.14672399  0.02388345
Fe <- P_geometrica * 100
Fe
## [1] 72.889224 19.760834  5.357315
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 de la complejidad de estructura
        de revestimiento de los pozos de gas natural en Nuevo México",
        ylab = "Probabilidad (%)", xlab = "Complejidad", ylim = c(0, 100))
legend("topright", legend = c("Realidad", "Modelo"), fill = c("skyblue", "darkgreen"), cex = 0.8)

6. TEST DE APROBACIÓN

#========================== TESTS DE APROBACIÓN =========================
# Test de Pearson
# Test de Pearson
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)

# Cálculos
Correlacion_pearson <- cor(Fo, Fe) * 100
K <- length(x)
gl <- K - 1
x2 <- sum((Fo - Fe)^2 / Fe)
vc <- qchisq(0.99999, gl) 

# TABLA DE RESUMEN ÚNICA
tabla_resumen_data <- data.frame(
  Variable = "Complejidad",
  Pearson = round(Correlacion_pearson, 2),
  Chi2 = round(x2, 2),
  Umbral = round(vc, 2)
)

# Aplicación de gt
tabla_gt_final <- tabla_resumen_data %>%
  gt() %>%
  cols_label(
    Pearson = "Pearson (%)", 
    Chi2 = "Chi Cuadrado", 
    Umbral = "Umbral de aceptación"
  ) %>%
  tab_header(
    title = md("**Tabla Nº3. Resumen de test de bondad al modelo de probabilidad**")
  ) %>%
  tab_options(
    table.width = pct(80), 
    heading.title.font.weight = "bold", 
    column_labels.font.weight = "bold"
  )

# Imprimir la tabla
tabla_gt_final
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

7. CÁLCULO DE PROBABILIDADES

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

plot.new()
plot.window(xlim = c(0, 100), ylim = c(0, 1))
rect(10, 0.4, 90, 0.6, col = "#E5E7E9", border = NA)
ancho_barra_comp <- (prob_baja_geom / 100) * 80
rect(10, 0.4, 10 + ancho_barra_comp, 0.6, col = "#A9CCE3", border = NA)
text(50, 0.85, "CÁLCULO DE PROBABILIDAD", cex = 1.5, font = 2, col = "#2A9D8F")
text(50, 0.75, "¿Qué clasificación de complejidad presenta la mayor probabilidad", cex = 1.2, font = 3)
text(50, 0.65, "según el modelo geométrico propuesto?", cex = 1.2, font = 3)
text(10 + ancho_barra_comp/2, 0.5, paste0(prob_baja_geom, "%"), cex = 1.6, font = 2, col = "black")
text(50, 0.25, paste("R: Baja"), cex = 1.4, font = 2, col = "#1F618D")
rect(10, 0.4, 90, 0.6, border = "#2A9D8F", lwd = 2)

8. CONCLUSIÓN

# 8. CONCLUSIÓN
cat(paste0("Conclusión: La variable complejidad del revestimiento se ajusta a un modelo geométrico. ",
           "El modelo es válido (x2 < vc): ", x2 < vc))
## Conclusión: La variable complejidad del revestimiento se ajusta a un modelo geométrico. El modelo es válido (x2 < vc): TRUE