CARGA DE DATOS Y LIBRERÍAS

# CARGA DE LIBRERÍAS
library(gt)
library(dplyr)
## 
## Adjuntando el paquete: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(knitr)
library(e1071)
library(moments)
## 
## Adjuntando el paquete: 'moments'
## The following objects are masked from 'package:e1071':
## 
##     kurtosis, moment, skewness
# Cargar datos
datos <- read.csv(
  "C:/Users/arian/OneDrive/Documentos/Universidad/3er SEMESTRE/estadistica/2026/datos/dataset_geologico_limpio_80.csv",
  header = TRUE,
  sep = ",",
  dec = ".",
  stringsAsFactors = FALSE
)

# Extraer variable
latitud_raw<- datos$LATITUDE
cat("Primeros valores de LATITUDE:\n")
## Primeros valores de LATITUDE:
head(latitud_raw)
## [1] 41.10000 40.85000 41.38333 41.63333 41.35000 41.90000
latitud_raw <- as.numeric(latitud_raw)
latitud<- na.omit(latitud_raw)
summary(latitud)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##  -16.23   38.82   41.20   39.25   42.35   80.81
n <- length(latitud)
cat("Número de observaciones válidas (n):", n, "\n\n")
## Número de observaciones válidas (n): 27784

TABLA DE DISTRIBUCIÓN DE FRECUENCIA

Agrupación por la regla de Sturges

# Numero de datos
n <- length(latitud)

# Parámetros de Sturges
minimo<- min(latitud)
maximo<- max(latitud)
R <- maximo - minimo
k <- floor(1 + 3.3 * log10(n))
A <- R / k

cat("PARÁMETROS:\n")
## PARÁMETROS:
cat("  Rango (R)            :", round(R, 4), "grados\n")
##   Rango (R)            : 97.0458 grados
cat("  Número intervalos (k):", k, "\n")
##   Número intervalos (k): 15
cat("  Amplitud clase (A)   :", round(A, 4), "grados\n\n")
##   Amplitud clase (A)   : 6.4697 grados
# Límites de clase
li <- seq(from = min(latitud), to = max(latitud) - A, by = A)
ls <- seq(from = min(latitud) + A, to = max(latitud), by = A)
MC <- round((li + ls) / 2,2)
# Frecuencias absolutas agrupadas
n_i <- numeric(length (li))
for (i in 1:length (li)) {
  n_i[i] <- sum(latitud >= li[i] & latitud < ls[i])
}
n_i[length(li)] <- sum(latitud >= li[length(li)] & latitud<= maximo)

# Frecuencias relativas y acumuladas
h_i <- (n_i / sum(n_i)) * 100
Ni_asc <- cumsum(n_i)
Hi_asc <- round(cumsum(h_i),2)
Ni_desc <- rev(cumsum(rev(n_i)))
Hi_desc <- round(rev(cumsum(rev(h_i))),2)
# Crear tabla agrupada
TablaFrecuenciasAgrupada <- round(data.frame(
  li, ls,MC,n_i,h_i,Ni_asc,Hi_asc,Ni_desc,Hi_desc
),2)

TablaFrecuenciasAgrupada[nrow(TablaFrecuenciasAgrupada) + 1, ] <- 
  c(NA, NA, "TOTAL", sum(n_i), round(sum(h_i), 2), NA, NA, NA, NA)

TablaFrecuenciasAgrupada
##        li    ls    MC   n_i   h_i Ni_asc Hi_asc Ni_desc Hi_desc
## 1  -16.23 -9.76   -13    12  0.04     12   0.04   27784     100
## 2   -9.76 -3.29 -6.53     0     0     12   0.04   27772   99.96
## 3   -3.29  3.18 -0.06     0     0     12   0.04   27772   99.96
## 4    3.18  9.65  6.41     9  0.03     21   0.08   27772   99.96
## 5    9.65 16.12 12.88    48  0.17     69   0.25   27763   99.92
## 6   16.12 22.59 19.35  1062  3.82   1131   4.07   27715   99.75
## 7   22.59 29.06 25.82  1882  6.77   3013  10.84   26653   95.93
## 8   29.06 35.53 32.29  2124  7.64   5137  18.49   24771   89.16
## 9   35.53    42 38.76 12443 44.78  17580  63.27   22647   81.51
## 10     42 48.47 45.23  9449 34.01  27029  97.28   10204   36.73
## 11  48.47 54.93  51.7   325  1.17  27354  98.45     755    2.72
## 12  54.93  61.4 58.17    55   0.2  27409  98.65     430    1.55
## 13   61.4 67.87 64.64   151  0.54  27560  99.19     375    1.35
## 14  67.87 74.34 71.11   220  0.79  27780  99.99     224    0.81
## 15  74.34 80.81 77.58     4  0.01  27784    100       4    0.01
## 16   <NA>  <NA> TOTAL 27784   100   <NA>   <NA>    <NA>    <NA>
# Mostrar tabla con formato mejorada

Tabla_GT <- TablaFrecuenciasAgrupada %>%
  gt() %>%
  tab_header(
    title = md("**Tabla N.º 1**"),
    subtitle = md("**Tabla de distribución de frecuencias de la variable LATITUDE**")
  ) %>%
  tab_source_note(
    source_note = md("**Autor: Grupo**")
  ) %>%
  cols_label(
    li = "Límite Inferior",
    ls = "Límite Superior",
    MC = "Marca de Clase",
    n_i = "ni",
    h_i = "hi (%)",
    Ni_asc = "Ni Asc",
    Hi_asc = "Hi Asc (%)",
    Ni_desc = "Ni Desc",
    Hi_desc = "Hi Desc (%)"
  ) %>%
  fmt_number(
    columns = c(li, ls, MC),
    decimals = 2
  ) %>%
  tab_options(
    table.border.top.color = "black",
    table.border.bottom.color = "black",
    table.border.top.style = "solid",
    table.border.bottom.style = "solid",
    column_labels.border.top.color = "black",
    column_labels.border.bottom.color = "black",
    column_labels.border.bottom.width = px(2),
    row.striping.include_table_body = TRUE,
    heading.border.bottom.color = "black",
    heading.border.bottom.width = px(2),
    table_body.hlines.color = "gray",
    table_body.border.bottom.color = "black"
  ) %>%
  tab_style(
    style = cell_text(weight = "bold"),
    locations = cells_body(
      rows = MC == "TOTAL"
    )
  )

Tabla_GT
Tabla N.º 1
Tabla de distribución de frecuencias de la variable LATITUDE
Límite Inferior Límite Superior Marca de Clase ni hi (%) Ni Asc Hi Asc (%) Ni Desc Hi Desc (%)
-16.23 -9.76 -13 12 0.04 12 0.04 27784 100
-9.76 -3.29 -6.53 0 0 12 0.04 27772 99.96
-3.29 3.18 -0.06 0 0 12 0.04 27772 99.96
3.18 9.65 6.41 9 0.03 21 0.08 27772 99.96
9.65 16.12 12.88 48 0.17 69 0.25 27763 99.92
16.12 22.59 19.35 1062 3.82 1131 4.07 27715 99.75
22.59 29.06 25.82 1882 6.77 3013 10.84 26653 95.93
29.06 35.53 32.29 2124 7.64 5137 18.49 24771 89.16
35.53 42 38.76 12443 44.78 17580 63.27 22647 81.51
42 48.47 45.23 9449 34.01 27029 97.28 10204 36.73
48.47 54.93 51.7 325 1.17 27354 98.45 755 2.72
54.93 61.4 58.17 55 0.2 27409 98.65 430 1.55
61.4 67.87 64.64 151 0.54 27560 99.19 375 1.35
67.87 74.34 71.11 220 0.79 27780 99.99 224 0.81
74.34 80.81 77.58 4 0.01 27784 100 4 0.01
NA NA TOTAL 27784 100 NA NA NA NA
Autor: Grupo

Tabla Agrupada

cat("TABLA DE FRECUENCIAS SIMPLE (AGRUPADA)\n")
## TABLA DE FRECUENCIAS SIMPLE (AGRUPADA)
# Límites extremos redondeados a múltiplos de 10
limite_inferior <- floor(minimo / 10) * 10
limite_superior <- ceiling(maximo / 10) * 10

# Amplitud de clase
A <- 10

# Límites de clase
li <- seq(from = limite_inferior,
          to = limite_superior - A,
          by = A)

ls <- seq(from = limite_inferior + A,
          to = limite_superior,
          by = A)

# Número de intervalos y rango
k <- length(li)
R <- limite_superior - limite_inferior

cat("PARÁMETROS:\n")
## PARÁMETROS:
cat("  Rango (R)            :", round(R, 4), "grados\n")
##   Rango (R)            : 110 grados
cat("  Número intervalos (k):", k, "\n")
##   Número intervalos (k): 11
cat("  Amplitud clase (A)   :", A, "grados\n\n")
##   Amplitud clase (A)   : 10 grados
# Marca de clase
MC <- round((li + ls) / 2, 2)

# Frecuencias absolutas agrupadas
n_i <- numeric(length(li))

for (i in 1:length(li)) {
  n_i[i] <- sum(latitud >= li[i] & latitud < ls[i])
}

# Corregir el último intervalo para incluir el valor máximo
n_i[length(li)] <- sum(latitud >= li[length(li)] &
                         latitud <= limite_superior)

# Frecuencias relativas y acumuladas
h_i <- round((n_i / sum(n_i)) * 100, 2)
Ni_asc <- cumsum(n_i)
Hi_asc <- round(cumsum(h_i), 2)
Ni_desc <- rev(cumsum(rev(n_i)))
Hi_desc <- round(rev(cumsum(rev(h_i))), 2)

# Crear tabla agrupada
TablaFrecuenciasAgrupada <- data.frame(
  LI = li,
  LS = ls,
  MC = MC,
  ni = n_i,
  hi = h_i,
  Ni_asc = Ni_asc,
  Hi_asc = Hi_asc,
  Ni_desc = Ni_desc,
  Hi_desc = Hi_desc
)

# Fila TOTAL
TablaFrecuenciasAgrupada[nrow(TablaFrecuenciasAgrupada) + 1, ] <-
  c(NA, NA, NA, sum(n_i), round(sum(h_i), 1), NA, NA, NA, NA)

# Mostrar tabla
TablaFrecuenciasAgrupada
##     LI  LS  MC    ni     hi Ni_asc Hi_asc Ni_desc Hi_desc
## 1  -20 -10 -15    12   0.04     12   0.04   27784  100.01
## 2  -10   0  -5     0   0.00     12   0.04   27772   99.97
## 3    0  10   5     9   0.03     21   0.07   27772   99.97
## 4   10  20  15  1074   3.87   1095   3.94   27763   99.94
## 5   20  30  25  2642   9.51   3737  13.45   26689   96.07
## 6   30  40  35  4267  15.36   8004  28.81   24047   86.56
## 7   40  50  45 19034  68.51  27038  97.32   19780   71.20
## 8   50  60  55   324   1.17  27362  98.49     746    2.69
## 9   60  70  65   417   1.50  27779  99.99     422    1.52
## 10  70  80  75     3   0.01  27782 100.00       5    0.02
## 11  80  90  85     2   0.01  27784 100.01       2    0.01
## 12  NA  NA  NA 27784 100.00     NA     NA      NA      NA
library(gt)

TablaFrecuenciasAgrupada_gt <- TablaFrecuenciasAgrupada %>%
  gt() %>%
  tab_header(
    title = md("**Tabla de distribución de frecuencias agrupada**"),
    subtitle = "Variable: Latitud"
  ) %>%
  cols_label(
    LI = "Límite inferior",
    LS = "Límite superior",
    MC = "Marca de clase",
    ni = "ni",
    hi = "hi (%)",
    Ni_asc = "Ni ↑",
    Hi_asc = "Hi ↑ (%)",
    Ni_desc = "Ni ↓",
    Hi_desc = "Hi ↓ (%)"
  ) %>%
  fmt_number(
    columns = c(LI, LS, MC, hi, Hi_asc, Hi_desc),
    decimals = 2
  ) %>%
  fmt_number(
    columns = c(ni, Ni_asc, Ni_desc),
    decimals = 0
  ) %>%
  tab_style(
    style = cell_text(weight = "bold"),
    locations = cells_body(
      rows = is.na(LI)
    )
  ) %>%
  tab_options(
    table.font.size = px(13),
    heading.title.font.size = px(18),
    heading.subtitle.font.size = px(14),
    table.width = pct(100)
  )

TablaFrecuenciasAgrupada_gt
Tabla de distribución de frecuencias agrupada
Variable: Latitud
Límite inferior Límite superior Marca de clase ni hi (%) Ni ↑ Hi ↑ (%) Ni ↓ Hi ↓ (%)
−20.00 −10.00 −15.00 12 0.04 12 0.04 27,784 100.01
−10.00 0.00 −5.00 0 0.00 12 0.04 27,772 99.97
0.00 10.00 5.00 9 0.03 21 0.07 27,772 99.97
10.00 20.00 15.00 1,074 3.87 1,095 3.94 27,763 99.94
20.00 30.00 25.00 2,642 9.51 3,737 13.45 26,689 96.07
30.00 40.00 35.00 4,267 15.36 8,004 28.81 24,047 86.56
40.00 50.00 45.00 19,034 68.51 27,038 97.32 19,780 71.20
50.00 60.00 55.00 324 1.17 27,362 98.49 746 2.69
60.00 70.00 65.00 417 1.50 27,779 99.99 422 1.52
70.00 80.00 75.00 3 0.01 27,782 100.00 5 0.02
80.00 90.00 85.00 2 0.01 27,784 100.01 2 0.01
NA NA NA 27,784 100.00 NA NA NA NA
TablaFrecuenciasAgrupada <- data.frame(
  Intervalo = paste0("[", li, " - ", ls, ")"),
  LI = li,
  LS = ls,
  MC = MC,
  ni = n_i,
  hi = h_i,
  Ni_asc = Ni_asc,
  Hi_asc = Hi_asc,
  Ni_desc = Ni_desc,
  Hi_desc = Hi_desc
)

TablaFrecuenciasAgrupada[nrow(TablaFrecuenciasAgrupada) + 1, ] <-
  c("TOTAL", NA, NA, NA, sum(n_i), round(sum(h_i), 1), NA, NA, NA, NA)

GRÁFICAS DE DISTRIBUCIÓN DE FRECUENCIA

## HISTOGRAMA LOCAL - FRECUENCIAS ABSOLUTAS
hist(latitud,
     breaks = c(li, limite_superior),
     main = "Grafica 1: Distribucion de Cantidad de la Latitud de Depositos Marinos",
     xlab = "Latitud (grados)",
     ylab = "Cantidad (ni)",
     col = "lightcoral",
     border = "white",
     xaxt = "n",
     ylim = c(0, max(n_i)*1.2))

axis(1,
     at = c(li, maximo),
     labels = round(c(li, maximo),2),
     las = 2,
     cex.axis = 0.7)

# HISTOGRAMA GLOBAL - FRECUENCIAS ABSOLUTAS
hist(latitud,
     breaks = c(li, limite_superior),
     main = "Grafica 2: Distribucion de Cantidad de la Latitud de Depositos Marinos",
     xlab = "Latitud (grados)",
     ylab = "Cantidad (ni)",
     col = "steelblue",
     border = "white",
     xaxt = "n",
     ylim = c(0,n))

axis(1,
     at = c(li, maximo),
     labels = round(c(li, maximo),2),
     las = 2,
     cex.axis = 0.7)

# HISTOGRAMA LOCAL - FRECUENCIAS RELATIVAS
# Etiquetas de los intervalos
etiquetas <- paste0("[", round(li,2), " - ", round(ls,2), ")")

bp <- barplot(h_i,
              main = "Grafica 3: Distribucion de Porcentaje de la Latitud de Depositos Marinos",
              xlab = "Limites de Clase",
              ylab = "Porcentaje (%)",
              col = "mediumpurple",
              border = "white",
              names.arg = etiquetas,
              las = 2,
              cex.names = 0.7,
              space = 0,
              ylim = c(0,max(h_i)*1.2))

axis(1, at = bp, labels = etiquetas, las = 2, cex.axis = 0.7)
box()

# HISTOGRAMA GLOBAL - FRECUENCIAS RELATIVAS

bp <- barplot(h_i,
              main = "Grafica 4: Distribucion de Porcentaje de la Latitud de Depositos Marinos",
              xlab = "Limites de Clase",
              ylab = "Porcentaje (%)",
              col = "darkorange",
              border = "white",
              names.arg = etiquetas,
              las = 2,
              cex.names = 0.7,
              space = 0,
              ylim = c(0,100))

axis(1, at = bp, labels = etiquetas, las = 2, cex.axis = 0.7)
box()

# OJIVAS - FRECUENCIAS ABSOLUTAS
plot(MC, Ni_asc,
     type = "b",
     main = "Grafica 5: Ojivas Combinadas de Cantidad acumulada de 
     la latitud de Depòsitos Marinos",
     xlab = "latitud (grados)",
     ylab = "Cantidad Acumulada (NI)",
     col = "blue",
     lwd = 2,pch = 16,cex = 1.2,las = 1,
     ylim = c(0, n))

lines(MC, Ni_desc,
      type = "b",col = "red",
      lwd = 2,pch = 16,cex = 1.2)

legend("right",
       legend = c("Ascendente", "Descendente"), 
       col = c("blue", "red"),lty = 1,
       lwd = 2,pch = 16,bty = "n")
grid(col = "gray", lty = "dotted")

# OJIVAS - FRECUENCIAS RELATIVAS
plot(MC, Hi_asc,
     type = "b",
     main = "Grafica 6: Ojivas Combinadas de Cantidad acumulada 
     de la latitud de Depòsitos Marinos",
     xlab = "latitud (grados)", 
     ylab = "Cantidad Acumulada (HI)",
     col = "blue",
     lwd = 2,pch = 16,cex = 1.2,las = 1,ylim = c(0, 100))

lines(MC, Hi_desc,
      type = "b",col = "red",
      lwd = 2,pch = 16,cex = 1.2)

legend("right",
       legend = c("Ascendente (%)", "Descendente (%)"),
       col = c("blue", "red"),lty = 1,
       lwd = 2, pch = 16, bty = "n")
grid(col = "gray", lty = "dotted")

# DIAGRAMA DE CAJA
media <- mean(latitud)
boxplot(latitud,
        horizontal = TRUE,
        main = "Grafica 7: Diagrama de Cajade la distribucio de cantidad de la latitud en Depòsitos Marinos",
        xlab = "latitud (grados)",
        col = "lightgreen",
        border = "darkgreen",
        outcol = "red",
        outpch = 16,
        las = 1)
points(media, 1, pch = 23, bg = "blue", cex = 1.5)

# --------------------------------------------------------------------------
# GRAFICA 8: HISTOGRAMA CON DIAGRAMA DE CAJA SOBREPUESTO
# --------------------------------------------------------------------------
# Histograma
h <- hist(latitud,
          breaks = c(li, maximo),
          probability = TRUE,
          main = "Grafica 8: Histograma y Diagrama de Caja Sobrepuesto",
          xlab = "Latitud (grados)",
          ylab = "Densidad",
          col = "lightgray",
          border = "black",
          xaxt = "n")

axis(1,
     at = c(li, maximo),
     labels = round(c(li, maximo),2),
     las = 2,
     cex.axis = 0.7)

# Posición vertical donde aparecerá la caja
altura_caja <- max(h$density) * 0.5

# Boxplot horizontal sobrepuesto
boxplot(latitud,
        horizontal = TRUE,
        add = TRUE,
        at = altura_caja,
        axes = FALSE,
        boxwex = max(h$density) * 0.75,
        col = rgb(0, 0.75, 1, 0.5),
        border = "black",
        outline = TRUE)

grid(col = "gray", lty = "dotted")

# Histograma usando porcentajes reales
h <- hist(latitud,
          breaks = c(li, maximo),
          plot = FALSE)

# Convertir frecuencias absolutas a porcentajes
h$counts <- h_i

# Dibujar histograma con barras en porcentaje
plot(h,
     freq = TRUE,
     main = "Grafica 9: Poligono de Frecuencias Relativas de la Latitud",
     xlab = "Latitud (grados)",
     ylab = "Porcentaje (%)",
     col = "white",
     border = "black",
     xaxt = "n",
     ylim = c(0, max(h_i) * 1.2))
## Warning in plot.histogram(h, freq = TRUE, main = "Grafica 9: Poligono de
## Frecuencias Relativas de la Latitud", : the AREAS in the plot are wrong --
## rather use 'freq = FALSE'
axis(1,
     at = c(li, maximo),
     labels = round(c(li, maximo), 2),
     las = 2,
     cex.axis = 0.7)

# Agregar puntos extremos para cerrar el polígono
MC_pol <- c(MC[1] - A, MC, MC[length(MC)] + A)
h_i_pol <- c(0, h_i, 0)

lines(MC_pol,
      h_i_pol,
      type = "b",
      lwd = 3,
      pch = 16,
      col = "blue")

grid(col = "gray", lty = "dotted")

INDICADORES ESTADÍSTICOS

# Cálculo de indicadores

minimo <- min(latitud)
maximo <- max(latitud)
rango <- maximo - minimo
media <- mean(latitud)
mediana <- median(latitud)
moda <- as.numeric(names(sort(table(latitud), decreasing = TRUE)[1]))

varianza <- var(latitud)
desviacion_estandar <- sd(latitud)
rango <- range(latitud)
coeficiente_variacion <- (desviacion_estandar / media) * 100


asimetria <- skewness(latitud)
curtosis <- kurtosis(latitud)

TablaIndicadores <- data.frame(
  Variable = "Latitud (%)",
  Minimo = round(minimo,2),
  Maximo = round(maximo,2),
  Media = round(media,2),
  Mediana = round(mediana,2),
  Desv_Est = round(desviacion_estandar,2),
  CV = coeficiente_variacion,
  Asimetria = asimetria,
  Curtosis = curtosis
)

TablaIndicadores
##      Variable Minimo Maximo Media Mediana Desv_Est       CV Asimetria Curtosis
## 1 Latitud (%) -16.23  80.81 39.25    41.2     7.27 18.51402  -0.55677  8.71737
# Tabla Mejorada
TablaIndicadores %>%
  gt() %>%
  tab_header(
    title = md("**Tabla Nº2**"),
    subtitle = md("Indicadores estadísticos de la variable Latitud (%)")
  ) %>%
  tab_source_note(
    source_note = md("Autor: Grupo 3")
  )
Tabla Nº2
Indicadores estadísticos de la variable Latitud (%)
Variable Minimo Maximo Media Mediana Desv_Est CV Asimetria Curtosis
Latitud (%) -16.23 80.81 39.25 41.2 7.27 18.51402 -0.55677 8.71737
Autor: Grupo 3

OUTLIERS

# Cuartiles
Q1 <- quantile(latitud, 0.25)
Q3 <- quantile(latitud, 0.75)
IQR_val <- IQR(latitud)

# Límites
limite_inferior <- Q1 - 1.5 * IQR_val
limite_superior <- Q3 + 1.5 * IQR_val

#Outliers
outliers <- latitud[latitud < limite_inferior | latitud > limite_superior]
num_outliers <- length(outliers)
porcentaje_outliers <- round((num_outliers / n) * 100, 2)

TablaOutliers <- data.frame(
  num_outliers =num_outliers,
  porc_outliers = porcentaje_outliers,
  minimo = limite_inferior,
  máximo = limite_superior
)


TablaOutliers
##     num_outliers porc_outliers  minimo   máximo
## 25%         5019         18.06 33.5262 47.63634
#Tabla Mejorada 
TablaOutliers %>%
  gt() %>%
  tab_header(
    title = md("**Tabla Nº3**"),
    subtitle = md("Valores atípicos de la variable Latitud (%)")
  ) %>%
  tab_source_note(
    source_note = md("Autor: Grupo 3")
  )
Tabla Nº3
Valores atípicos de la variable Latitud (%)
num_outliers porc_outliers minimo máximo
5019 18.06 33.5262 47.63634
Autor: Grupo 3

CONCLUSIONES

La Variable LATITUDE fluctua entre [-16.23:80.81] y sus valores giran en torno a la mediana de 41.20, con una desviacion estandar de 7.26, mostrando un comportamiento heterogéneo, ligeramente fuerte en la parte baja con la existencia de 5019 valores atipicos que empiezan desde 33.11.

Por todo lo anterior, el comportamiento de la variable no es completamente favorable, ya que aunque los datos corresponden a coordenadas geográficas válidas dentro del contexto de depósitos de sedimentos marinos, la alta asimetría y la curtosis elevada (36.11), junto con la presencia de una cantidad considerable de valores atípicos, indican que la distribución no es uniforme y presenta concentraciones marcadas en determinados intervalos latitudinales. Esto puede deberse a que los sedimentos marinos analizados se concentran principalmente en ciertas franjas latitudinales donde las condiciones oceanográficas y tectónicas favorecen la acumulación sedimentaria, generando así una distribución espacial irregular en los registros del dataset.”