1 Introducción

En el presente documento se desarrolla un análisis estadístico descriptivo de la variable cualitativa ordinal Risk VEI, que representa la clasificación del riesgo volcánico según el Índice de Explosividad Volcánica (VEI). Esta variable organiza los volcanes en diferentes niveles de riesgo ordenados jerárquicamente, desde Minimal hasta Catastrophic, incluyendo la categoría Unknown para registros sin clasificación definida. El estudio comprende la preparación de los datos, la elaboración de tablas de frecuencias, la construcción de representaciones gráficas y el análisis de medidas descriptivas apropiadas para variables ordinales.


2 Preparación de los Datos

2.1 Lectura del Dataset

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

2.2 Selección de la Variable

risk_vei <- Volcanes_Globales$vei_risk_tier

2.3 Limpieza de Datos

sum(is.na(risk_vei))
## [1] 0

3 Distribución de Frecuencias

3.1 Ordenación de Categorias

# Orden según la jerarquía 
niveles_riesgo <- c(
  "Minimal",
  "Low",
  "Moderate",
  "High",
  "Very High",
  "Extreme",
  "Catastrophic",
  "Unknown"
)

risk_vei <- factor(
  risk_vei,
  levels = niveles_riesgo,
  ordered = TRUE
)

3.2 Distribucion de Frecuencias

3.2.1 Cálculo de ni y hi

# Generar tabla de frecuencias
TDFRiesgo <- table(risk_vei)

# Convertir datos a dataframe
TDFRiesgo <- as.data.frame(TDFRiesgo)

# Cambiar nombres
colnames(TDFRiesgo) <- c("Nivel_Riesgo", "Freq")

# Frecuencia absoluta (ni)
TDFRiesgoFinal <- TDFRiesgo %>%
  group_by(Nivel_Riesgo) %>%
  summarise(
    ni = sum(Freq),
    
# Frecuencia relativa (hi)
# hi porcentual
    hi = round((ni / sum(TDFRiesgo$Freq)) * 100, 2),
    
# hi decimal
    hi_decimal = round(ni / sum(TDFRiesgo$Freq), 4)
  )

# Agregar numeración en tabla
TDFRiesgoFinal <- TDFRiesgoFinal %>%
  mutate(Nro = row_number())

# Añadir fila de totales
TDFRiesgoFinal <- TDFRiesgoFinal %>%
  add_row(
    Nro = NA,
    Nivel_Riesgo = "Total",
    ni = sum(TDFRiesgoFinal$ni),
    hi = 100,
    hi_decimal = 1
  )

#Ver tabla
TDFRiesgoFinal

3.3 Tabla de Distribución de Frecuencias

tabla_presentacion <- TDFRiesgoFinal %>%
  mutate(
    hi = round(hi, 2),
    hi_decimal = round(hi_decimal, 4)
  )

tabla_presentacion <- tabla_presentacion %>%
  select(Nro, Nivel_Riesgo, ni, hi, hi_decimal)

tabla_presentacion %>%
  gt() %>%
  
  tab_header(
    title = md("**Tabla Nro. 1**"),
    subtitle = md("Distribución de frecuencias del nivel de riesgo VEI a nivel mundial")
  ) %>%
  
  cols_label(
    Nro = "N°",
    Nivel_Riesgo = "Nivel de riesgo VEI",
    ni = "ni",
    hi = "hi %",
    hi_decimal = "hi dec."
  ) %>%
  
  tab_spanner(
    label = "Frecuencia absoluta",
    columns = c(ni)
  ) %>%
  
  tab_spanner(
    label = "Frecuencia relativa (hi)",
    columns = c(hi, hi_decimal)
  ) %>%
  
  tab_source_note(
    source_note = md("Elaborado por: Grupo 2 – Carrera de Geología")
  ) %>%
  
  tab_style(
    style = cell_text(weight = "bold"),
    locations = cells_body(rows = Nivel_Riesgo == "Total")
  )
Tabla Nro. 1
Distribución de frecuencias del nivel de riesgo VEI a nivel mundial
Nivel de riesgo VEI
Frecuencia absoluta
Frecuencia relativa (hi)
ni hi % hi dec.
1 Minimal 68 7.57 0.0757
2 Low 240 26.73 0.2673
3 Moderate 222 24.72 0.2472
4 High 114 12.69 0.1269
5 Very High 30 3.34 0.0334
6 Extreme 36 4.01 0.0401
7 Catastrophic 4 0.45 0.0045
8 Unknown 184 20.49 0.2049
NA Total 898 100.00 1.0000
Elaborado por: Grupo 2 – Carrera de Geología

4 Gráficas de Distribución de Frecuencias (GDFs)

4.1 Diagrama de barras de Frecuencia Absoluta Local

# Eliminar fila de total
TDFRiesgoPlot <- TDFRiesgoFinal[
  TDFRiesgoFinal$Nivel_Riesgo != "Total", ]

# Diagrama de barras local
par(mar = c(10,6,4,2))

barplot(
  TDFRiesgoPlot$ni,
  
  main = "Gráfica Nº1: Frecuencia absoluta del nivel de riesgo VEI a nivel mundial (local)",
  
  ylab = "Cantidad (ni)",
  
  col = "colores_riesgo" <- c(
  "#008000",  # Minimal
  "#66CC66",  # Low
  "#FFFF66",  # Moderate
  "#FFCC66",  # High
  "#FF9933",  # Very High
  "#FF6666",  # Extreme
  "#CC0000",  # Catastrophic
  "#BDBDBD"   # Unknown
),
  
  names.arg = TDFRiesgoPlot$Nivel_Riesgo,
  
  cex.names = 0.8,
  
  las = 1
)

mtext(
  "Nivel de riesgo VEI",
  side = 1,
  line = 4
)

4.2 Diagrama de barras de Frecuencia Absoluta Global

barplot(
  TDFRiesgoPlot$ni,
  
  main = "Gráfica Nº2: Frecuencia absoluta del nivel de riesgo VEI a nivel mundial (global)",
  
  xlab = "Nivel de riesgo VEI",
  
  ylab = "Cantidad (ni)",
  
  col = colores_riesgo <- c(
    "#008000",  # Minimal
    "#66CC66",  # Low
    "#FFFF66",  # Moderate
    "#FFCC66",  # High
    "#FF9933",  # Very High
    "#FF6666",  # Extreme
    "#CC0000",  # Catastrophic
    "#BDBDBD"   # Unknown
  ),
  
  names.arg = TDFRiesgoPlot$Nivel_Riesgo,
  
  cex.names = 0.8,
  
  las = 1,
  
  ylim = c(0, 889)
  )

4.3 Diagrama de barras de Frecuencia Relativa Local

barplot(
  TDFRiesgoPlot$hi,
  
  main = "Gráfica Nº3: Frecuencia relativa del nivel de riesgo VEI a nivel mundial (local)",
  
  xlab = "Nivel de riesgo VEI",
  
  ylab = "Porcentaje (%)",
  
  col = colores_riesgo <- c(
    "#008000",  # Minimal
    "#66CC66",  # Low
    "#FFFF66",  # Moderate
    "#FFCC66",  # High
    "#FF9933",  # Very High
    "#FF6666",  # Extreme
    "#CC0000",  # Catastrophic
    "#BDBDBD"   # Unknown
  ),
  
  names.arg = TDFRiesgoPlot$Nivel_Riesgo,
  
  cex.names = 0.8,
  
  las = 1
)

4.4 diagrama de barras de Frecuencia Relativa Global

barplot(
  TDFRiesgoPlot$hi,
  
  main = "Gráfica Nº4: Frecuencia relativa del nivel de riesgo VEI a nivel mundial (global)",
  
  xlab = "Nivel de riesgo VEI",
  
  ylab = "Porcentaje (%)",
  
  col = colores_riesgo <- c(
    "#008000",  # Minimal
    "#66CC66",  # Low
    "#FFFF66",  # Moderate
    "#FFCC66",  # High
    "#FF9933",  # Very High
    "#FF6666",  # Extreme
    "#CC0000",  # Catastrophic
    "#BDBDBD"   # Unknown
  ),
  
  names.arg = TDFRiesgoPlot$Nivel_Riesgo,
  
  cex.names = 0.8,
  
  las = 1,
  
  ylim = c(0, 100)
)

4.5 Diagrama Circular hi

par(mar = c(4, 4, 4, 10))

# Gráfico circular
pie(
  TDFRiesgoPlot$hi,
  
  col = colores_riesgo,
  
  labels = NA,
  
  border = "black",
  
  lwd = 2,
  
  main = "Gráfica Nº5: Distribución porcentual del nivel de riesgo VEI a nivel mundial"
)

# Leyenda
legend(
  "right",
  
  title = "Nivel de riesgo VEI",
  
  legend = paste(
    TDFRiesgoPlot$Nivel_Riesgo,
    "-",
    round(TDFRiesgoPlot$hi, 2),
    "%"
  ),
  
  fill = colores_riesgo,
  
  cex = 0.9,
  
  title.cex = 1,
  
  xpd = TRUE,
  
  inset = c(-0.30, 0)
)

5 Indicadores Estadísticos

5.1 Moda

moda_riesgo <- TDFRiesgoFinal %>%
  filter(Nivel_Riesgo != "Total") %>%
  filter(ni == max(ni))

#Ver tabla
moda_riesgo

5.2 Mediana

TDFRiesgoMed <- TDFRiesgoFinal %>%
  filter(Nivel_Riesgo != "Total") %>%
  mutate(
    Ni = cumsum(ni),
    Hi_acum = cumsum(hi)
  )

N <- sum(TDFRiesgoMed$ni)

pos_mediana <- N / 2

mediana_riesgo <- TDFRiesgoMed %>%
  filter(Ni >= pos_mediana) %>%
  slice(1)

#Ver tabla
TDFRiesgoMed

6 Resumen General de Indicadores

tabla_medidas <- data.frame(
  Medida = c("Moda", "Mediana"),
  Categoria = c(
    as.character(moda_riesgo$Nivel_Riesgo),
    as.character(mediana_riesgo$Nivel_Riesgo)
  ),
  Frecuencia = c(
    moda_riesgo$ni,
    mediana_riesgo$ni
  ),
  Porcentaje = c(
    moda_riesgo$hi,
    mediana_riesgo$hi
  )
)

tabla_medidas %>%
  gt() %>%
  
  tab_header(
    title = md("**Tabla Nro. 2**"),
    subtitle = md("Medidas de tendencia central del nivel de riesgo VEI")
  ) %>%
  
  cols_label(
    Medida = "Medida",
    Categoria = "Categoría",
    Frecuencia = "ni",
    Porcentaje = "hi (%)"
  ) %>%
  
  fmt_number(
    columns = Porcentaje,
    decimals = 2
  ) %>%
  
  tab_source_note(
    source_note = md("Elaborado por: Grupo 2 – Carrera de Geología")
  )
Tabla Nro. 2
Medidas de tendencia central del nivel de riesgo VEI
Medida Categoría ni hi (%)
Moda Low 240 26.73
Mediana Moderate 222 24.72
Elaborado por: Grupo 2 – Carrera de Geología

7 Conclusiones

La variable “Nivel de riesgo VEI” fluctúa entre “Minimal” y “Unknown”, y gira en torno a “Moderate” dentro de la distribución de los niveles de riesgo VEI a nivel mundial. Además, la categoría “Low” constituye el nivel de riesgo predominante al presentar la mayor frecuencia de observaciones.