1 Carga de Datos y Librerías

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

datos <- read.csv("~/Estudio/TERCER SEMESTRE/Estadistica/Dataset.csv",
                   sep = ";", stringsAsFactors = FALSE)

cat("Datos cargados correctamente\n")
## Datos cargados correctamente
cat("Numero de observaciones:", nrow(datos), "\n")
## Numero de observaciones: 2996
# Extraer variable
df_tipo <- data.frame(
  codigo = trimws(as.character(datos$MINE_TYPE))
)

# Reemplazar categorias
df_tipo$tipo <- case_when(
  df_tipo$codigo == "1"  ~ "Underground",
  df_tipo$codigo == "2"  ~ "Surface",
  df_tipo$codigo == "3"  ~ "Strip",
  df_tipo$codigo == "4"  ~ "Auger",
  df_tipo$codigo == "5"  ~ "Culm/Refuse",
  df_tipo$codigo == "6"  ~ "Dredge",
  df_tipo$codigo == "10" ~ "In Situ",
  df_tipo$codigo == "11" ~ "Mill/Prep Plant",
  df_tipo$codigo == "12" ~ "Shops/Yards",
  TRUE ~ "Sin registro"
)

# Orden de categorias
orden_tipo <- c(
  "Underground", "Surface", "Strip", "Auger",
  "Culm/Refuse", "Dredge", "In Situ",
  "Mill/Prep Plant", "Shops/Yards", "Sin registro"
)

# Convertir en factor
df_tipo$tipo <- factor(
  df_tipo$tipo,
  levels = orden_tipo
)

2 Tabla de Distribución de Probabilidad

# Frecuencias y probabilidades
ni <- table(df_tipo$tipo)
hi <- round(prop.table(ni), 4)
P  <- round(hi * 100, 2)

# Crear tabla base
tabla_final <- data.frame(
  Tipo = names(ni),
  ni   = as.numeric(ni),
  hi   = as.numeric(hi),
  P    = as.numeric(P)
)

# Fila TOTAL
fila_total <- data.frame(
  Tipo = "TOTAL",
  ni   = sum(tabla_final$ni),
  hi   = round(sum(tabla_final$hi), 4),
  P    = round(sum(tabla_final$P), 2)
)

# Agregar TOTAL
tabla_final <- rbind(
  tabla_final,
  fila_total
)

tabla_final
##               Tipo   ni     hi      P
## 1      Underground   69 0.0230   2.30
## 2          Surface   19 0.0063   0.63
## 3            Strip    4 0.0013   0.13
## 4            Auger  104 0.0347   3.47
## 5      Culm/Refuse  366 0.1222  12.22
## 6           Dredge  634 0.2116  21.16
## 7          In Situ    5 0.0017   0.17
## 8  Mill/Prep Plant  757 0.2527  25.27
## 9      Shops/Yards  964 0.3218  32.18
## 10    Sin registro   74 0.0247   2.47
## 11           TOTAL 2996 1.0000 100.00
# Tabla gt
tabla_final %>%
  gt() %>%
  tab_header(
    title    = md("**Tabla N° 1**"),
    subtitle = md("Distribución de probabilidad del tipo de mina en Estados Unidos")
  ) %>%
  tab_source_note(
    source_note = md("Autor: Grupo 4 - Minas")
  ) %>%
  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 = Tipo == "TOTAL")
  )
Tabla N° 1
Distribución de probabilidad del tipo de mina en Estados Unidos
Tipo ni hi P
Underground 69 0.0230 2.30
Surface 19 0.0063 0.63
Strip 4 0.0013 0.13
Auger 104 0.0347 3.47
Culm/Refuse 366 0.1222 12.22
Dredge 634 0.2116 21.16
In Situ 5 0.0017 0.17
Mill/Prep Plant 757 0.2527 25.27
Shops/Yards 964 0.3218 32.18
Sin registro 74 0.0247 2.47
TOTAL 2996 1.0000 100.00
Autor: Grupo 4 - Minas

3 Gráficas de Distribución de Probabilidad

# Extraer probabilidades sin TOTAL
P_global <- as.numeric(
  tabla_final$P[1:(nrow(tabla_final)-1)]
)

# Gráfico de barras
par(mar = c(8, 5, 4, 2))
barplot(
  P_global,
  main      = "Gráfica N°1: Distribución de probabilidad del\ntipo de mina en Estados Unidos",
  cex.main  = 0.8,
  xlab      = "",
  ylab      = "Probabilidad (%)",
  col       = "green",
  names.arg = tabla_final$Tipo[1:(nrow(tabla_final)-1)],
  cex.names = 0.8,
  ylim      = c(0, 100),
  las       = 2
)

4 Cálculo de Probabilidad

# Eliminar fila TOTAL
tabla_sin_total <- tabla_final[
  tabla_final$Tipo != "TOTAL",
]

# Extraer probabilidad de Mill/Prep Plant
prob_mill <- tabla_sin_total$P[
  tabla_sin_total$Tipo == "Mill/Prep Plant"
]

# Gráfico explicativo
plot(
  1,
  type = "n",
  axes = FALSE,
  xlab = "",
  ylab = ""
)
text(
  x = 1,
  y = 1,
  labels = paste0(
    "Cálculo de probabilidad\n(Estimación general)\n\n",
    "¿Qué probabilidad existe de que una instalación\n",
    "minera registrada en Estados Unidos sea del\n",
    "tipo Mill/Prep Plant?\n\n",
    "Probabilidad = ", prob_mill, " (%)"
  ),
  cex = 1.3,
  col = "black",
  font = 2
)

5 Conclusiones

conclusion <- sprintf(
  "El tipo de mina presenta una distribución probabilística heterogénea dentro de las instalaciones analizadas en Estados Unidos. El tipo %s registra una de las mayores probabilidades de ocurrencia, reflejando su amplio uso en la actividad minera nacional. La distribución acumulada permite observar el comportamiento progresivo de las probabilidades entre categorías, mientras que las gráficas evidencian diferencias importantes entre los tipos de mina analizados.",
  tabla_final$Tipo[which.max(tabla_final$ni[tabla_final$Tipo != "TOTAL"])]
)
print(conclusion)
## [1] "El tipo de mina presenta una distribución probabilística heterogénea dentro de las instalaciones analizadas en Estados Unidos. El tipo Shops/Yards registra una de las mayores probabilidades de ocurrencia, reflejando su amplio uso en la actividad minera nacional. La distribución acumulada permite observar el comportamiento progresivo de las probabilidades entre categorías, mientras que las gráficas evidencian diferencias importantes entre los tipos de mina analizados."