ANÁLISIS ESTADÍSTICO

CARGA DE DATOS Y LIBRERÍAS

CARGA DE DATOS

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

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

ASIGNACION DE VARIABLES

ASIGNACION DE VARIABLES

df_rasgo <- data.frame(
  rasgo = toupper(trimws(datos$TIPO_DE_RASGO_GEOLOGICO))
)

df_rasgo$rasgo <- case_when(

  # --- RASGO MENOR ---
  df_rasgo$rasgo %in% c(
    "FRACTURAS",
    "DIACLASAS",
    "VENILLAS SECUNDARIAS",
    "DISEMINACIÓN MINERAL",
    "TEXTURA PORFÍDICA",
    "TEXTURA GRANULAR",
    "BANDEAMIENTO LOCAL",
    "MICROFRACTURAS",
    "MINERALES ACCESORIOS VISIBLES"
  ) ~ "Rasgo menor",

  # --- RASGO INTERMEDIO ---
  df_rasgo$rasgo %in% c(
    "FALLA LOCAL",
    "ZONA DE CIZALLA",
    "CONTACTO LITOLÓGICO",
    "INTRUSIÓN LOCAL",
    "DIQUE",
    "SILL",
    "VETA PRINCIPAL",
    "ZONA MINERALIZADA",
    "BRECHA HIDROTERMAL",
    "STOCKWORK"
  ) ~ "Rasgo intermedio",

  # --- RASGO MAYOR ---
  df_rasgo$rasgo %in% c(
    "PROVINCIA GEOLÓGICA",
    "CINTURÓN MINERALIZADO",
    "SISTEMA DE FALLAS REGIONALES",
    "ARCO MAGMÁTICO",
    "BATOLITO O CUERPO INTRUSIVO REGIONAL",
    "TERRENO TECTÓNICO",
    "CUENCA GEOLÓGICA",
    "ZONA ESTRUCTURAL PRINCIPAL"
  ) ~ "Rasgo mayor",

  # --- OTROS ---
  TRUE ~ "Otros"
)

# Definición de orden incluyendo "Otros" al final
orden_rasgo <- c(
  "Rasgo menor",
  "Rasgo intermedio",
  "Rasgo mayor",
  "Otros"
)

df_rasgo$rasgo <- factor(
  df_rasgo$rasgo,
  levels = orden_rasgo,
  ordered = TRUE
)

TABLA DE DISTRIBUCIÓN DE CANTIDAD

TABLA DE DISTRIBUCION DE CANTIDAD

TDF_rasgo <- df_rasgo %>%
  count(rasgo, name = "ni") %>%
  arrange(rasgo)

# Cálculo inicial de porcentajes
TDF_rasgo <- TDF_rasgo %>%
  mutate(hi = round(ni / sum(ni) * 100, 0))

# Ajuste matemático automático por redondeo para asegurar el 100%
diferencia <- 100 - sum(TDF_rasgo$hi, na.rm = TRUE)

if (diferencia != 0 & nrow(TDF_rasgo) > 0) {

  pos_max <- which.max(TDF_rasgo$ni)

  TDF_rasgo$hi[pos_max] <- 
    TDF_rasgo$hi[pos_max] + diferencia
}

tabla_rasgo <- TDF_rasgo %>%
  gt() %>%
  tab_header(
    title = "Tabla N° 1",
    subtitle = "Distribución del Tipo de Rasgo Geológico"
  ) %>%
  grand_summary_rows(
    columns = c(ni, hi),
    fns = list(Total = ~sum(., na.rm = TRUE)),
    fmt = list(~fmt_number(., decimals = 0))
  )

tabla_rasgo
Tabla N° 1
Distribución del Tipo de Rasgo Geológico
rasgo ni hi
Rasgo menor 987 39
Rasgo intermedio 1130 46
Rasgo mayor 383 15
Total 2,500 100
# Agregamos fila TOTAL
tabla_final_rasgo <- TDF_rasgo %>%
  mutate(
    rasgo = as.character(rasgo)
  )

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

# TABLA ESQUELETO
tabla_rasgo_gt <- tabla_final_rasgo %>%

  gt() %>%

  tab_header(
    title = md("**Tabla Nº2**"),
    subtitle = md("Distribución ordinal del tipo de rasgo geológico")
  ) %>%

  cols_label(
    rasgo = "Tipo de Rasgo Geológico",
    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 = rasgo == "TOTAL"
    )
  ) %>%

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

tabla_rasgo_gt
Tabla Nº2
Distribución ordinal del tipo de rasgo geológico
Tipo de Rasgo Geológico Frecuencia Porcentaje (%)
Rasgo menor 987 39
Rasgo intermedio 1,130 46
Rasgo mayor 383 15
TOTAL 2,500 100
Autor: Grupo 2

GRÁFICAS DE DISTRIBUCIÓN DE CANTIDAD

# Se añade margen inferior extra para que los textos verticales no se corten
par(mar = c(8, 4, 4, 2))

# Gráfica Nº1: Frecuencia absoluta
barplot(TDF_rasgo$ni,
        main = "Gráfica Nº1: Frecuencia del Tipo de Rasgo Geológico",
        xlab = "", 
        ylab = "Cantidad (ni)",
        col = "steelblue",
        names.arg = TDF_rasgo$rasgo,
        cex.names = 0.75,
        las = 2)

# Se añade margen inferior extra
par(mar = c(8, 4, 4, 2))

# Gráfica Nº2: Frecuencia absoluta ajustada
barplot(TDF_rasgo$ni,
        main = "Gráfica Nº2: Frecuencia del Tipo de Rasgo Geológico (Escala Ajustada)",
        xlab = "",
        ylab = "Cantidad (ni)",
        col = "steelblue",
        names.arg = TDF_rasgo$rasgo,
        cex.names = 0.75,
        las = 2,
        ylim = c(0, max(TDF_rasgo$ni) * 1.2))

# Se añade margen inferior extra
par(mar = c(8, 4, 4, 2))

# Gráfica Nº3: Frecuencia relativa
barplot(TDF_rasgo$hi,
        main = "Gráfica Nº3: Porcentaje del Tipo de Rasgo Geológico",
        xlab = "",
        ylab = "Porcentaje (%)",
        col = "steelblue",
        names.arg = TDF_rasgo$rasgo,
        cex.names = 0.75,
        las = 2)

# Se añade margen inferior extra
par(mar = c(8, 4, 4, 2))

# Gráfica Nº4: Frecuencia relativa escala completa
barplot(TDF_rasgo$hi,
        main = "Gráfica Nº4: Porcentaje del Tipo de Rasgo Geológico (Escala Completa)",
        xlab = "",
        ylab = "Porcentaje (%)",
        col = "steelblue",
        names.arg = TDF_rasgo$rasgo,
        cex.names = 0.75,
        las = 2,
        ylim = c(0, 100))

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

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

pie(TDF_rasgo$hi,
    col = colores,
    main = "Distribución del Tipo de Rasgo Geológico",
    labels = NA)

legend("right",
       legend = paste(TDF_rasgo$rasgo, TDF_rasgo$hi, "%"),
       fill = colores,
       title = "RASGOS",
       bty = "o",
       xpd = TRUE,
       inset = c(-0.37, 0))

INDICADORES ESTADISTICOS

# Moda
moda_rasgo <- TDF_rasgo[TDF_rasgo$ni == max(TDF_rasgo$ni), ]
moda_rasgo
##              rasgo   ni hi
## 2 Rasgo intermedio 1130 46
# Mediana
TDF_rasgo <- TDF_rasgo %>%
  mutate(Ni = cumsum(ni))

N <- sum(TDF_rasgo$ni)

mediana_rasgo <- TDF_rasgo %>%
  filter(Ni >= N/2) %>%
  slice(1)

mediana_rasgo
##              rasgo   ni hi   Ni
## 1 Rasgo intermedio 1130 46 2117

Conclución

#conclucion
"La variable tipo de rasgo geológico presenta categorías desde rasgos bajos hasta altos, y sus valores se concentran en rasgos intermedios. Lo cual favorece la exploración minera, ya que este tipo de rasgos suele asociarse a zonas con características geológicas propicias para la mineralización."
## [1] "La variable tipo de rasgo geológico presenta categorías desde rasgos bajos hasta altos, y sus valores se concentran en rasgos intermedios. Lo cual favorece la exploración minera, ya que este tipo de rasgos suele asociarse a zonas con características geológicas propicias para la mineralización."