ANÁLISIS ESTADÍSTICO

CARGA DE DATOS Y LIBRERÍAS

CARGA DE DATOS

library(dplyr)
library(stringr)
library(gt)

datos <- read.csv("D:/roca_de_caja_2500_registros.csv")

ASIGNACION DE VARIABLES

ASIGNACION DE VARIABLES

Se agrupo la variable para poder trabajar de mejor manera

## ASIGNACIÓN Y CATEGORIZACIÓN DE VARIABLES

# 1. Limpieza básica
df_roca_de_caja <- data.frame(
  roca_de_caja_especifica = str_to_title(trimws(datos$ROCA_DE_CAJA))
)

# 2. Creación de la variable categórica agrupada (Tipo de Roca)
df_roca_de_caja <- df_roca_de_caja %>%
  mutate(
    grupo_roca = case_when(
      # ROCAS SEDIMENTARIAS
      roca_de_caja_especifica %in% c("Limestone", "Dolomite", "Sandstone", "Quartzite", 
                                     "Shale", "Siltstone", "Conglomerate", "Chert", 
                                     "Unconsolidated Sediment") ~ "Sedimentaria",
      
      # ROCAS ÍGNEAS (Plutónicas y Volcánicas)
      roca_de_caja_especifica %in% c("Granite", "Granodiorite", "Quartz Monzonite", "Diorite", 
                                     "Porphyry", "Rhyolite", "Andesite", "Dacite", 
                                     "Basalt", "Ash-Fall Tuff", "Ash-Tuff", "Volcanic Breccia") ~ "Ígnea",
      
      # ROCAS METAMÓRFICAS Y ESTRUCTURALES / HIDROTERMALES
      roca_de_caja_especifica %in% c("Schist", "Gneiss", "Marble", "Phyllite", 
                                     "Amphibolite", "Fault Breccia", "Skarn", "Gossan") ~ "Metamórfica / Alteración",
      
      TRUE ~ "Otra"
    )
  )

# 3. Definición de orden de factores para la nueva variable agrupada
orden_grupos <- c("Sedimentaria", "Ígnea", "Metamórfica / Alteración")

df_roca_de_caja$grupo_roca <- factor(
  df_roca_de_caja$grupo_roca,
  levels = orden_grupos,
  ordered = TRUE
)

# 4. (Opcional) Factor ordinal para la variable específica por si mantienes subanálisis
orden_roca_de_caja <- c(
  "Limestone", "Dolomite", "Sandstone", "Quartzite", "Shale", "Siltstone", 
  "Conglomerate", "Chert", "Granite", "Granodiorite", "Quartz Monzonite", 
  "Diorite", "Porphyry", "Rhyolite", "Andesite", "Dacite", "Basalt", 
  "Ash-Fall Tuff", "Volcanic Breccia", "Schist", "Gneiss", "Marble", 
  "Phyllite", "Amphibolite", "Fault Breccia", "Skarn", "Gossan", "Unconsolidated Sediment"
)

df_roca_de_caja$roca_de_caja_especifica <- factor(
  df_roca_de_caja$roca_de_caja_especifica,
  levels = orden_roca_de_caja,
  ordered = TRUE
)

TABLA DE DISTRIBUCIÓN DE CANTIDAD

TABLA DE DISTRIBUCION DE CANTIDAD

# Factor ordinal para la variable agrupada
df_roca_de_caja$grupo_roca <- factor(
  df_roca_de_caja$grupo_roca,
  levels = orden_grupos,
  ordered = TRUE
)

# Conteo y ordenamiento por grupos
TDF_roca_de_caja <- df_roca_de_caja %>%
  count(grupo_roca, name = "ni") %>%
  arrange(grupo_roca)

# Calculamos los porcentajes redondeados
TDF_roca_de_caja <- TDF_roca_de_caja %>%
  mutate(hi = round(ni / sum(ni) * 100, 0))

# Ajuste por redondeo:
# La diferencia se le asigna a la categoría con mayor frecuencia
diferencia <- 100 - sum(TDF_roca_de_caja$hi)

if (diferencia != 0) {
  pos_max <- which.max(TDF_roca_de_caja$ni)
  
  TDF_roca_de_caja$hi[pos_max] <-
    TDF_roca_de_caja$hi[pos_max] + diferencia
}

# Tabla básica
tabla_roca_de_caja <- TDF_roca_de_caja %>%
  gt() %>%
  
  tab_header(
    title = "Tabla N° 1",
    subtitle = "Distribución del Tipo de Roca de Caja"
  ) %>%
  
  grand_summary_rows(
    columns = c(ni, hi),
    fns = list(
      Total = ~sum(., na.rm = TRUE)
    ),
    fmt = list(
      ~fmt_number(., decimals = 0)
    )
  )

tabla_roca_de_caja
Tabla N° 1
Distribución del Tipo de Roca de Caja
grupo_roca ni hi
Sedimentaria 809 32
Ígnea 979 40
Metamórfica / Alteración 712 28
Total 2,500 100
# Agregamos fila TOTAL para la versión formateada
tabla_final_roca_de_caja <- TDF_roca_de_caja %>%
  mutate(
    grupo_roca = as.character(grupo_roca)
  )

tabla_final_roca_de_caja <- bind_rows(
  tabla_final_roca_de_caja,
  
  data.frame(
    grupo_roca = "TOTAL",
    ni = sum(tabla_final_roca_de_caja$ni),
    hi = sum(tabla_final_roca_de_caja$hi)
  )
)

# TABLA ESQUELETO FORMATEADA CON GT
tabla_roca_de_caja_gt <- tabla_final_roca_de_caja %>%

  gt() %>%

  tab_header(
    title = md("**Tabla Nº2**"),
    subtitle = md("Distribución ordinal por tipo de roca de caja")
  ) %>%

  cols_label(
    grupo_roca = "Tipo de Roca",
    ni = "Frecuencia",
    hi = "Porcentaje (%)"
  ) %>%

  cols_align(
    align = "center",
    columns = everything()
  ) %>%

  fmt_number(
    columns = c(ni, hi),
    decimals = 0
  ) %>%

  tab_style(
    style = cell_text(weight = "bold"),
    locations = cells_body(
      rows = grupo_roca == "TOTAL"
    )
  ) %>%

  tab_source_note(
    source_note = md("Autor: Grupo 2")
  )

tabla_roca_de_caja_gt
Tabla Nº2
Distribución ordinal por tipo de roca de caja
Tipo de Roca Frecuencia Porcentaje (%)
Sedimentaria 809 32
Ígnea 979 40
Metamórfica / Alteración 712 28
TOTAL 2,500 100
Autor: Grupo 2

GRÁFICAS DE DISTRIBUCIÓN DE CANTIDAD

## GRÁFICAS DE DISTRIBUCIÓN DE CANTIDAD


# Gráfica Nº1: Frecuencia absoluta
barplot(TDF_roca_de_caja$ni,
        main = "Gráfica Nº1: Distribución de cantidad por tipo de roca de caja\nen depósitos minerales de los Estados Unidos",
        xlab = "Tipo de Roca de Caja",
        ylab = "Cantidad (ni)",
        col = "steelblue",
        names.arg = TDF_roca_de_caja$grupo_roca,
        cex.names = 0.9,
        las = 1)

# Gráfica Nº2: Frecuencia absoluta ajustada
barplot(TDF_roca_de_caja$ni,
        main = "Gráfica Nº2: Distribución de cantidad por tipo de roca de caja\nen depósitos minerales de los Estados Unidos",
        xlab = "Tipo de Roca de Caja",
        ylab = "Cantidad (ni)",
        col = "steelblue",
        names.arg = TDF_roca_de_caja$grupo_roca,
        cex.names = 0.9,
        las = 1,
        ylim = c(0, max(TDF_roca_de_caja$ni) * 1.2))

# Gráfica Nº3: Frecuencia relativa
barplot(TDF_roca_de_caja$hi,
        main = "Gráfica Nº3: Distribución en porcentaje por tipo de roca de caja\nen depósitos minerales de los Estados Unidos",
        xlab = "Tipo de Roca de Caja",
        ylab = "Porcentaje (%)",
        col = "steelblue",
        names.arg = TDF_roca_de_caja$grupo_roca,
        cex.names = 0.9,
        las = 1)

# Gráfica Nº4: Frecuencia relativa escala completa
barplot(TDF_roca_de_caja$hi,
        main = "Gráfica Nº4: Distribución en porcentaje por tipo de roca de caja\nen depósitos minerales de los Estados Unidos",
        xlab = "Tipo de Roca de Caja",
        ylab = "Porcentaje (%)",
        col = "steelblue",
        names.arg = TDF_roca_de_caja$grupo_roca,
        cex.names = 0.9,
        las = 1,
        ylim = c(0, 100))

# Gráfico circular
par(mar = c(4, 4, 4, 10))

colores <- rainbow(length(TDF_roca_de_caja$hi))

pie(TDF_roca_de_caja$hi,
    col = colores,
    main = "Gráfica Nº5: Distribución en porcentaje por tipo de roca de caja\nen depósitos minerales de los Estados Unidos",
    labels = NA)

legend("right",
       legend = paste(TDF_roca_de_caja$grupo_roca,
                      TDF_roca_de_caja$hi, "%"),
       fill = colores,
       title = "TIPO DE ROCA",
       bty = "o",
       xpd = TRUE,
       inset = c(-0.35, 0),
       cex = 0.8)

INDICADORES ESTADISTICOS

## INDICADORES ESTADISTICOS


# Moda (Tipo de roca con mayor frecuencia absoluta ni)
moda_roca_de_caja <- TDF_roca_de_caja[
  TDF_roca_de_caja$ni == max(TDF_roca_de_caja$ni), ]

moda_roca_de_caja
##   grupo_roca  ni hi
## 2      Ígnea 979 40
# Mediana (Frecuencia acumulada Ni >= N/2)
TDF_roca_de_caja <- TDF_roca_de_caja %>%
  mutate(Ni = cumsum(ni))

N <- sum(TDF_roca_de_caja$ni)

mediana_roca_de_caja <- TDF_roca_de_caja %>%
  filter(Ni >= N/2) %>%
  slice(1)

mediana_roca_de_caja
##   grupo_roca  ni hi   Ni
## 1      Ígnea 979 40 1788

Conclusión

El análisis estadístico por tipo de roca de caja revela que la categoría más frecuente corresponde a las rocas ígneas, representando un 40% del total de depósitos analizados. Los cuales son clave para la formación de sistemas de alteración y mineralización de alto interés económico (como pórfidos y epitermales).