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
x2_1 <- sum(
((Fo_chi - Fe_chi)^2) / Fe_chi
)
x2_1
## [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(x2_1,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 geoquimic_anomaly_count representa la cantidad de anomalías
geoquímicas observadas por muestra y presenta características compatibles
con una distribución de Poisson.
La media observada fue aproximadamente igual a 11.98 anomalías por muestra,
valor que constituye el parámetro λ del modelo Poisson.
Asimismo, la cercanía existente entre la media y la varianza observadas
respalda la utilización de este modelo probabilístico para describir la
ocurrencia de anomalías geoquímicas.
Los resultados del ajuste muestran una adecuada correspondencia entre las
frecuencias observadas y las frecuencias esperadas bajo el modelo Poisson,
permitiendo estimar probabilidades de ocurrencia para diferentes cantidades
de anomalías y proyectar frecuencias esperadas en futuras campañas de
muestreo geoquímico.
De esta manera, el modelo Poisson constituye una herramienta estadística
adecuada para el análisis inferencial de conteos de anomalías geoquímicas
en estudios de exploración de yacimientos."
## [1] "La variable geoquimic_anomaly_count representa la cantidad de anomalías\ngeoquímicas observadas por muestra y presenta características compatibles\ncon una distribución de Poisson.\n\nLa media observada fue aproximadamente igual a 11.98 anomalías por muestra,\nvalor que constituye el parámetro λ del modelo Poisson.\n\nAsimismo, la cercanía existente entre la media y la varianza observadas\nrespalda la utilización de este modelo probabilístico para describir la\nocurrencia de anomalías geoquímicas.\n\nLos resultados del ajuste muestran una adecuada correspondencia entre las\nfrecuencias observadas y las frecuencias esperadas bajo el modelo Poisson,\npermitiendo estimar probabilidades de ocurrencia para diferentes cantidades\nde anomalías y proyectar frecuencias esperadas en futuras campañas de\nmuestreo geoquímico.\n\nDe esta manera, el modelo Poisson constituye una herramienta estadística\nadecuada para el análisis inferencial de conteos de anomalías geoquímicas\nen estudios de exploración de yacimientos."