ANÁLISIS ESTADÍSTICO

1. CARGA DE LIBRERÍAS Y DATOS

#==============================ENCABEZADO================================
# TEMA: MODELOS PROBABILISTICOS- DISTANCIA ESTIMADA
# AUTOR: GRUPO 3
# FECHA: 03-2026
#========================================================================
library(dplyr)
library(knitr)
library(gt)

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

2. GRÁFICA Y TABLA DE DISTRIBUCIÓN DE FRECUENCIA

distance <- as.numeric(datos$Distance.estimation)
distance <- na.omit(distance)

histograma_dist <- hist(distance,
                        main = "Gráfica Nº1: Distribución de la Distancia
                        Estimada de los pozos de gas natural",
                        xlab = "Distancia Estimada",
                        ylab = "Cantidad",
                        col = "gray")

lis <- histograma_dist$breaks[-length(histograma_dist$breaks)]
lss <- histograma_dist$breaks[-1]
MC_f <- histograma_dist$mids
ni_f <- histograma_dist$counts
hi_f <- (ni_f / sum(ni_f)) * 100
TDFlat_f <- round(data.frame(lis, lss, MC_f, ni_f, hi_f), 2)

fila_total_f <- data.frame(
  lis = "TOTAL",
  lss = " ",
  MC_f = " ",
  ni_f = sum(ni_f),
  hi_f = round(sum(hi_f), 2)
)
Tabla Nº1: Distribución de cantidad de la Distancia Estimada de los pozos de gas natural
Limite inferior Limite superior Marca de Clase ni hi (%)
0 20 10 1021 8.13
20 40 30 2125 16.92
40 60 50 2524 20.09
60 80 70 2395 19.07
80 100 90 1685 13.41
100 120 110 933 7.43
120 140 130 422 3.36
140 160 150 427 3.40
160 180 170 268 2.13
180 200 190 365 2.91
200 220 210 386 3.07
220 240 230 10 0.08
TOTAL 12561 100.00
Las unidades de medida estan en: metros

3. CONJETURA DEL MODELO

Debido a la similitud de las barras asociamos con el modelo de probabilidad Normal

par(oma = c(1, 1, 1, 1))
#media
u_1 <- mean(distance)
u_1
## [1] 74.86054
#sigma 
sigma_1 <- sd(distance)
sigma_1
## [1] 48.80406
n1 <- length(distance)


hist(distance,
     freq = FALSE,
     breaks = 20,
     main = "Gráfica Nº2: Comparación de la realidad con el modelo de
     probabilidad normal en la Distancia Estimada de los pozos de gas 
     natural",
     xlab = "Distancia Estimada",
     ylab = "Densidad de probabilidad",
     col = "lightgray",
     border = "black")
box(which = "outer", col = "black")

x <- seq(min(distance), max(distance), 0.01)
curve(dnorm(x, u_1, sigma_1), col = "blue", lwd = 2, add = TRUE)

#GRAFICA FO Y FE
Fo_1 <- histograma_dist$counts
P1 <- numeric(length(Fo_1))
for (i in 1:length(Fo_1)) {
  P1[i] <- pnorm(histograma_dist$breaks[i+1], u_1, sigma_1) -
    pnorm(histograma_dist$breaks[i], u_1, sigma_1)
}
Fe_1 <- P1 * n1
Fo_1 <- (Fo_1 / n1) * 100
Fo_1
##  [1]  8.1283337 16.9174429 20.0939416 19.0669533 13.4145371  7.4277526
##  [7]  3.3596051  3.3994109  2.1335881  2.9058196  3.0730037  0.0796115
Fe_1 <- (Fe_1 / n1) * 100
Fe_1
##  [1]  6.7958606 10.7036354 14.2853686 16.1558490 15.4827612 12.5732227
##  [7]  8.6520859  5.0450416  2.4926964  1.0435738  0.3701793  0.1112551
plot(Fo_1, Fe_1,
     main = "Grafica Nro.3: Correlacion de frecuencias en el modelo normal
                 de la Distancia Estimada de los pozos de gas natural",
     xlab = "Frecuencia observada (%)",
     ylab = "Frecuencia esperada (%)",
     col = "blue3")
abline(lm(Fe_1 ~ Fo_1), col = "red", lwd = 2)
box(which = "outer", col = "black")

4. TESTS DE APROBACIÓN

TEST DE PEARSON

Correlacion_1 <- cor(Fo_1, Fe_1) * 100
Correlacion_1
## [1] 85.59135

TEST DE CHI-CUADRADO

x2_1 <- sum((Fe_1 - Fo_1)^2 / Fe_1)
x2_1
## [1] 36.02943

UMBRAL DE ACEPTACION

grados_libertad_1 <- length(Fo_1) - 1
umbral_aceptacion_1 <- qchisq(0.9999, grados_libertad_1)
umbral_aceptacion_1
## [1] 37.36699
tabla_resumen <- data.frame(
  Variable = "Distancia Estimada",
  Pearson = round(Correlacion_1, 2),
  Chi = round(x2_1, 2),
  Umbral = round(umbral_aceptacion_1, 2)
)
Tabla Nº2: Resumen del test de bondad de ajuste al modelo normal
Variable Test Pearson (%) Chi Cuadrado Umbral de aceptacion
Distancia Estimada 85.59 36.03 37.37

5. CÁLCULO DE PROBABILIDADES

par(oma = c(1, 1, 1, 1))
#GENERAMOS LA PREGUNTA DE PROBABILIDAD
plot.new()
plot.window(xlim = c(0, 100), ylim = c(0, 100))

# Dibujo
text(50, 55, "¿Cuál es la probabilidad de que la Distancia 
     Estimada se encuentre entre 10 y 50 unidades?", cex = 1.25, font = 2) 
rect(0, 25, 103, 85, border = "#2A9D8F", lwd = 3)

box(which = "outer", col = "black")

Probabilidad_1 <- (pnorm(50, u_1, sigma_1) -
                     pnorm(10, u_1, sigma_1)) * 100
Probabilidad_1
## [1] 21.33135
#GRAFICA NORMAL
plot(x, dnorm(x, u_1, sigma_1),
     col = "skyblue3",
     lwd = 2,
     main = "Gráfica Nº4: Cálculo de probabilidades",
     ylab = "Densidad de probabilidad",
     xlab = "Distancia Estimada")

# Área de probabilidad
x_section <- seq(10, 50, 0.01)
y_section <- dnorm(x_section, u_1, sigma_1)

# Línea del área
lines(x_section, y_section, col = "red", lwd = 2)

# Área sombreada
polygon(c(x_section, rev(x_section)),
        c(y_section, rep(0, length(y_section))),
        col = rgb(1, 0, 0, 0.6))

legend("topright",
       legend = c("Modelo Normal", "Area de Probabilidad"),
       col = c("skyblue3", "red"),
       lwd = 2,
       cex = 0.9)

text(min(x)+15,
     max(dnorm(x, u_1, sigma_1)) * 0.9,
     paste0("Prob.= ",
            round(Probabilidad_1, 2), "%"),
     cex = 0.8,
     font = 2)

plot.new()
plot.window(xlim = c(0, 100), ylim = c(0, 100))

# Dibujo de la tarjeta (Borde y Fondo)
rect(2, 20, 98, 80, border = "#2A9D8F", col = "#F0F9F8", lwd = 3)
# Texto de la pregunta
text(52, 55, "¿De 30 nuevas mediciones cuántas tendrían 
     una Distancia de entre 10 y 50 metros?", cex = 1.2, font = 2, col = "#1D3557")
box(which = "outer", col = "black")

Cantidad esperada en una muestra de 30:

Probabilidad_1 * 30
## [1] 639.9406

6. INTERVALOS DE CONFIANZA

# Media aritmetica
x_m <- mean(distance)
x_m
## [1] 74.86054
# Desviacion estandar
sigma <- sd(distance)
sigma
## [1] 48.80406
# Tamano muestral
n <- length(distance)
n
## [1] 12561
# Error estandar (sigma / sqrt(n))
e <- sigma / sqrt(n)
e
## [1] 0.4354556
# Intervalo de confianza aproximado
li <- x_m - 2 * e
li
## [1] 73.98963
ls <- x_m + 2 * e
ls
## [1] 75.73145
tabla_media <- data.frame(
  Limite_Inferior = round(li, 2),
  Media_Poblacional = "Distancia Estimada",
  Limite_Superior = round(ls, 2),
  Error_Estandar = round(e, 4)
)
Tabla Nº3: Intervalo de confianza para la media poblacional
Límite inferior Media poblacional Límite superior Error estándar poblacional
73.99 Distancia Estimada 75.73 0.4355

7. CONCLUSIÓN

La variable Distancia estimada se ajusta adecuadamente a un modelo de distribucion normal, con una media aritmetica de 74.86 puntos y una desviacion estandar de 48.86 puntos, lo que indica una concentracion de los valores en torno a este nivel.

A partir del modelo normal, se determino que la probabilidad de que la Distancia estimada se encuentre entre 10 y 50 es de aproximadamente 21.33 %, lo que refleja la frecuencia de estos valores. Finalmente, mediante la aplicacion del Teorema del Limite Central y considerando un tamano muestral de 12561 observaciones, se estimo que la media poblacional de la Distancia estimada se encuentra entre 73.99 y 75.73 puntos, con un 95 % de confianza, lo que respalda la validez de las inferencias realizadas bajo el modelo normal.