ANÁLISIS ESTADÍSTICO

1. CARGA DE DATOS Y LIBRERÍAS

CARGA DE DATOS

# Ruta completa al archivo
datos <- read.csv("C:/Users/Grace/Downloads/Sedimentos Marinos (1).csv",
                  header = TRUE,
                  sep = ";",
                  dec = ".",
                  stringsAsFactors = FALSE)

Librerias

**CARGA DE LIBRERÍAS**
library(gt)
library(dplyr)
library(knitr)

TABLA DE DISTRIBUCIÓN DE CANTIDAD

**TABLA DE DISTRIBUCIÓN DE FRECUENCIA**
# Extraer variable original
litologia_original <- datos$LITHOLOGY

# Reclasificación: 
litologia_reclas <- case_when(
  is.na(litologia_original) | litologia_original == "" | litologia_original == " " | litologia_original == "-"
    ~ "Sin registro",
  
  grepl("gravel", tolower(litologia_original), fixed = TRUE) ~ "Gravel",
  grepl("mud", tolower(litologia_original), fixed = TRUE)    ~ "Mud",
  grepl("sand", tolower(litologia_original), fixed = TRUE)   ~ "Sand",
  grepl("nodule", tolower(litologia_original), fixed = TRUE) ~ "Nodules",
  grepl("brick", tolower(litologia_original), fixed = TRUE)  ~ "Bricks",
  
  TRUE ~ "Sin registro"   # Cualquier otro valor va aquí
)

# Fijamos el orden deseado 
nivel_deseado <- c("Sin registro", "Gravel", "Mud", "Sand", "Nodules", "Bricks")

# Tabla de frecuencias con orden 
ni <- table(factor(litologia_reclas, levels = nivel_deseado))

# Frecuencia relativa %
hi <- round(prop.table(ni) * 100, 2)

# Crear tabla base
tabla_finallitologia <- data.frame(
  Litologia = names(ni),
  ni = as.numeric(ni),
  hi = as.numeric(hi)
)

# Fila total
fila_total <- data.frame(
  Litologia = "TOTAL",
  ni = sum(tabla_finallitologia$ni),
  hi = sum(tabla_finallitologia$hi)
)

# Unir tabla
tabla_finallitologia <- rbind(tabla_finallitologia, fila_total)

# Mostrar tabla simple
tabla_finallitologia
##      Litologia    ni     hi
## 1 Sin registro 14158  99.67
## 2       Gravel    27   0.19
## 3          Mud     7   0.05
## 4         Sand    10   0.07
## 5      Nodules     3   0.02
## 6       Bricks     0   0.00
## 7        TOTAL 14205 100.00
**TABLA DE DISTRIBUCIÓN  FINAL**
tabla_litologia_gt <- tabla_finallitologia %>%
  gt() %>%
  tab_header(
    title = md("**Tabla N° 1**"),
    subtitle = md("Distribución de cantidad por LITHOLOGY ")
  ) %>%
  tab_source_note(source_note = md("Autor: Grupo 3")) %>%
  tab_options(
    table.border.top.color = "black",
    table.border.bottom.color = "black",
    heading.border.bottom.color = "black",
    heading.border.bottom.width = px(2),
    column_labels.border.top.color = "black",
    column_labels.border.bottom.color = "black",
    column_labels.border.bottom.width = px(2),
    table_body.hlines.color = "gray",
    table_body.border.bottom.color = "black",
    row.striping.include_table_body = TRUE
  ) %>%
  tab_style(
    style = cell_text(weight = "bold"),
    locations = cells_body(rows = Litologia == "TOTAL")
  )

tabla_litologia_gt
Tabla N° 1
Distribución de cantidad por LITHOLOGY
Litologia ni hi
Sin registro 14158 99.67
Gravel 27 0.19
Mud 7 0.05
Sand 10 0.07
Nodules 3 0.02
Bricks 0 0.00
TOTAL 14205 100.00
Autor: Grupo 3

Colores

**Colores de las barras**
colores <- gray.colors(length(ni), start = 0.3, end = 0.9)

GRÁFICAS DE DISTRIBUCIÓN DE CANTIDAD

**Diagrama de cantidad Local**
barplot(tabla_finallitologia$ni[1:(nrow(tabla_finallitologia)-1)],
        main = "Gráfica Nº1: Distribución de cantidad por LITHOLOGY",
        cex.main = 0.7,
        col = "gray",
        xlab = "Litología",
        ylab = "Cantidad (ni)",
        names.arg = tabla_finallitologia$Litologia[1:(nrow(tabla_finallitologia)-1)],
        las = 2)

**Diagrama de cantidad global**
barplot(
  tabla_finallitologia$ni[1:(nrow(tabla_finallitologia)-1)],
  main = "Gráfica Nº2: Distribución de cantidad por LITHOLOGY",
  cex.main = 0.7,
  xlab = "Litología",
  ylab = "Cantidad (ni)",
  col = "gray",
  names.arg = tabla_finallitologia$Litologia[1:(nrow(tabla_finallitologia)-1)],
  ylim = c(0, max(tabla_finallitologia$ni) * 1.1),
  las = 2
)

**Diagrama de cantidad en porcentaje**
hi_local <- as.numeric(tabla_finallitologia$hi[1:(nrow(tabla_finallitologia)-1)])
barplot(
  hi_local,
  main = "Gráfica Nº3: Distribución en porcentaje por LITHOLOGY",
  cex.main = 0.7,
  xlab = "Litología",
  ylab = "Porcentaje (%)",
  col = "gray",
  names.arg = tabla_finallitologia$Litologia[1:(nrow(tabla_finallitologia)-1)],
  cex.names = 1,
  ylim = c(0, 50),
  las = 2
)

**Diagrama de cantidad en porcentaje global**
hi_global <- as.numeric(tabla_finallitologia$hi[1:(nrow(tabla_finallitologia)-1)])
barplot(
  hi_global,
  main = "Gráfica Nº4: Distribución en porcentaje por LITHOLOGY",
  cex.main = 0.7,
  xlab = "Litología",
  ylab = "Porcentaje (%)",
  col = "blue",
  names.arg = tabla_finallitologia$Litologia[1:(nrow(tabla_finallitologia)-1)],
  cex.names = 1,
  ylim = c(0, 100),
  las = 2
)

**DIAGRAMA DE CIRCULAR**
hi_litologia <- as.numeric(tabla_finallitologia$hi[1:(nrow(tabla_finallitologia)-1)])
litologia_cats <- tabla_finallitologia$Litologia[1:(nrow(tabla_finallitologia)-1)]

Colores <- colorRampPalette(c("lightskyblue", "darkblue"))(length(hi_litologia))
etiquetas <- paste0(hi_litologia, "%")

par(mfrow = c(1,2))
par(mar = c(2,2,4,2))

pie(
  hi_litologia,
  radius = 0.7,
  col = Colores,
  labels = etiquetas,
  main = "Gráfica Nº5: Distribución en porcentaje por LITHOLOGY",
  cex.main = 0.9
)

plot.new()
legend(
  "center",
  title = "Litología",
  legend = litologia_cats,
  fill = Colores,
  cex = 0.7,
  bg = "white",
  box.lwd = 0.7
)

INDICADORES ESTADÍSTICOS

**Indicadores Estadísticos**
# Usamos la misma reclasificación que en la tabla/gráficas
litologia_reclas <- case_when(
  is.na(datos$LITHOLOGY) | datos$LITHOLOGY == "" | datos$LITHOLOGY == " " | datos$LITHOLOGY == "-"
    ~ "Sin registro",
  
  grepl("gravel", tolower(datos$LITHOLOGY), fixed = TRUE) ~ "Gravel",
  grepl("mud", tolower(datos$LITHOLOGY), fixed = TRUE)    ~ "Mud",
  grepl("sand", tolower(datos$LITHOLOGY), fixed = TRUE)   ~ "Sand",
  grepl("nodule", tolower(datos$LITHOLOGY), fixed = TRUE) ~ "Nodules",
  grepl("brick", tolower(datos$LITHOLOGY), fixed = TRUE)  ~ "Bricks",
  
  TRUE ~ "Sin registro"
)

# Tabla de frecuencias
tabla_frecuencia_litologia <- table(litologia_reclas)

# Calcular la moda
moda_litologia <- names(tabla_frecuencia_litologia)[which.max(tabla_frecuencia_litologia)]

# Tabla de indicadores
TablaIndicadores <- data.frame(
  Variable = "Litología (agrupada)",
  Moda = moda_litologia
)

# Tabla simple con kable
kable(TablaIndicadores,
      format = "markdown",
      caption = "Tabla N°2. Indicadores estadísticos de posición (Moda) - Variable Litología",
      align = c("l", "c"))
Tabla N°2. Indicadores estadísticos de posición (Moda) - Variable Litología
Variable Moda
Litología (agrupada) Sin registro
# Tabla profesional con gt
tabla_indicadores_gt <- TablaIndicadores %>%
  gt() %>%
  tab_header(
    title = md("**Tabla N° 2**"),
    subtitle = md("Indicadores estadísticos de posición (Moda) - Variable Litología")
  ) %>%
  tab_source_note(source_note = md("Autor: Grupo 3")) %>%
  cols_label(Variable = md("**Variable**"), Moda = md("**Moda**")) %>%
  tab_options(
    table.border.top.color = "black",
    table.border.bottom.color = "black",
    heading.border.bottom.color = "black",
    heading.border.bottom.width = px(2),
    column_labels.border.top.color = "black",
    column_labels.border.bottom.color = "black",
    column_labels.border.bottom.width = px(2),
    table_body.hlines.color = "gray",
    table_body.border.bottom.color = "black"
  ) %>%
  tab_style(style = cell_text(weight = "bold", align = "center"),
            locations = cells_column_labels())

tabla_indicadores_gt
Tabla N° 2
Indicadores estadísticos de posición (Moda) - Variable Litología
Variable Moda
Litología (agrupada) Sin registro
Autor: Grupo 3

CONCLUSIONES

La variable litología tiene como valor más frecuente sin registro.