ANÁLISIS ESTADÍSTICO

CARGA DE DATOS Y LIBRERÍAS

CARGA DE DATOS

# CARGA DE DATOS

library(readxl)

datos <- read_excel("D:/dataset_variables_discretas_mineria.xlsx")


# CARGA DE LIBRERIAS

library(gt)
library(dplyr)
library(knitr)
library(e1071)

SELECCIÓN DE LA VARIABLE

disc <- as.numeric(datos$`Cantidad de elementos No Detectados`)
disc <- na.omit(disc)  

TABLA DE DISTRIBUCION DE CANTIDAD

# 4) Frecuencias simples
# Frecuencias simples

ni <- table(disc)

total <- sum(ni)

hi <- round(as.numeric(ni) / total * 100, 2)

# Frecuencias acumuladas

Ni_Asc <- cumsum(ni)
Hi_Asc <- cumsum(hi)

Ni_Desc <- rev(cumsum(rev(ni)))
Hi_Desc <- rev(cumsum(rev(hi)))
tabla_final <- data.frame(
  Elementos_No_Detectados = as.numeric(names(ni)),
  ni = as.numeric(ni),
  hi = hi,
  Ni_Asc = as.numeric(Ni_Asc),
  Hi_Asc = round(Hi_Asc, 2),
  Ni_Desc = as.numeric(Ni_Desc),
  Hi_Desc = round(Hi_Desc, 2)
)

fila_total <- data.frame(
  Elementos_No_Detectados = "TOTAL",
  ni = sum(tabla_final$ni),
  hi = round(sum(tabla_final$hi), 2),
  Ni_Asc = "-",
  Hi_Asc = "-",
  Ni_Desc = "-",
  Hi_Desc = "-"
)

tabla_final <- rbind(tabla_final, fila_total)

# TABLA GT
TablaDisc <- tabla_final %>%
  gt() %>%
  tab_header(
    title = md("*Tabla Nº. 1*"),
    subtitle = md("**Tabla de distribución de la cantidad de elementos no detectados en las muestras mineras**")
  ) %>%
  tab_source_note(
    source_note = md("__Autor: Grupo 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 = Elementos_No_Detectados == "TOTAL"   
    )
  )

TablaDisc
Tabla Nº. 1
Tabla de distribución de la cantidad de elementos no detectados en las muestras mineras
Elementos_No_Detectados ni hi Ni_Asc Hi_Asc Ni_Desc Hi_Desc
0 60 2.40 60 2.4 2500 100
1 187 7.48 247 9.88 2440 97.6
2 338 13.52 585 23.4 2253 90.12
3 523 20.92 1108 44.32 1915 76.6
4 482 19.28 1590 63.6 1392 55.68
5 391 15.64 1981 79.24 910 36.4
6 273 10.92 2254 90.16 519 20.76
7 136 5.44 2390 95.6 246 9.84
8 63 2.52 2453 98.12 110 4.4
9 32 1.28 2485 99.4 47 1.88
10 11 0.44 2496 99.84 15 0.6
11 3 0.12 2499 99.96 4 0.16
12 1 0.04 2500 100 1 0.04
TOTAL 2500 100.00 - - - -
Autor: Grupo 2

Gráficas de distribución de cantidad

# Histograma de cantidad

# Frecuencias
freq <- table(disc)

# Gráfica Nº1

barplot(freq,
        main="Grafica Nº1: Distribución de cantidad de elementos no detectados
en depósitos minerales de Estados Unidos",
        col="gray",
        ylab="Cantidad",
        xlab="Cantidad de elementos no detectados",
        cex.names=0.6)

# Histograma de cantidad con límite en Y

# Frecuencias
freq <- table(disc)

# Gráfica Nº2 con límite en Y

barplot(freq,
        main="Grafica Nº2: Distribución de cantidad de elementos no detectados
en depósitos minerales de Estados Unidos",
        col="gray",
        xlab="Cantidad de elementos no detectados",
        ylab="Cantidad",
        cex.names=0.6,
        ylim=c(0,800))

# Histograma de cantidad en porcentaje

etiquetas_x <- tabla_final$Elementos_No_Detectados[
  tabla_final$Elementos_No_Detectados != "TOTAL"
]

hi_plot <- tabla_final$hi[
  tabla_final$Elementos_No_Detectados != "TOTAL"
]

barplot(hi_plot,
        main = "Grafica Nº3: Distribución de cantidad en porcentaje de elementos 
        no detectados en depósitos minerales de Estados Unidos",
        col="gray", 
        space=0.3,
        las=1,
        xlab="Cantidad de elementos no detectados",
        ylab="Porcentaje",
        names.arg = etiquetas_x,
        cex.names = 0.6)

# Histograma de cantidad en porcentaje con límite en Y

hi_plot <- tabla_final$hi[
  tabla_final$Elementos_No_Detectados != "TOTAL"
]

barplot(
  hi_plot,
  space = 0.3,
  main = "Grafica Nº4: Distribución de cantidad en porcentaje de elementos
  no detectados en depósitos minerales de Estados Unidos",
  col = "gray",
  las = 1,
  xlab = "Cantidad de elementos no detectados",
  ylab = "Porcentaje",
  names.arg = etiquetas_x,
  ylim = c(0, 100),
  cex.names = 0.6
)

# Ojivas combinadas Ni

x_intervalos <- as.numeric(names(ni))

plot(x = x_intervalos,
     y = Ni_Asc,
     type = "p",
     col = "blue",
     main = "Grafica Nº5: Ojiva combinada de la cantidad de elementos no detectados\n(Ni)",
     xlab = "Cantidad de elementos no detectados",
     ylab = "Cantidad acumulada (Ni)",
     las = 2
)

lines(x = x_intervalos,
      y = Ni_Desc,
      type = "p",
      col = "red")

# Ojivas combinadas Hi

plot(x = x_intervalos,
     y = Hi_Asc,
     type = "p",
     col = "blue",
     main = "Grafica Nº6: Ojiva combinada de la cantidad de elementos no detectados\n(Hi)",
     xlab = "Cantidad de elementos no detectados",
     ylab = "Porcentaje acumulado (Hi)",
     las = 2,
     ylim = c(0, 100)
)

lines(x = x_intervalos,
      y = Hi_Desc,
      type = "p",
      col = "black")

# DIAGRAMA DE CAJA

boxplot(disc,
        horizontal = TRUE,
        col = "blue",
        main = "Gráfica Nº7: Distribución de cantidad de elementos no detectados
     en depósitos minerales de Estados Unidos",
        xlab = "Cantidad de elementos no detectados")

Indicadores Estadisticos

# Indicadores Estadisticos

# POSICION

# MEDIA ARITMETICA
x <- mean(disc)
x
## [1] 3.9408
# MEDIANA ARITMETICA
ri <- min(disc)
rs <- max(disc)
Me <- median(disc)
Me
## [1] 4
# MODA
Mo <- as.numeric(names(which.max(table(disc))))
Mo
## [1] 3
# DISPERSION

# DESVIACIÓN ESTÁNDAR
sd <- sd(disc)
sd
## [1] 1.96317
# COEFICIENTE DE VARIACIÓN
CV <- ((sd / x) * 100)
CV
## [1] 49.81654
# FORMA

# COEFICIENTE DE ASIMETRÍA
As <- skewness(disc)
As
## [1] 0.4118896
# COEFICIENTE DE CURTOSIS
K <- kurtosis(disc)
K
## [1] 0.1113899
# TABLA DE INDICADORES ESTADISTICOS

Variable <- c("Cantidad de elementos No Detectados")

TablaIndicadores <- data.frame(
  Variable,
  ri,
  rs,
  round(x, 2),
  Me,
  round(sd, 2), 
  round(CV, 2), 
  round(As, 2),
  round(K, 2)
)

colnames(TablaIndicadores) <- c(
  "Variable",
  "minimo",
  "máximo",
  "x",
  "Me",
  "sd",
  "Cv (%)",
  "As",
  "K"
)

kable(
  TablaIndicadores,
  format = "markdown",
  caption = "Tabla N°3. Indicadores estadísticos de la variable cantidad de elementos no detectados"
)
Tabla N°3. Indicadores estadísticos de la variable cantidad de elementos no detectados
Variable minimo máximo x Me sd Cv (%) As K
Cantidad de elementos No Detectados 0 12 3.94 4 1.96 49.82 0.41 0.11
# OUTLIERS

outliers <- boxplot.stats(disc)$out

num_outliers <- length(outliers)

if (num_outliers == 0) {

  minoutliers <- NA
  maxoutliers <- NA

} else {

  minoutliers <- min(outliers)
  maxoutliers <- max(outliers)

}

TablaOutliers <- data.frame(num_outliers, minoutliers, maxoutliers)

colnames(TablaOutliers) <- c("Outliers", "Mínimo", "Máximo")

kable(
  TablaOutliers,
  format = "markdown",
  caption = "Tabla N°4: Outliers de la variable cantidad de elementos no detectados"
)
Tabla N°4: Outliers de la variable cantidad de elementos no detectados
Outliers Mínimo Máximo
47 9 12

Conclusión

La variable cantidad de elementos no detectados presenta valores entre 0 y 12, con una concentración alrededor de la mediana de 4 elementos. La desviación estándar de 1.96 y el coeficiente de variación de 49.82% indican alta variabilidad, influenciada por valores atípicos elevados entre 9 y 12. La distribución presenta ligera asimetría positiva, lo que evidencia acumulación de datos bajos. Esto resulta medianamente favorable, ya que la mayoría de las muestras presentan pocos elementos no detectados.