1 . CARGA DE LIBRERÍAS Y DATOS

En esta sección inicial, preparamos el entorno de trabajo cargando los paquetes estadísticos y de formato, y procedemos a importar y limpiar nuestra base de datos para aislar la variable cuantitativa discreta de estudio: Año

# 1.1 Carga de librerías necesarias
library(tidyverse) 
library(gt)        
library(e1071)     

# 1.2 Importar el dataset 
datos_volcanes <- read.csv("global_volcano_eruption_intelligence (1).csv", sep = ";")

# 1.3 Limpieza a prueba de balas
datos_limpios_pluma <- datos_volcanes

# Convertimos a número. 
datos_limpios_pluma$pluma <- suppressWarnings(as.numeric(datos_limpios_pluma$year))

# Filtramos quitando todos los NA 
datos_limpios_pluma <- datos_limpios_pluma[!is.na(datos_limpios_pluma$pluma), ]

# Aislamos la variable para los cálculos matemáticos
var_discreta <- datos_limpios_pluma$pluma

2 . DEFINICIÓN DE INTERVALOS REPRESENTATIVOS

En esta sección calculamos los parámetros estadísticos base utilizando la Regla de Sturges. Posteriormente, determinamos el rango y la amplitud. Debido a la asimetría de los datos, ajustamos el número de intervalos a \(K = 9\) para obtener una distribución representativa con numeros enteros.

# 2.1 Parámetros estadísticos base
n_var <- length(var_discreta)
min_var <- min(var_discreta)
max_var <- max(var_discreta)

# Rango
R_var <- max_var - min_var

# 2.2 Regla de Sturges (Teórica)
k_sturges <- round(1 + 3.322 * log10(n_var))
amplitud_sturges <- R_var / k_sturges

# 2.3 Ajuste de Intervalos Representativos
k_red <- 9  
amplitud_red <- R_var / k_red

# 2.4 Cálculo de límites matemáticos exactos (Usando K=6)
limites_red <- seq(min_var, max_var, length.out = k_red + 1)

# 2.5 Redondeo exclusivo para las etiquetas visuales de la tabla
limites_rd_red <- round(limites_red, 2)
Intervalo_txt_red <- paste0("[", limites_rd_red[-length(limites_rd_red)], " - ", limites_rd_red[-1], ")")
Intervalo_txt_red[k_red] <- paste0("[", limites_rd_red[k_red], " - ", limites_rd_red[length(limites_rd_red)], "]") 

3 . CÁLCULO DE FRECUENCIAS Y TABLAS DE DISTRIBUCIÓN

En esta fase procedemos a realizar el conteo de los datos. Para evidenciar el comportamiento de la distribución, primero se calculan las frecuencias y utilizando la Regla de Sturges original, lo cual nos permitirá identificar la presencia de clases nulas. Posteriormente, se presenta la tabla optimizada.

3.1 Distribución original de datos

# 2.1 Construcción de la tabla de frecuencias puntuales
tdf_discreta <- data.frame(n_eru = var_discreta) %>%
  count(n_eru, name = "ni") %>%
  arrange(n_eru) %>%
  mutate(
    hi = ni / sum(ni),
    Ni_asc = cumsum(ni),
    Hi_asc = cumsum(hi),
    # Frecuencia descendente
    Ni_desc = sum(ni) - lag(cumsum(ni), default = 0),
    Hi_desc = sum(hi) - lag(cumsum(hi), default = 0)
  )

# 2.2 Añadir fila de totales
tdf_final_disc <- tdf_discreta %>%
  add_row(
    n_eru = NA, 
    ni = sum(tdf_discreta$ni), 
    hi = 1.0, 
    Ni_asc = sum(tdf_discreta$ni), 
    Hi_asc = 1.0, 
    Ni_desc = sum(tdf_discreta$ni), 
    Hi_desc = 1.0
  )

# 2.3 Visualización con formato GT (Estilo APA)
tdf_final_disc %>%
  gt() %>%
  cols_label(
    n_eru = html("N° Erupciones<br>(X)"),
    ni = html("n<sub>i</sub>"),
    hi = html("h<sub>i</sub>"),
    Ni_asc = html("N<sub>i</sub> &uarr;"),
    Hi_asc = html("H<sub>i</sub> &uarr;"),
    Ni_desc = html("N<sub>i</sub> &darr;"),
    Hi_desc = html("H<sub>i</sub> &darr;")
  ) %>%
  tab_header(
    title = md("**Tabla N° 1**"),
    subtitle = "Cantidad de eurpciones volcánicas registradas a nivel global durante el registro histórico"
  ) %>%
  fmt_number(columns = c(hi, Hi_asc, Hi_desc), decimals = 4) %>%
  cols_align(align = "center", columns = everything()) %>%
  tab_options(
    table.font.names = "Times New Roman",
    table_body.border.bottom.color = "black"
  )
Tabla N° 1
Cantidad de eurpciones volcánicas registradas a nivel global durante el registro histórico
N° Erupciones
(X)
ni hi Ni Hi Ni Hi
-4360 1 0.0011 1 0.0011 898 1.0000
-4350 1 0.0011 2 0.0022 897 0.9989
-4050 1 0.0011 3 0.0033 896 0.9978
-4000 1 0.0011 4 0.0045 895 0.9967
-3580 1 0.0011 5 0.0056 894 0.9955
-3550 1 0.0011 6 0.0067 893 0.9944
-2420 1 0.0011 7 0.0078 892 0.9933
-2040 1 0.0011 8 0.0089 891 0.9922
-1900 1 0.0011 9 0.0100 890 0.9911
-1890 1 0.0011 10 0.0111 889 0.9900
-1860 1 0.0011 11 0.0122 888 0.9889
-1750 1 0.0011 12 0.0134 887 0.9878
-1645 1 0.0011 13 0.0145 886 0.9866
-1610 1 0.0011 14 0.0156 885 0.9855
-1550 1 0.0011 15 0.0167 884 0.9844
-1460 1 0.0011 16 0.0178 883 0.9833
-1370 1 0.0011 17 0.0189 882 0.9822
-1050 1 0.0011 18 0.0200 881 0.9811
-1010 1 0.0011 19 0.0212 880 0.9800
-455 1 0.0011 20 0.0223 879 0.9788
-250 1 0.0011 21 0.0234 878 0.9777
-197 1 0.0011 22 0.0245 877 0.9766
-141 1 0.0011 23 0.0256 876 0.9755
-100 1 0.0011 24 0.0267 875 0.9744
-50 1 0.0011 25 0.0278 874 0.9733
46 1 0.0011 26 0.0290 873 0.9722
50 1 0.0011 27 0.0301 872 0.9710
60 1 0.0011 28 0.0312 871 0.9699
79 1 0.0011 29 0.0323 870 0.9688
200 1 0.0011 30 0.0334 869 0.9677
233 1 0.0011 31 0.0345 868 0.9666
240 1 0.0011 32 0.0356 867 0.9655
350 2 0.0022 34 0.0379 866 0.9644
416 1 0.0011 35 0.0390 864 0.9621
450 1 0.0011 36 0.0401 863 0.9610
500 1 0.0011 37 0.0412 862 0.9599
590 1 0.0011 38 0.0423 861 0.9588
640 1 0.0011 39 0.0434 860 0.9577
653 1 0.0011 40 0.0445 859 0.9566
683 1 0.0011 41 0.0457 858 0.9555
710 1 0.0011 42 0.0468 857 0.9543
764 1 0.0011 43 0.0479 856 0.9532
766 1 0.0011 44 0.0490 855 0.9521
787 1 0.0011 45 0.0501 854 0.9510
847 1 0.0011 46 0.0512 853 0.9499
920 1 0.0011 47 0.0523 852 0.9488
930 1 0.0011 48 0.0535 851 0.9477
934 1 0.0011 49 0.0546 850 0.9465
946 1 0.0011 50 0.0557 849 0.9454
950 1 0.0011 51 0.0568 848 0.9443
1050 1 0.0011 52 0.0579 847 0.9432
1104 1 0.0011 53 0.0590 846 0.9421
1151 1 0.0011 54 0.0601 845 0.9410
1158 1 0.0011 55 0.0612 844 0.9399
1169 2 0.0022 57 0.0635 843 0.9388
1177 1 0.0011 58 0.0646 841 0.9365
1206 1 0.0011 59 0.0657 840 0.9354
1250 1 0.0011 60 0.0668 839 0.9343
1262 1 0.0011 61 0.0679 838 0.9332
1280 1 0.0011 62 0.0690 837 0.9321
1300 1 0.0011 63 0.0702 836 0.9310
1302 1 0.0011 64 0.0713 835 0.9298
1311 2 0.0022 66 0.0735 834 0.9287
1329 2 0.0022 68 0.0757 832 0.9265
1331 1 0.0011 69 0.0768 830 0.9243
1334 1 0.0011 70 0.0780 829 0.9232
1341 1 0.0011 71 0.0791 828 0.9220
1357 1 0.0011 72 0.0802 827 0.9209
1362 1 0.0011 73 0.0813 826 0.9198
1375 1 0.0011 74 0.0824 825 0.9187
1376 1 0.0011 75 0.0835 824 0.9176
1385 1 0.0011 76 0.0846 823 0.9165
1389 1 0.0011 77 0.0857 822 0.9154
1410 1 0.0011 78 0.0869 821 0.9143
1430 1 0.0011 79 0.0880 820 0.9131
1471 1 0.0011 80 0.0891 819 0.9120
1477 1 0.0011 81 0.0902 818 0.9109
1485 1 0.0011 82 0.0913 817 0.9098
1500 1 0.0011 83 0.0924 816 0.9087
1510 2 0.0022 85 0.0947 815 0.9076
1536 1 0.0011 86 0.0958 813 0.9053
1538 1 0.0011 87 0.0969 812 0.9042
1540 1 0.0011 88 0.0980 811 0.9031
1541 1 0.0011 89 0.0991 810 0.9020
1550 2 0.0022 91 0.1013 809 0.9009
1564 1 0.0011 92 0.1024 807 0.8987
1565 1 0.0011 93 0.1036 806 0.8976
1566 1 0.0011 94 0.1047 805 0.8964
1568 1 0.0011 95 0.1058 804 0.8953
1570 1 0.0011 96 0.1069 803 0.8942
1572 1 0.0011 97 0.1080 802 0.8931
1576 1 0.0011 98 0.1091 801 0.8920
1580 3 0.0033 101 0.1125 800 0.8909
1581 1 0.0011 102 0.1136 797 0.8875
1586 1 0.0011 103 0.1147 796 0.8864
1587 1 0.0011 104 0.1158 795 0.8853
1590 1 0.0011 105 0.1169 794 0.8842
1593 1 0.0011 106 0.1180 793 0.8831
1595 1 0.0011 107 0.1192 792 0.8820
1596 1 0.0011 108 0.1203 791 0.8808
1597 2 0.0022 110 0.1225 790 0.8797
1598 2 0.0022 112 0.1247 788 0.8775
1600 1 0.0011 113 0.1258 786 0.8753
1606 1 0.0011 114 0.1269 785 0.8742
1608 1 0.0011 115 0.1281 784 0.8731
1609 1 0.0011 116 0.1292 783 0.8719
1615 1 0.0011 117 0.1303 782 0.8708
1617 1 0.0011 118 0.1314 781 0.8697
1625 1 0.0011 119 0.1325 780 0.8686
1629 1 0.0011 120 0.1336 779 0.8675
1630 1 0.0011 121 0.1347 778 0.8664
1631 2 0.0022 123 0.1370 777 0.8653
1636 1 0.0011 124 0.1381 775 0.8630
1638 1 0.0011 125 0.1392 774 0.8619
1640 2 0.0022 127 0.1414 773 0.8608
1646 1 0.0011 128 0.1425 771 0.8586
1650 1 0.0011 129 0.1437 770 0.8575
1659 2 0.0022 131 0.1459 769 0.8563
1660 4 0.0045 135 0.1503 767 0.8541
1663 1 0.0011 136 0.1514 763 0.8497
1664 2 0.0022 138 0.1537 762 0.8486
1669 2 0.0022 140 0.1559 760 0.8463
1670 1 0.0011 141 0.1570 758 0.8441
1672 2 0.0022 143 0.1592 757 0.8430
1673 1 0.0011 144 0.1604 755 0.8408
1677 1 0.0011 145 0.1615 754 0.8396
1679 1 0.0011 146 0.1626 753 0.8385
1682 1 0.0011 147 0.1637 752 0.8374
1684 1 0.0011 148 0.1648 751 0.8363
1690 2 0.0022 150 0.1670 750 0.8352
1692 1 0.0011 151 0.1682 748 0.8330
1693 2 0.0022 153 0.1704 747 0.8318
1694 1 0.0011 154 0.1715 745 0.8296
1698 3 0.0033 157 0.1748 744 0.8285
1706 1 0.0011 158 0.1759 741 0.8252
1707 2 0.0022 160 0.1782 740 0.8241
1711 1 0.0011 161 0.1793 738 0.8218
1712 1 0.0011 162 0.1804 737 0.8207
1714 1 0.0011 163 0.1815 736 0.8196
1716 4 0.0045 167 0.1860 735 0.8185
1717 3 0.0033 170 0.1893 731 0.8140
1718 1 0.0011 171 0.1904 728 0.8107
1721 2 0.0022 173 0.1927 727 0.8096
1726 1 0.0011 174 0.1938 725 0.8073
1727 1 0.0011 175 0.1949 724 0.8062
1729 2 0.0022 177 0.1971 723 0.8051
1730 3 0.0033 180 0.2004 721 0.8029
1737 1 0.0011 181 0.2016 718 0.7996
1741 1 0.0011 182 0.2027 717 0.7984
1742 2 0.0022 184 0.2049 716 0.7973
1749 1 0.0011 185 0.2060 714 0.7951
1753 1 0.0011 186 0.2071 713 0.7940
1754 1 0.0011 187 0.2082 712 0.7929
1755 1 0.0011 188 0.2094 711 0.7918
1757 1 0.0011 189 0.2105 710 0.7906
1760 1 0.0011 190 0.2116 709 0.7895
1762 1 0.0011 191 0.2127 708 0.7884
1766 2 0.0022 193 0.2149 707 0.7873
1768 1 0.0011 194 0.2160 705 0.7851
1770 1 0.0011 195 0.2171 704 0.7840
1772 2 0.0022 197 0.2194 703 0.7829
1773 1 0.0011 198 0.2205 701 0.7806
1775 2 0.0022 200 0.2227 700 0.7795
1778 1 0.0011 201 0.2238 698 0.7773
1779 2 0.0022 203 0.2261 697 0.7762
1780 4 0.0045 207 0.2305 695 0.7739
1781 1 0.0011 208 0.2316 691 0.7695
1783 2 0.0022 210 0.2339 690 0.7684
1784 3 0.0033 213 0.2372 688 0.7661
1785 1 0.0011 214 0.2383 685 0.7628
1786 1 0.0011 215 0.2394 684 0.7617
1789 1 0.0011 216 0.2405 683 0.7606
1790 1 0.0011 217 0.2416 682 0.7595
1792 1 0.0011 218 0.2428 681 0.7584
1794 1 0.0011 219 0.2439 680 0.7572
1797 1 0.0011 220 0.2450 679 0.7561
1800 5 0.0056 225 0.2506 678 0.7550
1801 1 0.0011 226 0.2517 673 0.7494
1803 2 0.0022 228 0.2539 672 0.7483
1804 1 0.0011 229 0.2550 670 0.7461
1805 1 0.0011 230 0.2561 669 0.7450
1808 1 0.0011 231 0.2572 668 0.7439
1812 2 0.0022 233 0.2595 667 0.7428
1813 1 0.0011 234 0.2606 665 0.7405
1814 1 0.0011 235 0.2617 664 0.7394
1815 1 0.0011 236 0.2628 663 0.7383
1816 1 0.0011 237 0.2639 662 0.7372
1817 2 0.0022 239 0.2661 661 0.7361
1818 1 0.0011 240 0.2673 659 0.7339
1819 1 0.0011 241 0.2684 658 0.7327
1820 2 0.0022 243 0.2706 657 0.7316
1822 3 0.0033 246 0.2739 655 0.7294
1823 1 0.0011 247 0.2751 652 0.7261
1825 2 0.0022 249 0.2773 651 0.7249
1826 3 0.0033 252 0.2806 649 0.7227
1827 2 0.0022 254 0.2829 646 0.7194
1829 1 0.0011 255 0.2840 644 0.7171
1832 2 0.0022 257 0.2862 643 0.7160
1833 1 0.0011 258 0.2873 641 0.7138
1835 2 0.0022 260 0.2895 640 0.7127
1837 1 0.0011 261 0.2906 638 0.7105
1838 1 0.0011 262 0.2918 637 0.7094
1839 1 0.0011 263 0.2929 636 0.7082
1840 5 0.0056 268 0.2984 635 0.7071
1841 1 0.0011 269 0.2996 630 0.7016
1843 4 0.0045 273 0.3040 629 0.7004
1845 3 0.0033 276 0.3073 625 0.6960
1846 3 0.0033 279 0.3107 622 0.6927
1847 2 0.0022 281 0.3129 619 0.6893
1848 1 0.0011 282 0.3140 617 0.6871
1850 1 0.0011 283 0.3151 616 0.6860
1853 3 0.0033 286 0.3185 615 0.6849
1854 3 0.0033 289 0.3218 612 0.6815
1856 3 0.0033 292 0.3252 609 0.6782
1857 1 0.0011 293 0.3263 606 0.6748
1858 3 0.0033 296 0.3296 605 0.6737
1860 3 0.0033 299 0.3330 602 0.6704
1861 3 0.0033 302 0.3363 599 0.6670
1863 1 0.0011 303 0.3374 596 0.6637
1864 1 0.0011 304 0.3385 595 0.6626
1866 2 0.0022 306 0.3408 594 0.6615
1867 1 0.0011 307 0.3419 592 0.6592
1868 2 0.0022 309 0.3441 591 0.6581
1869 2 0.0022 311 0.3463 589 0.6559
1870 3 0.0033 314 0.3497 587 0.6537
1871 4 0.0045 318 0.3541 584 0.6503
1872 6 0.0067 324 0.3608 580 0.6459
1873 2 0.0022 326 0.3630 574 0.6392
1874 2 0.0022 328 0.3653 572 0.6370
1875 3 0.0033 331 0.3686 570 0.6347
1877 2 0.0022 333 0.3708 567 0.6314
1878 4 0.0045 337 0.3753 565 0.6292
1879 1 0.0011 338 0.3764 561 0.6247
1883 5 0.0056 343 0.3820 560 0.6236
1884 1 0.0011 344 0.3831 555 0.6180
1885 2 0.0022 346 0.3853 554 0.6169
1886 3 0.0033 349 0.3886 552 0.6147
1887 1 0.0011 350 0.3898 549 0.6114
1888 2 0.0022 352 0.3920 548 0.6102
1889 1 0.0011 353 0.3931 546 0.6080
1890 2 0.0022 355 0.3953 545 0.6069
1892 3 0.0033 358 0.3987 543 0.6047
1893 2 0.0022 360 0.4009 540 0.6013
1894 1 0.0011 361 0.4020 538 0.5991
1895 4 0.0045 365 0.4065 537 0.5980
1896 1 0.0011 366 0.4076 533 0.5935
1897 2 0.0022 368 0.4098 532 0.5924
1899 2 0.0022 370 0.4120 530 0.5902
1900 4 0.0045 374 0.4165 528 0.5880
1901 2 0.0022 376 0.4187 524 0.5835
1902 10 0.0111 386 0.4298 522 0.5813
1903 2 0.0022 388 0.4321 512 0.5702
1904 2 0.0022 390 0.4343 510 0.5679
1905 2 0.0022 392 0.4365 508 0.5657
1906 2 0.0022 394 0.4388 506 0.5635
1907 9 0.0100 403 0.4488 504 0.5612
1909 2 0.0022 405 0.4510 495 0.5512
1910 2 0.0022 407 0.4532 493 0.5490
1911 5 0.0056 412 0.4588 491 0.5468
1912 2 0.0022 414 0.4610 486 0.5412
1913 5 0.0056 419 0.4666 484 0.5390
1914 4 0.0045 423 0.4710 479 0.5334
1915 1 0.0011 424 0.4722 475 0.5290
1916 2 0.0022 426 0.4744 474 0.5278
1917 4 0.0045 430 0.4788 472 0.5256
1918 2 0.0022 432 0.4811 468 0.5212
1919 6 0.0067 438 0.4878 466 0.5189
1920 2 0.0022 440 0.4900 460 0.5122
1921 1 0.0011 441 0.4911 458 0.5100
1923 3 0.0033 444 0.4944 457 0.5089
1924 2 0.0022 446 0.4967 454 0.5056
1926 3 0.0033 449 0.5000 452 0.5033
1927 1 0.0011 450 0.5011 449 0.5000
1928 5 0.0056 455 0.5067 448 0.4989
1929 4 0.0045 459 0.5111 443 0.4933
1930 4 0.0045 463 0.5156 439 0.4889
1931 1 0.0011 464 0.5167 435 0.4844
1932 3 0.0033 467 0.5200 434 0.4833
1933 4 0.0045 471 0.5245 431 0.4800
1934 1 0.0011 472 0.5256 427 0.4755
1936 2 0.0022 474 0.5278 426 0.4744
1937 2 0.0022 476 0.5301 424 0.4722
1938 4 0.0045 480 0.5345 422 0.4699
1939 3 0.0033 483 0.5379 418 0.4655
1940 3 0.0033 486 0.5412 415 0.4621
1941 2 0.0022 488 0.5434 412 0.4588
1943 2 0.0022 490 0.5457 410 0.4566
1944 7 0.0078 497 0.5535 408 0.4543
1946 4 0.0045 501 0.5579 401 0.4465
1947 4 0.0045 505 0.5624 397 0.4421
1948 1 0.0011 506 0.5635 393 0.4376
1949 3 0.0033 509 0.5668 392 0.4365
1950 3 0.0033 512 0.5702 389 0.4332
1951 6 0.0067 518 0.5768 386 0.4298
1952 7 0.0078 525 0.5846 380 0.4232
1953 8 0.0089 533 0.5935 373 0.4154
1954 5 0.0056 538 0.5991 365 0.4065
1955 2 0.0022 540 0.6013 360 0.4009
1956 1 0.0011 541 0.6024 358 0.3987
1957 4 0.0045 545 0.6069 357 0.3976
1958 3 0.0033 548 0.6102 353 0.3931
1960 1 0.0011 549 0.6114 350 0.3898
1961 5 0.0056 554 0.6169 349 0.3886
1962 3 0.0033 557 0.6203 344 0.3831
1963 8 0.0089 565 0.6292 341 0.3797
1964 3 0.0033 568 0.6325 333 0.3708
1965 2 0.0022 570 0.6347 330 0.3675
1966 5 0.0056 575 0.6403 328 0.3653
1967 4 0.0045 579 0.6448 323 0.3597
1968 2 0.0022 581 0.6470 319 0.3552
1969 4 0.0045 585 0.6514 317 0.3530
1970 2 0.0022 587 0.6537 313 0.3486
1971 6 0.0067 593 0.6604 311 0.3463
1972 3 0.0033 596 0.6637 305 0.3396
1973 4 0.0045 600 0.6682 302 0.3363
1974 7 0.0078 607 0.6759 298 0.3318
1975 3 0.0033 610 0.6793 291 0.3241
1976 5 0.0056 615 0.6849 288 0.3207
1977 5 0.0056 620 0.6904 283 0.3151
1978 6 0.0067 626 0.6971 278 0.3096
1979 7 0.0078 633 0.7049 272 0.3029
1980 3 0.0033 636 0.7082 265 0.2951
1981 8 0.0089 644 0.7171 262 0.2918
1982 4 0.0045 648 0.7216 254 0.2829
1983 4 0.0045 652 0.7261 250 0.2784
1984 5 0.0056 657 0.7316 246 0.2739
1985 3 0.0033 660 0.7350 241 0.2684
1986 5 0.0056 665 0.7405 238 0.2650
1987 3 0.0033 668 0.7439 233 0.2595
1988 5 0.0056 673 0.7494 230 0.2561
1989 2 0.0022 675 0.7517 225 0.2506
1990 10 0.0111 685 0.7628 223 0.2483
1991 7 0.0078 692 0.7706 213 0.2372
1992 8 0.0089 700 0.7795 206 0.2294
1993 9 0.0100 709 0.7895 198 0.2205
1994 9 0.0100 718 0.7996 189 0.2105
1995 6 0.0067 724 0.8062 180 0.2004
1996 7 0.0078 731 0.8140 174 0.1938
1997 9 0.0100 740 0.8241 167 0.1860
1998 3 0.0033 743 0.8274 158 0.1759
1999 5 0.0056 748 0.8330 155 0.1726
2000 5 0.0056 753 0.8385 150 0.1670
2001 4 0.0045 757 0.8430 145 0.1615
2002 6 0.0067 763 0.8497 141 0.1570
2003 1 0.0011 764 0.8508 135 0.1503
2004 3 0.0033 767 0.8541 134 0.1492
2005 3 0.0033 770 0.8575 131 0.1459
2006 8 0.0089 778 0.8664 128 0.1425
2007 5 0.0056 783 0.8719 120 0.1336
2008 4 0.0045 787 0.8764 115 0.1281
2009 2 0.0022 789 0.8786 111 0.1236
2010 9 0.0100 798 0.8886 109 0.1214
2011 10 0.0111 808 0.8998 100 0.1114
2012 3 0.0033 811 0.9031 90 0.1002
2013 8 0.0089 819 0.9120 87 0.0969
2014 6 0.0067 825 0.9187 79 0.0880
2015 7 0.0078 832 0.9265 73 0.0813
2016 5 0.0056 837 0.9321 66 0.0735
2017 8 0.0089 845 0.9410 61 0.0679
2018 15 0.0167 860 0.9577 53 0.0590
2019 8 0.0089 868 0.9666 38 0.0423
2020 2 0.0022 870 0.9688 30 0.0334
2021 7 0.0078 877 0.9766 28 0.0312
2022 5 0.0056 882 0.9822 21 0.0234
2023 5 0.0056 887 0.9878 16 0.0178
2024 8 0.0089 895 0.9967 11 0.0122
2025 3 0.0033 898 1.0000 3 0.0033
NA 898 1.0000 898 1.0000 898 1.0000

3.2 Distribución Original con Regla de Sturges

# 1. Límites enteros para Sturges
limites_st <- seq(min_var, max_var, length.out = k_sturges + 1)
limites_rd_st <- round(limites_st, 0)

Intervalo_txt_st <- paste0("[", limites_rd_st[-length(limites_rd_st)], " - ", limites_rd_st[-1], ")")
Intervalo_txt_st[k_sturges] <- paste0("[", limites_rd_st[k_sturges], " - ", limites_rd_st[length(limites_rd_st)], "]")

# 2. Conteo de frecuencias usando los límites enteros
ni_st <- numeric(k_sturges)
for (i in 1:k_sturges) {
  if (i < k_sturges) {
    ni_st[i] <- sum(var_discreta >= limites_rd_st[i] & var_discreta < limites_rd_st[i+1])
  } else {
    ni_st[i] <- sum(var_discreta >= limites_rd_st[i] & var_discreta <= max_var)
  }
}

hi_st <- round((ni_st / sum(ni_st)) * 100, 2)
hi_st[k_sturges] <- 100 - sum(hi_st[1:(k_sturges-1)])

# 3. Frecuencias acumuladas
Ni_asc_st <- cumsum(ni_st)
Ni_dsc_st <- rev(cumsum(rev(ni_st)))
Hi_asc_st <- cumsum(hi_st)
Hi_dsc_st <- rev(cumsum(rev(hi_st)))

# 4. Construcción de la Tabla 1
TDF_sturges <- data.frame(Intervalo = as.character(Intervalo_txt_st), ni = ni_st, hi = hi_st, Ni_dsc = Ni_dsc_st, Hi_dsc = Hi_dsc_st, Ni_asc = Ni_asc_st, Hi_asc = Hi_asc_st)
TDF_final_sturges <- rbind(TDF_sturges, data.frame(Intervalo = "Total", ni = sum(ni_st), hi = 100, Ni_dsc = NA, Hi_dsc = NA, Ni_asc = NA, Hi_asc = NA))

TDF_final_sturges %>%
  mutate(across(c(ni, hi, Ni_dsc, Hi_dsc, Ni_asc, Hi_asc), as.numeric)) %>%
  gt() %>%
  cols_label(
    Intervalo = html("Intervalo de<br>Clase (Año)"),
    ni = html("Frecuencia<br>absoluta<br>n<sub>i</sub>"),
    hi = html("Frecuencia<br>relativa<br>h<sub>i%</sub>"),
    Ni_dsc = html("N<sub>i</sub> &darr;"), Hi_dsc = html("H<sub>i%</sub> &darr;"),
    Ni_asc = html("N<sub>i</sub> &uarr;"), Hi_asc = html("H<sub>i%</sub> &uarr;")
  ) %>%
  tab_header(title = md("**Tabla N° 1**"), subtitle = paste0("Distribución temporal de eventos eruptivos globales según la Regla de Sturges (K = ", k_sturges, ")")) %>%
  tab_source_note(source_note = "Elaborado por: Grupo 2 - Carrera de Geología.") %>%
  cols_align(align = "center", columns = everything()) %>%
  sub_missing(missing_text = "") %>%
  fmt_number(columns = c(hi, Hi_dsc, Hi_asc), decimals = 2) %>%
  tab_options(table.font.names = "Times New Roman", column_labels.border.top.color = "black", column_labels.border.top.width = px(2), column_labels.border.bottom.color = "black", column_labels.border.bottom.width = px(1), table_body.border.bottom.color = "black", table_body.border.bottom.width = px(2))
Tabla N° 1
Distribución temporal de eventos eruptivos globales según la Regla de Sturges (K = 11)
Intervalo de
Clase (Año)
Frecuencia
absoluta
ni
Frecuencia
relativa
hi%
Ni Hi% Ni Hi%
[-4360 - -3780) 4 0.45 898 100.00 4 0.45
[-3780 - -3199) 2 0.22 894 99.55 6 0.67
[-3199 - -2619) 0 0.00 892 99.33 6 0.67
[-2619 - -2038) 2 0.22 892 99.33 8 0.89
[-2038 - -1458) 8 0.89 890 99.11 16 1.78
[-1458 - -877) 3 0.33 882 98.22 19 2.11
[-877 - -297) 1 0.11 879 97.89 20 2.22
[-297 - 284) 12 1.34 878 97.78 32 3.56
[284 - 864) 14 1.56 866 96.44 46 5.12
[864 - 1445) 33 3.67 852 94.88 79 8.79
[1445 - 2025] 819 91.21 819 91.21 898 100.00
Total 898 100.00



Elaborado por: Grupo 2 - Carrera de Geología.

3.3 Distribución Ajustada (Intervalos Representativos)

Al observar la Tabla N° 2, las amplitudes calculadas teóricamente por Sturges fragmentan el registro histórico de forma asimétrica. A continuación, se optimiza la distribución aplicando un ancho de clase constante y entero ajustado a \(K = 9\) intervalos lógicos.

# 1. Conteo de frecuencias usando los límites ajustados enteros
ni_red <- numeric(k_red)
for (i in 1:k_red) {
  if (i < k_red) {
    ni_red[i] <- sum(var_discreta >= limites_rd_red[i] & var_discreta < limites_rd_red[i+1])
  } else {
    ni_red[i] <- sum(var_discreta >= limites_rd_red[i] & var_discreta <= max_var)
  }
}

hi_red <- round((ni_red / sum(ni_red)) * 100, 2)
hi_red[k_red] <- 100 - sum(hi_red[1:(k_red-1)]) 

# 2. Frecuencias acumuladas
Ni_asc_red <- cumsum(ni_red)
Ni_dsc_red <- rev(cumsum(rev(ni_red)))
Hi_asc_red <- cumsum(hi_red)
Hi_dsc_red <- rev(cumsum(rev(hi_red)))

# 3. Construcción y presentación de la Tabla Ajustada (Tabla N° 2)
TDF_reducida <- data.frame(Intervalo = as.character(Intervalo_txt_red), ni = ni_red, hi = hi_red, Ni_dsc = Ni_dsc_red, Hi_dsc = Hi_dsc_red, Ni_asc = Ni_asc_red, Hi_asc = Hi_asc_red)
TDF_final_reducida <- rbind(TDF_reducida, data.frame(Intervalo = "Total", ni = sum(ni_red), hi = 100, Ni_dsc = NA, Hi_dsc = NA, Ni_asc = NA, Hi_asc = NA))

TDF_final_reducida %>%
  mutate(across(c(ni, hi, Ni_dsc, Hi_dsc, Ni_asc, Hi_asc), as.numeric)) %>%
  gt() %>%
  cols_label(
    Intervalo = html("Intervalo de<br>Clase (Año)"),
    ni = html("Frecuencia<br>absoluta<br>n<sub>i</sub>"),
    hi = html("Frecuencia<br>relativa<br>h<sub>i%</sub>"),
    Ni_dsc = html("N<sub>i</sub> &darr;"), Hi_dsc = html("H<sub>i%</sub> &darr;"),
    Ni_asc = html("N<sub>i</sub> &uarr;"), Hi_asc = html("H<sub>i%</sub> &uarr;")
  ) %>%
  tab_header(title = md("**Tabla N° 2**"), subtitle = "Distribución temporal optimizada de los eventos eruptivos históricos (K = 9)") %>%
  tab_source_note(source_note = "Elaborado por: Grupo 2 - Carrera de Geología.") %>%
  cols_align(align = "center", columns = everything()) %>%
  sub_missing(missing_text = "") %>%
  fmt_number(columns = c(hi, Hi_dsc, Hi_asc), decimals = 2) %>%
  tab_options(table.font.names = "Times New Roman", column_labels.border.top.color = "black", column_labels.border.top.width = px(2), column_labels.border.bottom.color = "black", column_labels.border.bottom.width = px(1), table_body.border.bottom.color = "black", table_body.border.bottom.width = px(2))
Tabla N° 2
Distribución temporal optimizada de los eventos eruptivos históricos (K = 9)
Intervalo de
Clase (Año)
Frecuencia
absoluta
ni
Frecuencia
relativa
hi%
Ni Hi% Ni Hi%
[-4360 - -3650.56) 4 0.45 898 100.00 4 0.45
[-3650.56 - -2941.11) 2 0.22 894 99.55 6 0.67
[-2941.11 - -2231.67) 1 0.11 892 99.33 7 0.78
[-2231.67 - -1522.22) 8 0.89 891 99.22 15 1.67
[-1522.22 - -812.78) 4 0.45 883 98.33 19 2.12
[-812.78 - -103.33) 4 0.45 879 97.88 23 2.57
[-103.33 - 606.11) 15 1.67 875 97.43 38 4.24
[606.11 - 1315.56) 28 3.12 860 95.76 66 7.36
[1315.56 - 2025] 832 92.64 832 92.64 898 100.00
Total 898 100.00



Elaborado por: Grupo 2 - Carrera de Geología.

4 . REPRESENTACIÓN GRÁFICA: HISTOGRAMAS

En esta sección se presentan las distribuciones de frecuencias de forma individual y posteriormente una comparativa integrada.

4.1 Frecuencia Absoluta Local (\(n_i\))

par(mar=c(5, 5, 9, 2))
ni_graf <- ni_red
max_ni <- max(ni_graf)

bp_ni <- barplot(ni_graf,
                 col = "#FF0000",
                 border = "black",
                 space = 0,
                 las = 1,
                 ylim = c(0, max_ni * 1.15),
                 yaxt = "n",
                 main = "",
                 xlab = "Periodo cronológico (años)",
                 ylab = "Cantidad (ni)")
mtext("Gráfica N°1.Frecuencia absoluta local de eventos eruptivos\na lo largo del registro histórico (local)", 
      side = 3, line = 3, cex = 0.8, font = 2)
ticks_y <- round(seq(0, max_ni, length.out = 5), 0)
axis(side = 2, at = ticks_y, labels = ticks_y, las = 1)
axis(side = 1, at = 0:length(ni_graf), labels = limites_rd_red, cex.axis = 0.8)

par(mar=c(5, 4, 4, 2) + 0.1)

4.2 Frecuencia Absoluta Global (\(n_i\))

par(mar=c(5, 5, 8, 2))
n_total_global <- 898 # Dato global de tu script original

bp_ni_glob <- barplot(ni_graf,
                      col = "#7B3F00",
                      border = "black",
                      space = 0,
                      las = 1,
                      ylim = c(0, n_total_global * 1.05),
                      yaxt = "n",
                      main = "",
                      xlab = "Periodo cronológico (años)",
                      ylab = "Cantidad (ni)")
mtext("Gráfica N°2.Frecuencia absoluta local de eventos eruptivos\na lo largo del registro histórico (global)", 
      side = 3, line = 3, cex = 0.8, font = 2)
ticks_y_global <- c(0, 200, 400, 600, 800, n_total_global)
axis(side = 2, at = ticks_y_global, labels = ticks_y_global, las = 1)
axis(side = 1, at = 0:length(ni_graf), labels = limites_rd_red, cex.axis = 0.8)

# Línea de referencia global
abline(h = n_total_global, col = "blue", lty = 2, lwd = 1.5)

4.3 Frecuencia Relativa Local (\(h_i\%\))

par(mar=c(5, 5, 9, 2))
hi_graf <- hi_red
max_hi <- max(hi_graf)

bp_hi <- barplot(hi_graf,
                 col = "red",
                 border = "black",
                 space = 0,
                 las = 1,
                 ylim = c(0, max_hi * 1.15),
                 yaxt = "n",
                 main = "",
                 xlab = "Periodo cronológico (años)",
                 ylab = "Porcentaje (%)")
mtext("Gráfica N°3.Frecuencia relativa local de eventos eruptivos\na lo largo del registro histórico (local)", 
      side = 3, line = 3, cex = 0.8, font = 2)
ticks_y_hi <- seq(0, max_hi * 1.15, length.out = 5)
axis(side = 2, at = ticks_y_hi, labels = round(ticks_y_hi, 2), las = 1)
axis(side = 1, at = 0:length(hi_graf), labels = limites_rd_red, cex.axis = 0.8)

4.4 Frecuencia Relativa Global (\(h_i\%\))

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

bp_hi_glob <- barplot(hi_graf,
                      col = "#7B3F00",
                      border = "black",
                      space = 0,
                      las = 1,
                      ylim = c(0, 100),
                      yaxt = "n",
                      main = "",
                      xlab = "Periodo cronológico (años)",
                      ylab = "Porcentaje (%)")
mtext("Gráfica N°4.Frecuencia relativa local de eventos eruptivos\na lo largo del registro histórico (global)", 
      side = 3, line = 3, cex = 0.7, font = 2)

ticks_hi_global <- seq(0, 100, by = 20)
axis(side = 2, at = ticks_hi_global, labels = paste0(ticks_hi_global, "%"), las = 1)
axis(side = 1, at = 0:length(hi_graf), labels = limites_rd_red, cex.axis = 0.8)

# Línea de referencia al 100%
abline(h = 100, col = "blue", lty = 2, lwd = 1.5)

# Restaurar la configuración gráfica a un solo panel para los siguientes gráficos (Caja y Ojivas)
par(mfrow = c(1, 1))

4.5 Panel Comparativo Integrado

# Configuramos el lienzo para 2 filas y 2 columnas
par(mfrow = c(2, 2), mar = c(5, 5, 6, 2))

# 1. Frecuencia Absoluta Local
bp_ni <- barplot(ni_red, space = 0, col = "#FF0000", border = "black", las = 1,
                 ylim = c(0, max(ni_red) * 1.2), yaxt = "n",
                 main = "Frecuencia Absoluta (Local)", xlab = "Periodo cronológico (años)", ylab = "Cantidad (ni)", cex.names = 0.5, las = 2)
axis(side = 2, at = round(seq(0, max(ni_red), length.out = 5), 0), las = 1)
axis(side = 1, at = 0:length(ni_red), labels = limites_rd_red, cex.axis = 0.6)


# 2. Frecuencia Absoluta Global
barplot(ni_graf, space = 0, col = "#7B3F00", border = "black", las = 1,
        ylim = c(0, n_total_global * 1.05), yaxt = "n",
        main = "Frecuencia Absoluta (Global)", xlab = "Periodo cronológico (años)", ylab = "Cantidad (ni)", cex.names = 0.5, las = 2)
axis(side = 2, at = c(0, 200, 400, 600, 800, n_total_global), las = 1)
axis(side = 1, at = 0:length(ni_graf), labels = limites_rd_red, cex.axis = 0.6)
abline(h = n_total_global, col = "blue", lty = 2, lwd = 1)

# 3. Frecuencia Relativa Local
bp_hi <- barplot(hi_red, space = 0, col = "red", border = "black", las = 1,
                 ylim = c(0, max(hi_red) * 1.2), yaxt = "n",
                 main = "Frecuencia Relativa (Local)", xlab = "Periodo cronológico (años)", ylab = "Porcentaje (%)", cex.names = 0.5, las = 2)
axis(side = 2, at = round(seq(0, max(hi_red), length.out = 5), 2), las = 1)
axis(side = 1, at = 0:length(hi_red), labels = limites_rd_red, cex.axis = 0.6)


# 4. Frecuencia Relativa Global
barplot(hi_graf, space = 0, col = "#7B3F00", border = "black", las = 1,
        ylim = c(0, 110), yaxt = "n",
        main = "Frecuencia Relativa (Global)", xlab = "Periodo cronológico (años)", ylab = "Porcentaje (%)", cex.names = 0.5, las = 2)
axis(side = 2, at = seq(0, 100, by = 25), labels = paste0(seq(0, 100, by = 25), "%"), las = 1)
axis(side = 1, at = 0:length(hi_graf), labels = limites_rd_red, cex.axis = 0.6)
abline(h = 100, col = "blue", lty = 2, lwd = 1)

# Restaurar panel
par(mfrow = c(1, 1))

5 . DIAGRAMA DE CAJA (BOXPLOT)

El diagrama de caja nos permite visualizar la dispersión central de los datos, identificando la mediana, los cuartiles y la magnitud de los valores atípicos (outliers) .

# Ajustamos márgenes para asegurar que el título largo se visualice correctamente
par(mar = c(5, 5, 6, 2))

# Generamos el Boxplot
boxplot(var_discreta, 
        col = "lightblue", 
        border = "black",
        horizontal = TRUE, 
        xlab = "Periodo cronológico (años)",
        main = "", 
        notch = TRUE) 

# Título personalizado y centrado
title(main = "Gráfica N°5 Dispersión cronológica de eventos eruptivos globales y detección de outliers", 
      line = 3, cex.main = 0.9)

# Agregamos la leyenda explicativa
legend("topright", 
       legend = c("Caja: 50% central (Q1 - Q3)", 
                  "Línea gruesa: Mediana", 
                  "Círculos: Valores Atípicos (Outliers)"), 
       fill = c("lightblue", NA, NA),
       border = c("black", NA, NA),
       lty = c(NA, 1, NA),
       lwd = c(NA, 2, NA),
       pch = c(NA, NA, 1),
       bty = "n", 
       cex = 0.7)

6 . GRÁFICA DE OJIVAS

En esta sección construimos las ojivas para observar el comportamiento acumulativo del número de erupciones tanto en sentido ascendente como descendente.

6.1 Ojiva de frecuencia absoluta

# Configuración de márgenes para dar espacio a la leyenda a la derecha
par(mar = c(5, 5, 4, 10), xpd = TRUE)

# Coordenadas exactas usando los límites y frecuencias de la tabla reducida
x_asc <- limites_red[-1]                # Ls (Límites superiores)
x_desc <- limites_red[-length(limites_red)] # Li (Límites inferiores)
y_asc <- Ni_asc_red                     # Acumulada ascendente
y_desc <- Ni_dsc_red                    # Acumulada descendente

# 1. Dibujar la Ascendente 
plot(x_asc, y_asc,
     type = "b", 
     main = "",
     xlab = "Periodo cronológico (años)",
     ylab = "Frecuencia absoluta acumulada (ni)",
     col = "blue",
     
     pch = 19, 
     xlim = c(min(limites_red), max(limites_red)), 
     ylim = c(0, sum(ni_red)),
     bty = "l")

# 2. Agregar la Descendente 
lines(x_desc, y_desc, col = "red", type = "b", pch = 19)

# Cuadrícula para facilitar la lectura del punto de cruce
grid()

# Título ajustado con mtext
mtext("Gráfica N°6 Ojivas de Distribución Acumulada\ndel Registro Histórico de Erupciones", 
      side = 3, 
      line = 2, 
      adj = 0.5, 
      cex = 0.9, 
      font = 2)

# Leyenda lateral
legend("right", 
       legend = c("Ascendente", "Descendente"), 
       col = c("red", "blue"), 
       lty = 1, 
       pch = 19, 
       cex = 0.8, 
       inset = c(-0.35, 0), # Ajuste para que quede fuera del área de trazado
       bty = "n")

6.2 Ojivas Relativas Acumuladas (\(H_i\%\))

# Configuración de márgenes para la leyenda externa
par(mar = c(5, 5, 4, 10), xpd = TRUE)

# Coordenadas usando los límites y las frecuencias relativas acumuladas
x_asc <- limites_red
y_asc <- c(0, Hi_asc_red)      # Empezamos en 0 para la ascendente
x_desc <- limites_red
y_desc <- c(Hi_dsc_red, 0)     # Terminamos en 0 para la descendente

# 1. Dibujar la Ascendente Relativa
plot(x_asc, y_asc,
     type = "b", 
     main = "",
     xlab = "Periodo cronológico(años)",
     ylab = "Frecuencia relativa acumulada (%)",
     col = "blue",
     pch = 19, 
     xlim = c(min(limites_red), max(limites_red)), 
     ylim = c(0, 100),
     bty = "l")

# 2. Agregar la Descendente Relativa
lines(x_asc, y_desc, col = "red", type = "b", pch = 19)

# Cuadrícula para localizar la mediana (punto de cruce)
grid()

# Título ajustado con mtext
mtext("Gráfica N°7: Ojivas de Frecuencia Relativa Acumulada del Registro Volcánico", 
      side = 3, 
      line = 2, 
      adj = 0.5, 
      cex = 0.9, 
      font = 2)

# Leyenda lateral
legend("right", 
       legend = c("Ascendente (%)", "Descendente (%)"), 
       col = c("blue", "red"), 
       lty = 1, 
       pch = 19, 
       cex = 0.8, 
       inset = c(-0.35, 0), 
       bty = "n")

# Restaurar márgenes
par(mar = c(5, 4, 4, 2) + 0.1, xpd = FALSE)

7 . INDICADORES ESTADÍSTICOS DE LA ALTURA DE LA PLUMA

A continuación, se presentan los indicadores estadísticos calculados para el número de erupciones, permitiendo describir el comportamiento central y la variabilidad de la muestra.

7.1 Indicadores de Tendencia Central

# 1. Cálculo de indicadores
media_val <- mean(var_discreta)
mediana_val <- median(var_discreta)
get_mode <- function(x) {
  ux <- unique(x)
  ux[which.max(tabulate(match(x, ux)))]
}
moda_val <- get_mode(var_discreta)
min_val <- min(var_discreta)
max_val <- max(var_discreta)
rango_val <- max_val - min_val

# 2. Creación del Data Frame
TDF_indicadores <- data.frame(
  Indicador = c("Mínimo", "Media", "Mediana", "Moda", "Máximo", "Rango"),
  Valor = c(min_val, media_val, mediana_val, moda_val, max_val, rango_val),
  Unidad = rep("años", 6),
  Interpretación = c(
    "Año de la erupción más antigua registrada en la base de datos.",
    "Año promedio de ocurrencia; influenciado por la alta densidad del registro moderno.",
    "Punto temporal central: el 50% de las erupciones ocurrieron antes de este año.",
    "Año específico de la historia que concentra la mayor cantidad de registros.",
    "Año de la erupción más reciente documentada en el catálogo.",
    "Amplitud total en años del registro histórico analizado."
  )
)

# 3. Generación de la Tabla N° 3 con formato gt
TDF_indicadores %>%
  gt() %>%
  tab_header(
    title = md("**Tabla N° 3**"), 
    subtitle = "Indicadores de tendencia central del periodo anual de eventos eruptivos"
  ) %>%
  cols_label(
    Indicador = "Indicador", 
    Valor = "Valor (Año)", 
    Unidad = "Unidad", 
    Interpretación = "Interpretación Histórica"
  ) %>%
  fmt_number(columns = Valor, decimals = 0) %>%
  tab_source_note(source_note = "Elaborado por: Grupo 2 - Carrera de Geología.") %>%
  tab_options(
    table.font.names = "Times New Roman", 
    column_labels.border.top.color = "black", 
    column_labels.border.top.width = px(2), 
    column_labels.border.bottom.color = "black", 
    column_labels.border.bottom.width = px(1), 
    table_body.border.bottom.color = "black", 
    table_body.border.bottom.width = px(2)
  )
Tabla N° 3
Indicadores de tendencia central del periodo anual de eventos eruptivos
Indicador Valor (Año) Unidad Interpretación Histórica
Mínimo −4,360 años Año de la erupción más antigua registrada en la base de datos.
Media 1,737 años Año promedio de ocurrencia; influenciado por la alta densidad del registro moderno.
Mediana 1,926 años Punto temporal central: el 50% de las erupciones ocurrieron antes de este año.
Moda 2,018 años Año específico de la historia que concentra la mayor cantidad de registros.
Máximo 2,025 años Año de la erupción más reciente documentada en el catálogo.
Rango 6,385 años Amplitud total en años del registro histórico analizado.
Elaborado por: Grupo 2 - Carrera de Geología.

7.2 Indicadores de Dispersión

varianza_val <- var(var_discreta)
desviacion_val <- sd(var_discreta)
cv_val <- (desviacion_val / media_val) * 100

TDF_dispersion <- data.frame(
  Indicador = c("Varianza", "Desviación estándar", "Coeficiente de variación"),
  Valor = c(varianza_val, desviacion_val, cv_val),
  Unidad = c("años²", "años", "%"),
  Interpretación = c(
    "Cuantifica la dispersión temporal cuadrática; refleja la amplitud de los registros antiguos.",
    "Fluctuación promedio en años de los eventos respecto a la media cronológica.",
    "Expresa la variabilidad relativa del tiempo de registro histórico."
  )
)

TDF_dispersion %>%
  mutate(Valor = ifelse(Indicador == "Coeficiente de variación", 
                        paste0(round(Valor, 2), "%"), 
                        as.character(round(Valor, 2)))) %>%
  gt() %>%
  tab_header(title = md("**Tabla N° 4**"), subtitle = "Indicadores de dispersión del tiempo histórico de erupciones") %>%
  cols_label(Indicador = "Indicador", Valor = "Valor", Unidad = "Unidad", Interpretación = "Interpretación Geocronológica") %>%
  tab_source_note(source_note = "Elaborado por: Grupo 2 - Carrera de Geología.") %>%
  tab_options(table.font.names = "Times New Roman", column_labels.border.top.color = "black", column_labels.border.top.width = px(2), column_labels.border.bottom.color = "black", column_labels.border.bottom.width = px(1), table_body.border.bottom.color = "black", table_body.border.bottom.width = px(2))
Tabla N° 4
Indicadores de dispersión del tiempo histórico de erupciones
Indicador Valor Unidad Interpretación Geocronológica
Varianza 502234.15 años² Cuantifica la dispersión temporal cuadrática; refleja la amplitud de los registros antiguos.
Desviación estándar 708.68 años Fluctuación promedio en años de los eventos respecto a la media cronológica.
Coeficiente de variación 40.8% % Expresa la variabilidad relativa del tiempo de registro histórico.
Elaborado por: Grupo 2 - Carrera de Geología.

7.3 Indicadores de Posición

q1 <- quantile(var_discreta, 0.25)
q2 <- median(var_discreta)
q3 <- quantile(var_discreta, 0.75)
iqr <- q3 - q1
lim_inf <- q1 - 1.5 * iqr
lim_sup <- q3 + 1.5 * iqr

outliers <- var_discreta[var_discreta < lim_inf | var_discreta > lim_sup]
num_outliers <- length(outliers)
porc_outliers <- (num_outliers / length(var_discreta)) * 100

TDF_posicion <- data.frame(
  Indicador = c("Cuartil 1 (Q1)", "Cuartil 2 (Mediana)", "Cuartil 3 (Q3)", "Rango Intercuartílico (IQR)", "Límite Inferior Outliers", "Límite Superior Outliers", "Número de Outliers"),
  Valor = c(q1, q2, q3, iqr, lim_inf, lim_sup, num_outliers),
  Unidad = c(rep("años", 6), "erupciones"),
  Interpretación = c(
    "El 25% de las erupciones más antiguas ocurrieron antes de este año.",
    "El 50% de la actividad histórica se concentra antes de este año central.",
    "El 75% de los eventos eruptivos se sitúan antes de ingresar al periodo moderno.",
    "Periodo de años que abarca el 50% central de las erupciones registradas.",
    "Umbral cronológico inferior para identificar erupciones atípicamente antiguas.",
    "Umbral cronológico superior para identificar anomalías temporales recientes.",
    paste0("Cantidad de erupciones catalogadas como outliers temporales (", round(porc_outliers, 2), "%).")
  )
)

TDF_posicion %>%
  mutate(Valor = ifelse(Indicador == "Número de Outliers", as.character(round(Valor, 0)), as.character(round(Valor, 0)))) %>%
  gt() %>%
  tab_header(title = md("**Tabla N° 5**"), subtitle = "Indicadores de posición y detección de valores atípicos temporales") %>%
  cols_label(Indicador = "Indicador", Valor = "Valor", Unidad = "Unidad", Interpretación = "Interpretación Cronológica") %>%
  tab_source_note(source_note = "Elaborado por: Grupo 2 - Carrera de Geología.") %>%
  tab_options(table.font.names = "Times New Roman", column_labels.border.top.color = "black", column_labels.border.top.width = px(2), column_labels.border.bottom.color = "black", column_labels.border.bottom.width = px(1), table_body.border.bottom.color = "black", table_body.border.bottom.width = px(2))
Tabla N° 5
Indicadores de posición y detección de valores atípicos temporales
Indicador Valor Unidad Interpretación Cronológica
Cuartil 1 (Q1) 1800 años El 25% de las erupciones más antiguas ocurrieron antes de este año.
Cuartil 2 (Mediana) 1926 años El 50% de la actividad histórica se concentra antes de este año central.
Cuartil 3 (Q3) 1989 años El 75% de los eventos eruptivos se sitúan antes de ingresar al periodo moderno.
Rango Intercuartílico (IQR) 188 años Periodo de años que abarca el 50% central de las erupciones registradas.
Límite Inferior Outliers 1518 años Umbral cronológico inferior para identificar erupciones atípicamente antiguas.
Límite Superior Outliers 2272 años Umbral cronológico superior para identificar anomalías temporales recientes.
Número de Outliers 85 erupciones Cantidad de erupciones catalogadas como outliers temporales (9.47%).
Elaborado por: Grupo 2 - Carrera de Geología.

7.4 Indicadores de Forma

# Aseguramos el uso de la librería 'moments'
library(moments)
asimetria <- skewness(var_discreta)
curtosis <- kurtosis(var_discreta) - 3 

if(abs(asimetria) < 0.5) {
    interp_asimetria <- "Distribución aproximadamente simétrica temporalmente."
} else if(asimetria > 0) {
    interp_asimetria <- "Asimetría positiva."
} else {
    interp_asimetria <- "Asimetría negativa (sesgo a la izquierda): Indica una densa concentración de datos en los años recientes, con una cola larga hacia el pasado."
}

if(abs(curtosis) < 0.5) {
    interp_curtosis <- "Distribución mesocúrtica (concentración similar a la normal)."
} else if(curtosis > 0) {
    interp_curtosis <- "Distribución leptocúrtica (muy picuda): Concentración masiva de registros en un periodo histórico muy estrecho (modernidad)."
} else {
    interp_curtosis <- "Distribución platicúrtica (más aplanada)."
}

forma_df <- data.frame(
    Indicador = c("Coeficiente de Asimetría (Fisher)", "Interpretación de la Asimetría", 
                  "Coeficiente de Curtosis (Exceso)", "Interpretación de la Curtosis"),
    Valor = c(as.character(round(asimetria, 4)), interp_asimetria, as.character(round(curtosis, 4)), interp_curtosis),
    Formula = c("g₁ = E[(X-μ)³]/σ³", "|g₁|<0.5: Simétrica; g₁>0: Positiva; g₁<0: Negativa", 
                "g₂ = E[(X-μ)⁴]/σ⁴ - 3", "|g₂|<0.5: Mesocúrtica; g₂>0: Leptocúrtica; g₂<0: Platicúrtica")
)

forma_df %>%
    gt() %>%
    cols_label(Indicador = "Indicador", Valor = "Valor / Análisis", Formula = "Fórmula / Criterio") %>%
    cols_align(align = "center", columns = c(Indicador, Formula)) %>%
    cols_align(align = "left", columns = Valor) %>% 
    tab_header(title = md("**Tabla N° 6**"), subtitle = "Indicadores de forma de la distribución del periodo anual") %>%
    tab_source_note(source_note = "Elaborado por: Grupo 2 - Carrera de Geología.") %>%
    tab_options(table.font.names = "Times New Roman", column_labels.border.top.color = "black", column_labels.border.top.width = px(2), column_labels.border.bottom.color = "black", column_labels.border.bottom.width = px(1), table_body.border.bottom.color = "black", table_body.border.bottom.width = px(2))
Tabla N° 6
Indicadores de forma de la distribución del periodo anual
Indicador Valor / Análisis Fórmula / Criterio
Coeficiente de Asimetría (Fisher) -5.4944 g₁ = E[(X-μ)³]/σ³
Interpretación de la Asimetría Asimetría negativa (sesgo a la izquierda): Indica una densa concentración de datos en los años recientes, con una cola larga hacia el pasado. |g₁|<0.5: Simétrica; g₁>0: Positiva; g₁<0: Negativa
Coeficiente de Curtosis (Exceso) 34.8733 g₂ = E[(X-μ)⁴]/σ⁴ - 3
Interpretación de la Curtosis Distribución leptocúrtica (muy picuda): Concentración masiva de registros en un periodo histórico muy estrecho (modernidad). |g₂|<0.5: Mesocúrtica; g₂>0: Leptocúrtica; g₂<0: Platicúrtica
Elaborado por: Grupo 2 - Carrera de Geología.

8 . CONCLUSIÓN

El análisis estadístico del periodo anual en el que ocurrieron los eventos eruptivos revela un comportamiento fuertemente condicionado por el sesgo de preservación de la información geológica y el desarrollo del registro histórico humano. La variable fluctúa en un rango de tiempo extremadamente amplio de más de 6,300 años, extendiéndose desde un registro mínimo en el año -4360 (4360 a.C.) hasta un máximo en el año 2025, lo que refleja la profunda escala cronológica del catálogo analizado. Los indicadores muestran una distribución masivamente concentrada en la era contemporánea: el último intervalo representativo (del año 1445 al 2025) concentra por sí solo 819 eventos, lo que representa un abrumador 91.21% de la totalidad de la muestra (\(N = 898\)).

Esta acumulación asimétrica genera una marcada brecha entre la media aritmética y la mediana, desplazando esta última hacia la modernidad y evidenciando una dispersión temporal muy alta y una absoluta falta de homogeneidad cronológica en el conjunto de datos.La distribución presenta una evidente asimetría negativa (sesgo a la izquierda), lo cual es corroborado geométricamente por el comportamiento de los histogramas y el cruce de las curvas en las ojivas: existe una cola sumamente alargada y delgada orientada hacia el pasado lejano, conformada por los escasos eventos de la antigüedad que lograron ser documentados, en contraste con una saturación masiva de datos en el extremo derecho del gráfico.

Asimismo, la curtosis revela un perfil fuertemente leptocúrtico, caracterizado por una elevadísima concentración de frecuencias en torno al periodo moderno. Desde una perspectiva vulcanológica y geohistórica, este fenómeno “picudo” no responde a un incremento real en el dinamismo geodinámico interno de la Tierra, sino al “efecto ventana” de la observación humana; la proliferación global de tecnologías de monitoreo avanzado (redes sismográficas, radares y sensores satelitales) en los últimos siglos garantiza el registro sistemático de la actividad actual, mientras que las erupciones más antiguas permanecen bajo un severo subregistro debido al olvido histórico y la erosión de las evidencias geológicas.Por todo lo anterior, el comportamiento de la variable denota una profunda desigualdad en la densidad de la información a lo largo del tiempo.

El análisis posicional y el diagrama de caja identifican como valores atípicos (outliers) a aquellas escasas erupciones de la antigüedad clásica y prehistórica que se proyectan hacia el extremo izquierdo de la escala temporal, representando registros aislados de un valor incalculable para la geocronología. En consecuencia, al confirmarse una distribución no normal, con un sesgo crítico y colas pesadas hacia el pasado, se concluye que para cualquier análisis probabilístico o modelamiento de peligro volcánico posterior resulta metodológicamente más robusto y representativo el uso de la mediana y el rango intercuartílico (IQR) como descriptores fieles de la tendencia central y la variabilidad real de la serie temporal, evitando así la distorsión matemática que el promedio aritmético sufre ante distribuciones históricas severamente truncadas.