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
H_pl <- Volcanes_Globales$est_plume_height_km
# Limpieza de datos
H_pl_limpios <- H_pl[!is.na(H_pl)]
## [1] 714
## [1] 7.98
# CALCULO ni y hi
# Frecuencia absoluta ni
ni <- numeric(k)
for (i in 1:k) {
if (i < k) {
ni[i] <- sum(
H_pl_limpios >= Li[i] &
H_pl_limpios < Ls[i],
na.rm = TRUE
)
} else {
ni[i] <- sum(
H_pl_limpios >= Li[i] &
H_pl_limpios <= maximo,
na.rm = TRUE
)
}
}
# Frecuencia relativa hi
n <- length(H_pl_limpios)
hi <- ni / n
# TABLA DE DISTRIBUCION DE FRECUENCIAS
TDF_H_pl <- data.frame(
Intervalo = levels(Intervalo),
ni = ni,
hi = round(hi,4)*100
)
# Fila de Total
fila_total <- data.frame(
Intervalo = "TOTAL",
ni = sum(TDF_H_pl$ni),
hi = 100
)
# Unir fila Total con la tabla
TDF_H_pl_final <- rbind(
TDF_H_pl,
fila_total
)
# Mostrar tabla
TDF_H_pl_final
## Intervalo ni hi
## 1 [0.1,8.08] 530 74.23
## 2 (8.08,16.1] 114 15.97
## 3 (16.1,24] 30 4.20
## 4 (24,32] 36 5.04
## 5 (32,40] 4 0.56
## 6 TOTAL 714 100.00
| Distribución de Frecuencias de la Altura de Columna Eruptiva de los Volcanes Activos | ||
| Análisis de frecuencias globales según los intervalos de altura de columna registrados | ||
| Intervalo de Altura de Pluma (km) | Frecuencia Absoluta (ni) | Frecuencia Relativa (hi %) |
|---|---|---|
| [0.1,8.08] | 530 | 74.23 |
| (8.08,16.1] | 114 | 15.97 |
| (16.1,24] | 30 | 4.20 |
| (24,32] | 36 | 5.04 |
| (32,40] | 4 | 0.56 |
| TOTAL | 714 | 100.00 |
hist(
H_pl_limpios,
breaks = breaks,
freq = TRUE,
xaxt = "n",
col = "lightblue",
border = "black",
main = "Histograma de frecuencias absolutas de la altura de columna eruptiva",
xlab = "Altura de columna eruptiva (km)",
ylab = "Cantidad"
)
axis(
side = 1,
at = breaks,
labels = round(breaks,2),
las = 2
)
# Número total de la pluma de volcanes
n <- sum(TDF_H_pl_final$ni[TDF_H_pl_final$Intervalo != "TOTAL"])
# Datos agrupados
x <- TDF_H_pl_final$ni[TDF_H_pl_final$Intervalo != "TOTAL"]
# Marcas de clase
marcas_clase <- (Li + Ls) / 2
# Media observada mediante frecuencias agrupadas
media_observada <- sum(marcas_clase * x) / n
# Parámetro de la distribución Exponencial
lambda <- 1 / media_observada
media_observada
## [1] 7.420588
lambda
## [1] 0.1347602
# FRECUENCIAS OBSERVADAS
Fo <- TDF_H_pl_final$hi[TDF_H_pl_final$Intervalo != "TOTAL"]
# FRECUENCIAS ESPERADAS - MODELO EXPONENCIAL
P_exp <- numeric(length(Li))
for(i in 1:length(Li)){
P_exp[i] <- pexp(
Ls[i],
rate = lambda
) -
pexp(
Li[i],
rate = lambda
)
}
Fe <- P_exp * 100
Fo
## [1] 74.23 15.97 4.20 5.04 0.56
Fe
## [1] 65.0015205 22.1763015 7.5657976 2.5811921 0.8806147
# GRÁFICA
par(mar = c(5,5,5,2))
barplot(
rbind(Fo, Fe),
beside = TRUE,
col = c("skyblue", "blue"),
names.arg = TDF_H_pl_final$Intervalo[TDF_H_pl_final$Intervalo != "TOTAL"],
main = "Gráfica N°2: Comparación de la realidad con el modelo exponencial de la altura de columna eruptiva",
ylab = "Probabilidad (%)",
xlab = "Intervalos de altura de columna (km)",
ylim = c(0, max(c(Fo, Fe)) * 1.3),
las = 2
)
# Leyenda
legend(
"topright",
legend = c("Realidad", "Modelo Exponencial"),
fill = c("skyblue", "blue"),
border = "black",
bty = "n"
)
# Frecuencias observadas (%)
Fo <- TDF_H_pl_final$hi[TDF_H_pl_final$Intervalo != "TOTAL"]
# Frecuencias esperadas (%)
Fe <- P_exp * 100
# Gráfica
plot(
Fo,
Fe,
main = "Gráfica N°3: Correlación de frecuencias entre la realidad y el modelo exponencial",
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
)
# Correlación entre realidad y modelo Exponencial
Correlacion <- cor(Fo, Fe) * 100
Correlacion
## [1] 98.91383
# 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"
# Frecuencias absolutas observadas
Fo_abs <- TDF_H_pl_final$ni[TDF_H_pl_final$Intervalo != "TOTAL"]
# Tamaño de la muestra
n <- sum(Fo_abs)
# Frecuencias absolutas esperadas
Fe_abs <- P_exp * n
# Grados de libertad
grados_libertad <- length(Fo_abs) - 2
grados_libertad
## [1] 3
# Nivel de significancia
nivel_significancia <- 0.95
# Estadístico Chi-cuadrado
x2 <- sum((Fo_abs - Fe_abs)^2 / Fe_abs)
x2
## [1] 50.03373
## [1] 54.23451
# 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"
| Variable | Test Pearson (%) | Chi Cuadrado | Umbral de aceptación |
|---|---|---|---|
| Elevación de los volcanes activos | 98.91 | 50.03 | 54.23 |
#Aqui ya trabajamos con todo nuestro dataset para el calculo de los parámetros
H_pl_completo <- as.numeric(Volcanes_Globales$est_plume_height_km)
H_pl_completo <- na.omit(H_pl_completo)
media_completa <- mean(H_pl_completo)
media_completa
## [1] 5.466947
# Recalculamos los parámetros reales de toda la población
n_completo <- length(H_pl_completo)
n_completo
## [1] 714
# Lambda Completo
lambda_completo <- 1 / media_completa
lambda_completo
## [1] 0.1829175
# USAMOS LAMBDA COMPLETO
probabilidad_H_pl <- pexp(32, lambda_completo) - pexp(24, lambda_completo)
# Probabilidad:
probabilidad_H_pl * 100
## [1] 0.9530251
## [1] 5.466947
## [1] 7.775175
## [1] 714
## [1] 0.2909786
## [1] 4.88499
## [1] 6.048904
| Limite inferior | Media poblacional | Limite superior | Desviación estandar poblacional |
|---|---|---|---|
| 4.88 | Altura de columna eruptiva de los volcanes activos | 6.05 | 0.29 |