ANÁLISIS INFERENCIAL
CARGA DE DATOS Y LIBRERÍAS
#Limpiar entorno
rm(list = ls())
#Cargar librerías
if (!require("readr")) install.packages("readr")
if (!require("dplyr")) install.packages("dplyr")
if (!require("knitr")) install.packages("knitr")
if (!require("moments")) install.packages("moments")
library(readr)
library(dplyr)
library(knitr)
library(moments)
library(gt)
#Cargar datos
ruta <- "D:/geoquimica datos.csv"
datos <- read_csv(ruta)
#====================================================================
# LIMPIEZA DE LA VARIABLE
#====================================================================
anomalias <- as.numeric(datos$geoquimic_anomaly_count)
anomalias <- na.omit(anomalias)
GRAFICA Y TABLA DE DISTRIBUCIÓN DE FRECUENCIAS
#====================================================================
# GRAFICA Y TABLA DE DISTRIBUCIÓN DE FRECUENCIAS
#====================================================================
histograma_anom <- hist(
anomalias,
breaks = seq(
min(anomalias)-0.5,
max(anomalias)+0.5,
by = 1
),
main = "Grafica Nº1: Distribución de la cantidad de anomalías geoquímicas",
xlab = "Cantidad de anomalías geoquímicas",
ylab = "Frecuencia",
col = "gray"
)

#====================================================================
# TABLA DE DISTRIBUCIÓN DE FRECUENCIAS
#====================================================================
tabla_freq <- table(anomalias)
# LÍMITE INFERIOR
lis <- as.numeric(names(tabla_freq))
# LÍMITE SUPERIOR
lss <- lis
# MARCA DE CLASE
MC_prof <- lis
# FRECUENCIA ABSOLUTA
ni_prof <- as.numeric(tabla_freq)
# FRECUENCIA RELATIVA
hi_prof <- (ni_prof/sum(ni_prof))*100
# TABLA BASE
TDFprof <- round(
data.frame(
lis,
lss,
MC_prof,
ni_prof,
hi_prof
),
2
)
# FILA TOTAL
fila_total_prof <- data.frame(
lis = "TOTAL",
lss = "",
MC_prof = "",
ni_prof = sum(ni_prof),
hi_prof = round(sum(hi_prof),2)
)
TDFprof_total <- rbind(
TDFprof,
fila_total_prof
)
# TABLA FINAL
tabla_anomalias <- TDFprof_total %>%
gt() %>%
tab_header(
title = md("*Tabla Nº1*"),
subtitle = md(
"Tabla de distribución de frecuencias de la cantidad de anomalías geoquímicas"
)
) %>%
cols_label(
lis = "Valor",
lss = "Valor",
MC_prof = "Conteo",
ni_prof = "Frecuencia absoluta",
hi_prof = "Frecuencia relativa (%)"
) %>%
tab_source_note(
source_note = md("Autor: Grupo 2")
) %>%
tab_options(
table.border.top.color = "black",
table.border.bottom.color = "black",
table.border.top.style = "solid",
table.border.bottom.style = "solid",
column_labels.border.top.color = "black",
column_labels.border.bottom.color = "black",
column_labels.border.bottom.width = px(2),
row.striping.include_table_body = TRUE,
heading.border.bottom.color = "black",
heading.border.bottom.width = px(2),
table_body.hlines.color = "gray",
table_body.border.bottom.color = "black"
)
tabla_anomalias
| Tabla Nº1 |
| Tabla de distribución de frecuencias de la cantidad de anomalías geoquímicas |
| Valor |
Valor |
Conteo |
Frecuencia absoluta |
Frecuencia relativa (%) |
| 1 |
1 |
1 |
1 |
0.04 |
| 3 |
3 |
3 |
3 |
0.12 |
| 4 |
4 |
4 |
12 |
0.48 |
| 5 |
5 |
5 |
28 |
1.12 |
| 6 |
6 |
6 |
57 |
2.28 |
| 7 |
7 |
7 |
112 |
4.48 |
| 8 |
8 |
8 |
171 |
6.84 |
| 9 |
9 |
9 |
213 |
8.52 |
| 10 |
10 |
10 |
285 |
11.40 |
| 11 |
11 |
11 |
285 |
11.40 |
| 12 |
12 |
12 |
292 |
11.68 |
| 13 |
13 |
13 |
262 |
10.48 |
| 14 |
14 |
14 |
232 |
9.28 |
| 15 |
15 |
15 |
159 |
6.36 |
| 16 |
16 |
16 |
143 |
5.72 |
| 17 |
17 |
17 |
89 |
3.56 |
| 18 |
18 |
18 |
68 |
2.72 |
| 19 |
19 |
19 |
34 |
1.36 |
| 20 |
20 |
20 |
27 |
1.08 |
| 21 |
21 |
21 |
11 |
0.44 |
| 22 |
22 |
22 |
6 |
0.24 |
| 23 |
23 |
23 |
5 |
0.20 |
| 24 |
24 |
24 |
2 |
0.08 |
| 25 |
25 |
25 |
2 |
0.08 |
| 26 |
26 |
26 |
1 |
0.04 |
| TOTAL |
|
|
2500 |
100.00 |
| Autor: Grupo 2 |
CONJETURA MODELO
#====================================================================
# HISTOGRAMA Y MODELO POISSON
#====================================================================
prof_1 <- anomalias
Histograma_1 <- hist(
prof_1,
freq = FALSE,
breaks = seq(
min(prof_1)-0.5,
max(prof_1)+0.5,
by = 1
),
main = "Grafica Nº2: Comparación de la realidad con el modelo de probabilidad
Poisson de la cantidad de anomalías geoquímicas",
ylab = "Probabilidad",
xlab = "Cantidad de anomalías geoquímicas",
col = "lightgray",
border = "black"
)
#====================================================================
# CALCULO DEL PARAMETRO POISSON
#====================================================================
lambda_1 <- mean(prof_1)
lambda_1
## [1] 11.98
#====================================================================
# VALORES POSIBLES
#====================================================================
x <- min(prof_1):max(prof_1)
#====================================================================
# CURVA POISSON
#====================================================================
points(
x,
dpois(x, lambda_1),
type = "b",
pch = 19,
col = "blue"
)

TEST DE APROBACIÓN
#====================================================================
# TAMAÑO MUESTRAL
#====================================================================
n1 <- length(prof_1)
n1
## [1] 2500
#====================================================================
# FRECUENCIAS OBSERVADAS
#====================================================================
Fo_tabla <- table(prof_1)
Fo_1 <- as.numeric(Fo_tabla)
Fo_1
## [1] 1 3 12 28 57 112 171 213 285 285 292 262 232 159 143 89 68 34 27
## [20] 11 6 5 2 2 1
#====================================================================
# VALORES OBSERVADOS
#====================================================================
Valores_1 <- as.numeric(names(Fo_tabla))
Valores_1
## [1] 1 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
#====================================================================
# PROBABILIDADES POISSON
#====================================================================
P1 <- dpois(
Valores_1,
lambda_1
)
P1
## [1] 7.509464e-05 1.796269e-03 5.379825e-03 1.289006e-02 2.573715e-02
## [6] 4.404730e-02 6.596083e-02 8.780120e-02 1.051858e-01 1.145569e-01
## [11] 1.143660e-01 1.053927e-01 9.018602e-02 7.202857e-02 5.393139e-02
## [16] 3.800577e-02 2.529495e-02 1.594913e-02 9.553530e-03 5.450061e-03
## [21] 2.967806e-03 1.545840e-03 7.716317e-04 3.697659e-04 1.703768e-04
#====================================================================
# NUMERO DE CATEGORIAS
#====================================================================
h1 <- length(Valores_1)
h1
## [1] 25
#====================================================================
# FRECUENCIA ESPERADA
#====================================================================
Fe_1 <- P1 * n1
Fe_1
## [1] 0.1877366 4.4906718 13.4495621 32.2251509 64.3428846 110.1182511
## [7] 164.9020811 219.5029923 262.9645848 286.3923387 285.9150182 263.4816860
## [13] 225.4650427 180.0714141 134.8284713 95.0144169 63.2373730 39.8728278
## [19] 23.8838239 13.6251528 7.4195151 3.8645996 1.9290793 0.9244148
## [25] 0.4259419
#====================================================================
# TEST DE PEARSON
#====================================================================
# GUARDAR FRECUENCIAS ABSOLUTAS
Fo_abs <- Fo_1
Fe_abs <- Fe_1
# EXPRESAR EN PORCENTAJES PARA GRAFICA
Fo_1 <- (Fo_abs / n1) * 100
Fo_1
## [1] 0.04 0.12 0.48 1.12 2.28 4.48 6.84 8.52 11.40 11.40 11.68 10.48
## [13] 9.28 6.36 5.72 3.56 2.72 1.36 1.08 0.44 0.24 0.20 0.08 0.08
## [25] 0.04
Fe_1 <- (Fe_abs / n1) * 100
Fe_1
## [1] 0.007509464 0.179626873 0.537982486 1.289006036 2.573715385
## [6] 4.404730045 6.596083242 8.780119694 10.518583393 11.455693550
## [11] 11.436600727 10.539267439 9.018601709 7.202856565 5.393138853
## [16] 3.800576674 2.529494920 1.594913113 0.955352954 0.545006114
## [21] 0.296780602 0.154583983 0.077163172 0.036976592 0.017037676
#====================================================================
# CORRELACIÓN DE FRECUENCIAS
#====================================================================
plot(
Fo_1,
Fe_1,
main = "Grafica Nº3: Correlación de frecuencias observadas y esperadas
del modelo Poisson de anomalías geoquímicas",
xlab = "Frecuencia observada (%)",
ylab = "Frecuencia esperada (%)",
col = "blue3",
pch = 19
)
abline(
a = 0,
b = 1,
col = "red",
lwd = 2
)

Correlacion_1 <- cor(
Fo_1,
Fe_1
) * 100
Correlacion_1
## [1] 99.76214
#====================================================================
# CHI CUADRADO
#====================================================================
# ELIMINAR CATEGORIAS CON FE < 5
indices_validos <- Fe_abs >= 5
Fo_chi <- Fo_abs[indices_validos]
Fe_chi <- Fe_abs[indices_validos]
# GRADOS DE LIBERTAD
# k - 1 - parametros estimados
# en Poisson se estima lambda
grados_libertad_1 <-
length(Fo_chi) - 2
grados_libertad_1
## [1] 17
nivel_significancia <- 0.95
Chi_cuadrado <- sum(
((Fo_chi - Fe_chi)^2) / Fe_chi
)
Chi_cuadrado
## [1] 9.928306
umbral_aceptacion_1 <- qchisq(
nivel_significancia,
grados_libertad_1
)
umbral_aceptacion_1
## [1] 27.58711
#====================================================================
# TABLA RESUMEN
#====================================================================
Variable <- c(
"Cantidad de anomalías geoquímicas"
)
tabla_resumen_1 <- data.frame(
Variable,
round(Correlacion_1,2),
round(Chi_cuadrado,2),
round(umbral_aceptacion_1,2)
)
colnames(tabla_resumen_1) <- c(
"Variable",
"Test Pearson (%)",
"Chi Cuadrado",
"Umbral de aceptación"
)
kable(
tabla_resumen_1,
format = "markdown",
caption = "Tabla resumen del modelo Poisson"
)
Tabla resumen del modelo Poisson
| Cantidad de anomalías geoquímicas |
99.76 |
9.93 |
27.59 |
CALCULO DE PROBABILIDADES
#====================================================================
# PROBABILIDAD
#====================================================================
#¿Cuál es la probabilidad de que una muestra futura
#presente entre 10 y 15 anomalías geoquímicas?
Probabilidad_1 <-
(
ppois(15, lambda_1) -
ppois(9, lambda_1)
) * 100
Probabilidad_1
## [1] 60.1716
#====================================================================
# GRAFICA DE PROBABILIDAD
#====================================================================
x <- min(prof_1):max(prof_1)
y <- dpois(
x,
lambda_1
)
plot(
x,
y,
type = "h",
lwd = 3,
col = "skyblue3",
main = "Grafica Nº4: Cálculo de probabilidades",
ylab = "Probabilidad",
xlab = "Cantidad de anomalías geoquímicas"
)
#=========================================================
# RANGO DE INTERES
#=========================================================
x_section <- 10:15
y_section <- dpois(
x_section,
lambda_1
)
points(
x_section,
y_section,
pch = 19,
col = "red"
)
segments(
x_section,
0,
x_section,
y_section,
col = "red",
lwd = 3
)
legend(
"topright",
legend = c(
"Modelo Poisson",
"Área de Probabilidad"
),
col = c(
"skyblue3",
"red"
),
lwd = 3,
cex = 0.7
)
texto_prob <- paste0(
"Probabilidad = ",
round(
Probabilidad_1,
2
),
" %"
)
text(
x = min(x)+3,
y = max(y)*0.90,
labels = texto_prob,
col = "black",
cex = 0.8,
font = 2
)

#====================================================================
# CANTIDAD ESPERADA
#====================================================================
#¿De 300 futuras muestras cuántas presentarán
#entre 10 y 15 anomalías geoquímicas?
cantidad_1 <-
(
ppois(15, lambda_1) -
ppois(9, lambda_1)
) * 300
cantidad_1
## [1] 180.5148
INTERVALOS DE CONFIANZA
#====================================================================
# INTERVALOS DE CONFIANZA
#====================================================================
# Parametro lambda
x <- mean(prof_1)
x
## [1] 11.98
# Tamaño muestral
n <- length(prof_1)
n
## [1] 2500
# Error estándar Poisson
e <- sqrt(x/n)
e
## [1] 0.06922427
# Intervalo de confianza 95%
li <- x - 1.96*e
li
## [1] 11.84432
ls <- x + 1.96*e
ls
## [1] 12.11568
tabla_media <- data.frame(
round(li,2),
Variable,
round(ls,2),
round(e,4)
)
colnames(tabla_media) <- c(
"Limite inferior",
"Lambda poblacional",
"Limite superior",
"Error estándar"
)
kable(
tabla_media,
format = "markdown",
caption = "Tabla Nro.2: Intervalo de confianza del parámetro λ"
)
Tabla Nro.2: Intervalo de confianza del parámetro λ
| 11.84 |
Cantidad de anomalías geoquímicas |
12.12 |
0.0692 |
CONCLUSION
"La variable cantidad de anomalías geoquímicas presenta un comportamiento compatible con un modelo de distribución Poisson, debido a que representa datos de conteo dentro de las muestras analizadas. El parámetro λ obtenido fue de 11.98 anomalías por muestra, calculado a partir de una muestra total de 2500 registros.
El ajuste del modelo fue adecuado, ya que el Chi cuadrado calculado fue 9.93, menor que el umbral de aceptación de 27.59, y el Test de Pearson alcanzó un valor de 99.76 %, evidenciando una alta correspondencia entre las frecuencias observadas y esperadas.
Además, se calculó que la probabilidad de que una muestra futura presente entre 10 y 15 anomalías geoquímicas es de 60.17 %, por lo que, de 300 futuras muestras, aproximadamente 181 estarían dentro de ese rango. Finalmente, con un 95 % de confianza, el parámetro λ poblacional se encuentra entre 11.84 y 12.12 anomalías geoquímicas."
## [1] "La variable cantidad de anomalías geoquímicas presenta un comportamiento compatible con un modelo de distribución Poisson, debido a que representa datos de conteo dentro de las muestras analizadas. El parámetro λ obtenido fue de 11.98 anomalías por muestra, calculado a partir de una muestra total de 2500 registros.\n\nEl ajuste del modelo fue adecuado, ya que el Chi cuadrado calculado fue 9.93, menor que el umbral de aceptación de 27.59, y el Test de Pearson alcanzó un valor de 99.76 %, evidenciando una alta correspondencia entre las frecuencias observadas y esperadas.\n\nAdemás, se calculó que la probabilidad de que una muestra futura presente entre 10 y 15 anomalías geoquímicas es de 60.17 %, por lo que, de 300 futuras muestras, aproximadamente 181 estarían dentro de ese rango. Finalmente, con un 95 % de confianza, el parámetro λ poblacional se encuentra entre 11.84 y 12.12 anomalías geoquímicas."