ANÁLISIS ESTADÍSTICO DE VOLCANES ACTIVOS A NIVEL GLOBAL
MODELO POISSON

CARRERA DE GEOLOGÍA

GRUPO N°2

ANÁLISIS ESTADÍSTICO INFERENCIAL

CARGA DE LIBRERIAS Y DATOS

Carga de librerias

library("readr")
library("dplyr")
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library("gt")
library("knitr")

lectura del dataset

#CARGA DE DATASET
Volcanes_Globales <- read.csv("global_volcano_eruption_intelligence.csv", header = T, sep = ";", dec = ".")

SELECCIÓN DE VARIABLE

#SELECCION VARIABLE
num_V<- Volcanes_Globales$volcano_eruption_count_in_dataset

TABLA DE DISTRIBUCIÓN DE FRECUENCIAS

# Tamaño de muestra
n <- length(Num_V)
n
## [1] 898
# Frecuencia absoluta (ni)

ni <- table(Num_V)



# Frecuencia relativa (%)
hi <- (ni / n) * 100

# Tabla de distribución de frecuencias
TDF_erupciones <- data.frame(
  Numero_erupciones = names(ni),
  ni = as.numeric(ni),
  hi = round(as.numeric(hi),2)
)

# Fila Total
fila_total <- data.frame(
  Numero_erupciones = "TOTAL",
  ni = sum(TDF_erupciones$ni),
  hi = 100
)

# Tabla final
TDF_erupciones_final <- rbind(
  TDF_erupciones,
  fila_total
)

# Mostrar tabla
TDF_erupciones_final
##    Numero_erupciones  ni     hi
## 1                  2   1   0.11
## 2                  3   3   0.33
## 3                  4  13   1.45
## 4                  5  24   2.67
## 5                  6  49   5.46
## 6                  7  70   7.80
## 7                  8  82   9.13
## 8                  9  94  10.47
## 9                 10 125  13.92
## 10                11 114  12.69
## 11                12  85   9.47
## 12                13  85   9.47
## 13                14  47   5.23
## 14                15  35   3.90
## 15                16  28   3.12
## 16                17  19   2.12
## 17                18  11   1.22
## 18                19   8   0.89
## 19                20   4   0.45
## 20                21   1   0.11
## 21             TOTAL 898 100.00

TABLA DE FRECUENCIAS

Distribución de Frecuencias del Número de Erupciones Volcánicas
Análisis de frecuencias absolutas y relativas para el ajuste del modelo Poisson
Número de erupciones Frecuencia Absoluta (ni) Frecuencia Relativa (hi) (%)
2 1 0.11
3 3 0.33
4 13 1.45
5 24 2.67
6 49 5.46
7 70 7.80
8 82 9.13
9 94 10.47
10 125 13.92
11 114 12.69
12 85 9.47
13 85 9.47
14 47 5.23
15 35 3.90
16 28 3.12
17 19 2.12
18 11 1.22
19 8 0.89
20 4 0.45
21 1 0.11
TOTAL 898 100.00

GRÁFICA DE DISTRIBUCIÓN DE FRECUENCIA

Diagrama de frecuencia absoluta

par(mar = c(5, 5, 5, 2))   # abajo, izquierda, arriba, derecha

hist(
  Num_V,
  breaks = seq(
    min(Num_V) - 0.5,
    max(Num_V) + 0.5,
    by = 1
  ),
  freq = TRUE,
  col = "lightblue",
  border = "black",
  main = "Histograma de frecuencias absolutas del 
  número de erupciones volcánicas",
  xlab = "Número de erupciones",
  ylab = "Cantidad",
  xaxt = "n"
)

axis(
  side = 1,
  at = seq(min(Num_V), max(Num_V), by = 2),
  labels = seq(min(Num_V), max(Num_V), by = 2),
  las = 1
)

CONJETURA DEL MODELO

DEBIDO A LA SIMILITUD VISUAL SE CONJETURA UN MODELO POISSON

PARAMETROS

CALCULO DE PARAMETROS

# Tamaño de muestra
n <- length(Num_V)
n
## [1] 898
# Parámetro lambda del modelo Poisson
lambda <- mean(Num_V)
lambda
## [1] 10.58241
# Media del modelo Poisson
media_poisson <- lambda
media_poisson
## [1] 10.58241
# Varianza del modelo Poisson
varianza_poisson <- lambda
varianza_poisson
## [1] 10.58241
# Desviación estándar del modelo Poisson
desviacion_poisson <- sqrt(lambda)
desviacion_poisson
## [1] 3.253061
#FRECUENCIAS OBSERVADAS Y ESPERADAS
# Frecuencia observada (%)

Fo <- TDF_erupciones_final$hi[
  TDF_erupciones_final$Numero_erupciones != "TOTAL"
]

# Valores de número de erupciones
x <- as.numeric(
  TDF_erupciones_final$Numero_erupciones[
    TDF_erupciones_final$Numero_erupciones != "TOTAL"
  ]
)

# Probabilidades esperadas del modelo Poisson
P_poisson <- dpois(
  x,
  lambda = lambda
)

# Frecuencia esperada (%)
Fe <- P_poisson * 100

Fo
##  [1]  0.11  0.33  1.45  2.67  5.46  7.80  9.13 10.47 13.92 12.69  9.47  9.47
## [13]  5.23  3.90  3.12  2.12  1.22  0.89  0.45  0.11
Fe
##  [1]  0.1419903  0.5008661  1.3250922  2.8045325  4.9464499  7.4779054
##  [7]  9.8917782 11.6309785 12.3083729 11.8411083 10.4422840  8.5003448
## [13]  6.4252924  4.5330033  2.9981299  1.8663191  1.0972303  0.6111229
## [19]  0.3233575  0.1629476

MODELO Y REALIDAD

par(mar = c(5,5,5,2))

barplot(
  rbind(Fo, Fe),
  beside = TRUE,
  col = c("skyblue", "blue"),
  names.arg = x,
  main = "Gráfica N°2: Comparación de la realidad con el modelo Poisson del número de erupciones volcánicas",
  ylab = "Probabilidad %",
  xlab = "Número de erupciones",
  ylim = c(0, max(c(Fo, Fe))*1.3),
  las = 1
)


# Leyenda

legend(
  "topright",
  legend = c(
    "Realidad",
    "Modelo Poisson"
  ),
  fill = c(
    "skyblue",
    "blue"
  ),
  border = "black",
  bty = "n"
)

TESTS DE APROBACIÓN

Gráfica de correlación del modelo Poisson y la realidad

# ==============================================================================
# GRÁFICA DE CORRELACIÓN ENTRE FRECUENCIAS OBSERVADAS Y ESPERADAS
# MODELO POISSON
# ==============================================================================

# Frecuencias observadas (%)

Fo <- TDF_erupciones_final$hi[
  TDF_erupciones_final$Numero_erupciones != "TOTAL"
]


# Frecuencias esperadas (%)

Fe <- P_poisson * 100



# Gráfica

plot(
  Fo,
  Fe,
  main = "Gráfica N°3: Correlación de frecuencias\nentre la realidad y el modelo Poisson del número de erupciones",
  xlab = "Frecuencia observada (%)",
  ylab = "Frecuencia esperada (%)",
  pch = 19,
  col = "darkblue",
  xlim = c(0, max(c(Fo, Fe)) * 1.1),
  ylim = c(0, max(c(Fo, Fe)) * 1.1)
)


# Línea de ajuste perfecto

abline(
  a = 0,
  b = 1,
  col = "red",
  lwd = 2
)

Test de Pearson

# Correlación entre realidad y modelo Poisson

Correlacion <- cor(Fo, Fe) * 100

Correlacion
## [1] 98.75272
# Evaluación del Test de Pearson (>80%)

if (Correlacion > 80) {
  
  print("APRUEBA EL TEST DE PEARSON")
  
} else {
  
  print("NO APRUEBA EL TEST DE PEARSON")
  
}
## [1] "APRUEBA EL TEST DE PEARSON"

Test Chi cuadrado

# Frecuencias absolutas observadas

Fo_abs <- TDF_erupciones_final$ni[
  TDF_erupciones_final$Numero_erupciones != "TOTAL"
]


# Tamaño de muestra

n <- sum(Fo_abs)

n
## [1] 898
# Frecuencias absolutas esperadas

Fe_abs <- P_poisson * n


# Evitar divisiones por cero

Fe_abs[Fe_abs == 0] <- 1e-9


# Grados de libertad
# gl = categorías - 1 - parámetros estimados
# Poisson estima un parámetro (lambda)

grados_libertad <- length(Fo_abs) - 2

grados_libertad
## [1] 18
# Nivel de confianza

nivel_confianza <- 0.99


# Estadístico Chi-cuadrado

x2 <- sum(
  (Fo_abs - Fe_abs)^2 / Fe_abs
)

x2
## [1] 12.1009
# Valor crítico

umbral_aceptacion <- qchisq(
  nivel_confianza,
  df = grados_libertad
)

umbral_aceptacion
## [1] 34.80531
# Evaluación

if (x2 < umbral_aceptacion) {
  
  print("APRUEBA EL TEST DE CHI-CUADRADO")
  
} else {
  
  print("NO APRUEBA EL TEST DE CHI-CUADRADO")
  
}
## [1] "APRUEBA EL TEST DE CHI-CUADRADO"

Tabla de resumen

Tabla Nro. 2: Evaluación estadística del modelo Poisson del número de erupciones volcánicas
Variable Test Pearson (%) Chi Cuadrado Umbral de aceptación
Número de erupciones volcánicas 98.75 12.1 34.81

CALCULO DE PROBABILIDAD

Pregunta

Calculo de valores

# Límites

limite_inferior <- 8
limite_superior <- 12


# Parámetro del modelo Poisson

lambda <- mean(Num_V)

lambda
## [1] 10.58241
# Probabilidad entre 8 y 12 erupciones (incluye ambos extremos)

probabilidad_erupciones <- sum(
  dpois(
    limite_inferior:limite_superior,
    lambda = lambda
  )
)

probabilidad_erupciones
## [1] 0.5611452
# Probabilidad en porcentaje

probabilidad_erupciones * 100
## [1] 56.11452

Area de probabilidad

INTERVALOS DE CONFIANZA

Cálculo de parámetros e intervalos

# ==============================================================================
# INTERVALO DE CONFIANZA Y MEDIA POBLACIONAL
# ==============================================================================

# 1. PARÁMETRO DEL MODELO POISSON (MEDIA MUESTRAL)
lambda_completo <- mean(Num_V)
lambda_completo
## [1] 10.58241
# 2. TAMAÑO DE MUESTRA
n_completo_V <- length(Num_V)
n_completo_V
## [1] 898
# 3. ERROR ESTÁNDAR PARA LA MEDIA DE POISSON
e <- sqrt(lambda_completo / n_completo_V)
e
## [1] 0.108556
# 4. LÍMITE INFERIOR DEL INTERVALO DE CONFIANZA
li <- lambda_completo - 2 * e
li
## [1] 10.36529
# 5. LÍMITE SUPERIOR DEL INTERVALO DE CONFIANZA
ls <- lambda_completo + 2 * e
ls
## [1] 10.79952

Tabla de resumen

Tabla Nro. 3: Intervalo de confianza de la media poblacional del número de erupciones de los volcanes activos mediante el modelo Poisson
Límite inferior Media poblacional Límite superior Error estándar
10.37 μ 10.8 0.11

CONCLUSIÓN