CARRERA DE GEOLOGÍA
GRUPO N°2
ANÁLISIS ESTADÍSTICO INFERENCIAL
## Installing package into '/cloud/lib/x86_64-pc-linux-gnu-library/4.6'
## (as 'lib' is unspecified)
## Installing package into '/cloud/lib/x86_64-pc-linux-gnu-library/4.6'
## (as 'lib' is unspecified)
## Installing package into '/cloud/lib/x86_64-pc-linux-gnu-library/4.6'
## (as 'lib' is unspecified)
## Installing package into '/cloud/lib/x86_64-pc-linux-gnu-library/4.6'
## (as 'lib' is unspecified)
##
## 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
#CARGA DE DATASET
Volcanes_Globales <- read.csv("global_volcano_eruption_intelligence.csv", header = T, sep = ";", dec = ".")
#SELECCION VARIABLE
retornoV<- Volcanes_Globales$avg_eruption_return_period_years
# Eliminar NA
retornoV <- na.omit(retorno)
## [1] 898
## [1] 11
## [1] 126.7845
# CALCULO ni y hi
# Frecuencia absoluta (ni)
ni <- numeric(k)
for (i in 1:k) {
if (i < k) {
ni[i] <- sum(
retorno >= Li[i] &
retorno < Ls[i],
na.rm = TRUE
)
} else {
ni[i] <- sum(
retorno >= Li[i] &
retorno <= maximo,
na.rm = TRUE
)
}
}
# Frecuencia relativa (hi)
n <- length(retorno)
hi <- ni / n
# TABLA DE DISTRIBUCIÓN DE FRECUENCIAS
TDF <- data.frame(
Intervalo = levels(Intervalo),
ni = ni,
hi = round(hi, 4) * 100
)
# Fila Total
fila_total <- data.frame(
Intervalo = "TOTAL",
ni = sum(TDF$ni),
hi = 100
)
# Unir fila Total con la tabla
TDFretorno <- rbind(TDF, fila_total)
# Mostrar tabla
TDFretorno
## Intervalo ni hi
## 1 [7.23,134] 483 53.79
## 2 (134,261] 220 24.50
## 3 (261,388] 96 10.69
## 4 (388,514] 35 3.90
## 5 (514,641] 24 2.67
## 6 (641,768] 11 1.22
## 7 (768,895] 12 1.34
## 8 (895,1.02e+03] 5 0.56
## 9 (1.02e+03,1.15e+03] 4 0.45
## 10 (1.15e+03,1.28e+03] 2 0.22
## 11 (1.28e+03,1.4e+03] 6 0.67
## 12 TOTAL 898 100.00
| Distribución de Frecuencias del Período de Retorno de los Volcanes | ||
| Análisis de frecuencias globales según los intervalos del período de retorno | ||
| Intervalo del Período de Retorno (años) | Frecuencia Absoluta (ni) | Frecuencia Relativa (hi %) |
|---|---|---|
| [7.23,134] | 483 | 53.79 |
| (134,261] | 220 | 24.50 |
| (261,388] | 96 | 10.69 |
| (388,514] | 35 | 3.90 |
| (514,641] | 24 | 2.67 |
| (641,768] | 11 | 1.22 |
| (768,895] | 12 | 1.34 |
| (895,1.02e+03] | 5 | 0.56 |
| (1.02e+03,1.15e+03] | 4 | 0.45 |
| (1.15e+03,1.28e+03] | 2 | 0.22 |
| (1.28e+03,1.4e+03] | 6 | 0.67 |
| TOTAL | 898 | 100.00 |
hist(
retorno,
breaks = breaks,
freq = TRUE,
xaxt = "n",
col = "lightblue",
border = "black",
main = "Histograma de frecuencias absolutas",
xlab = "Periodo de retorno (años)",
ylab = "Cantidad"
)
axis(
side = 1,
at = breaks,
labels = round(breaks, 0),
las = 2
)
# PARÁMETRO μ (media del logaritmo)
medialog <- mean(log(retorno))
medialog
## [1] 4.790609
# PARÁMETRO σ (desviación estándar del logaritmo)
sd_log <- sd(log(retorno))
sd_log
## [1] 0.9695931
#1
# GRÁFICA
par(oma = c(1, 1, 1, 1))
hist(
retorno,
freq = FALSE,
main = "Gráfica Nº3. Comparación de la realidad con el modelo Lognormal del período de retorno volcánico",
xlab = "Periodo de retorno (años)",
ylab = "Densidad de probabilidad",
col = "navajowhite",
border = "gray30"
)
box(which = "outer", col = "black")
histograma <- hist(
retorno,
plot = FALSE,
breaks = breaks
)
h <- length(histograma$counts)
h
## [1] 11
curve(
dlnorm(
x,
meanlog = medialog,
sdlog = sd_log
),
from = min(retorno),
to = max(retorno),
add = TRUE,
col = "red",
lwd = 3
)
# Tamaño de la muestra completa
n <- length(retorno)
# Frecuencias observadas
Fo <- histograma$counts
# Número de intervalos
h <- length(Fo)
# Probabilidades esperadas según el modelo Lognormal
P <- numeric(h)
for (i in 1:h) {
P[i] <-
plnorm(
histograma$breaks[i+1],
meanlog = medialog,
sdlog = sd_log
) -
plnorm(
histograma$breaks[i],
meanlog = medialog,
sdlog = sd_log
)
}
# Frecuencias esperadas
Fe <- P * n
# Conversión a porcentajes
# Frecuencia observada (%)
Fo_perc <- (Fo / n) * 100
Fo_perc
## [1] 53.7861915 24.4988864 10.6904232 3.8975501 2.6726058 1.2249443
## [7] 1.3363029 0.5567929 0.4454343 0.2227171 0.6681514
# Frecuencia esperada (%)
Fe_perc <- (Fe / n) * 100
Fe_perc
## [1] 54.2204257 24.3319094 9.8705382 4.6828299 2.4829707 1.4265085
## [7] 0.8706761 0.5572053 0.3704805 0.2542198 0.1791310
# Gráfica
plot(
Fo_perc,
Fe_perc,
main = "Gráfica N°3. Correlación de frecuencias en el modelo Lognormal del período de retorno",
xlab = "Frecuencia observada (%)",
ylab = "Frecuencia esperada (%)",
pch = 19,
col = "darkblue",
xlim = c(0, 100),
ylim = c(0, 100)
)
# Línea de ajuste perfecto
abline(
a = 0,
b = 1,
col = "red",
lwd = 2
)
# Correlación entre realidad y modelo Gamma
Correlacion <- cor(Fo, Fe) * 100
Correlacion
## [1] 99.9664
# 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"
# Evitar divisiones por cero
Fe[Fe == 0] <- 1e-9
# Estadístico Chi-cuadrado
x2 <- sum((Fo - Fe)^2 / Fe)
x2
## [1] 16.61715
# Umbral de aceptación
umbral_aceptacion <- qchisq(0.99, df = k - 3)
umbral_aceptacion
## [1] 20.09024
# Evaluación del Chi-cuadrado
x2 < umbral_aceptacion
## [1] TRUE
if(x2 < umbral_aceptacion){
print("APRUEBA TEST DE CHI-CUADRADO")
}else{
print("NO APRUEBA TEST DE CHI-CUADRADO")
}
## [1] "APRUEBA TEST DE CHI-CUADRADO"
| Variable | Test Pearson (%) | Chi Cuadrado | Umbral de aceptación |
|---|---|---|---|
| Período de retorno de los volcanes (años) | 99.97 | 16.62 | 20.09 |
# Aquí trabajamos con todo nuestro dataset para el cálculo de los parámetros
n_completo <- length(retorno)
n_completo
## [1] 898
# PARÁMETRO MEDIA DEL LOGARITMO (μ)
# Calculamos μ con todos los datos globales
medialog_completo <- mean(log(retorno))
medialog_completo
## [1] 4.790609
# PARÁMETRO DESVIACIÓN ESTÁNDAR DEL LOGARITMO (σ)
sd_log_completo <- sd(log(retorno))
sd_log_completo
## [1] 0.9695931
# USAMOS LOS PARÁMETROS COMPLETOS RECALCULADOS
probabilidad_retorno <- plnorm(
200,
meanlog = medialog_completo,
sdlog = sd_log_completo
) -
plnorm(
50,
meanlog = medialog_completo,
sdlog = sd_log_completo
)
# PROBABILIDAD (%)
probabilidad_retorno * 100
## [1] 51.7301
## [1] 192.6094
## [1] 240.5895
## [1] 8.028575
## [1] 176.5522
## [1] 208.6665
| Límite inferior | Media poblacional | Límite superior | Desviación estándar poblacional |
|---|---|---|---|
| 176.55 | Período de retorno de los volcanes activos (años) | 208.67 | 240.59 |