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