ANÁLISIS ESTADÍSTICO

CARGA DE DATOS Y LIBRERÍAS

CARGA DE DATOS

# CARGA DE DATOS


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

# Extraer y dejar solo datos válidos 

disc <- datos$Numero_Metodos_Analiticos_Empleados
disc <- na.omit(disc)  

# CARGA DE LIBRERIAS

#Carga de librerias
library(gt)
library(dplyr)
library(knitr)
library(e1071)

#Agrupar la variable en intervalos (Modificado hasta el 6)

clasificacion <- character(length(disc))

for(i in seq_along(disc)){
  if(disc[i] >= 1 & disc[i] < 2){
    clasificacion[i] <- "[1 , 2)"
  } else if(disc[i] >= 2 & disc[i] < 3){
    clasificacion[i] <- "[2 , 3)"
  } else if(disc[i] >= 3 & disc[i] < 4){
    clasificacion[i] <- "[3 , 4)"
  } else if(disc[i] >= 4 & disc[i] < 5){
    clasificacion[i] <- "[4 , 5)"
  } else if(disc[i] >= 5 & disc[i] <= 6){
    clasificacion[i] <- "[5 , 6]"
  } else {
    clasificacion[i] <- NA
  }
}

# Quitar posibles NA de la clasificación
clasificacion <- na.omit(clasificacion)

#Orden adecuado

orden <- c("[1 , 2)",
           "[2 , 3)",
           "[3 , 4)",
           "[4 , 5)",
           "[5 , 6]")

clasificacion <- factor(clasificacion, levels = orden)

TABLA DE DISTRIBUCION DE CANTIDAD

# 4) Frecuencias simples
ni <- table(clasificacion)
total <- sum(ni)
hi <- round (as.numeric(ni) / total * 100,2) 

# 5) Acumuladas ascendente
Ni_Asc <- cumsum(ni)
Hi_Asc <- cumsum(hi)

# 6) Acumuladas descendente
Ni_Desc <- rev(cumsum(rev(ni)))
Hi_Desc <- rev(cumsum(rev(hi)))

# 7) Tabla final 
tabla_final <- data.frame(
  Intervalo = orden,
  ni = as.numeric(ni),
  hi = hi,
  Ni_Asc = as.numeric(Ni_Asc),
  Hi_Asc = round(Hi_Asc, 3),
  Ni_Desc = as.numeric(Ni_Desc),
  Hi_Desc = round(Hi_Desc, 3)
)

# Verificar que las proporciones sumen 100
sum(tabla_final$hi) 
## [1] 100
tail(tabla_final$Hi_Asc,1)  
## [1] 100
head(tabla_final$Hi_Desc,1) 
## [1] 100
# Calcular sumatorias simples
suma_ni <- sum(tabla_final$ni)
suma_hi <- sum(tabla_final$hi)

# Crear fila total
fila_total <- data.frame(
  Intervalo = "TOTAL",
  ni = suma_ni,
  hi = round((suma_hi),2),
  Ni_Asc = "-",
  Hi_Asc = "-",
  Ni_Desc = "-",
  Hi_Desc = "-"
)

# Unir a la tabla
tabla_final <- rbind(tabla_final, fila_total)

tabla_final
##   Intervalo   ni  hi Ni_Asc Hi_Asc Ni_Desc Hi_Desc
## 1   [1 , 2)  375  15    375     15    2500     100
## 2   [2 , 3)  550  22    925     37    2125      85
## 3   [3 , 4)  475  19   1400     56    1575      63
## 4   [4 , 5)  400  16   1800     72    1100      44
## 5   [5 , 6]  700  28   2500    100     700      28
## 6     TOTAL 2500 100      -      -       -       -
# TABLA GT
TablaDisc <- tabla_final %>%
  gt() %>%
  
  tab_header(
    title = md("**Tabla Nº 1**"),
    subtitle = md("Distribución del número de métodos analíticos empleados")
  ) %>%
  
  fmt_number(
    columns = c(ni, hi),
    decimals = 2
  ) %>%
  
  cols_align(
    align = "center",
    columns = everything()
  ) %>%
  
  tab_style(
    style = cell_text(weight = "bold"),
    locations = cells_body(
      rows = Intervalo == "TOTAL"
    )
  ) %>%
  
  tab_source_note(
    source_note = md("Autor: Grupo 2")
  )

TablaDisc
Tabla Nº 1
Distribución del número de métodos analíticos empleados
Intervalo ni hi Ni_Asc Hi_Asc Ni_Desc Hi_Desc
[1 , 2) 375.00 15.00 375 15 2500 100
[2 , 3) 550.00 22.00 925 37 2125 85
[3 , 4) 475.00 19.00 1400 56 1575 63
[4 , 5) 400.00 16.00 1800 72 1100 44
[5 , 6] 700.00 28.00 2500 100 700 28
TOTAL 2,500.00 100.00 - - - -
Autor: Grupo 2

Gráficas de distribución de cantidad

# Histograma de cantidad

hist(disc, 
     main="Grafica Nº1: Distribución de cantidad del número de metodos 
        analiticos empleados en depósitos minerales de 
        Estados Unidos",
     col="gray",
     ylab="Cantidad",
     xlab = "Número de métodos analíticos empleados"
     )

# Histograma de cantidad

hist(disc, 
     main="Grafica Nº2: Distribución de cantidad del número de metodos 
        analiticos empleados en depósitos minerales de 
        Estados Unidos",
     col="gray",
     xlab="Número de métodos analíticos empleados",
     ylab="Cantidad",
     ylim=c(0,800))

# Histograma de cantidad en porcentaje

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

barplot(hi_plot,
        main = "Grafica Nº3: Distribución de cantidad en porcentaje del 
        número de metodos analiticos empleados en depósitos 
        minerales de Estados Unidos",
        col="gray", 
        space=0,
        las=1,
        xlab="Número de métodos analíticos empleados",
        ylab="Porcentaje",
        names.arg = orden, # Se cambian las etiquetas numéricas fijas por los intervalos reales
        cex.names = 0.6)

# Histograma de cantidad en porcentaje

# Filtrar los datos SIN la fila TOTAL
hi_plot <- tabla_final$hi[tabla_final$Intervalo != "TOTAL"]

barplot(hi_plot,
        space = 0,
        main="Grafica Nº4: Distribución de cantidad en porcentaje del 
        número de metodos analiticos empleados en depósitos 
        minerales de Estados Unidos",
        col = "gray",
        las = 1,
        xlab = "Número de métodos analíticos empleados",
        ylab = "Porcentaje",
        names.arg = orden, # Se cambian las etiquetas numéricas fijas por los intervalos reales
        ylim = c(0,100),
        cex.names = 0.6)

# Histograma

histograma <- hist(
  disc,
  breaks = seq(min(disc), max(disc) + 1, by = 1),
  col = "gray",
  main = "Gráfica Nº5: Histograma con polígono de frecuencias 
  del número de los metodos analiticos empleados en depósitos
  minerales de Estados Unidos",
  xlab = "Número de elementos no detectados",
  ylab = "Cantidad"
)

# Polígono de frecuencias

lines(
  histograma$mids,
  histograma$counts,
  type = "b",
  pch = 16,
  lwd = 2
)

# Ojivas combinadas Ni

x_intervalos <- c(1, 2, 3, 4, 5)

plot(x = x_intervalos,
     y = Ni_Asc,
     type = "p",
     col = "blue",
     main = "Grafica Nº6: Ojiva combinada del número de métodos analíticos
     empleados\n(Ni)",
     xlab = "Intervalos de métodos analíticos empleados",
     ylab = "Cantidad acumulada (Ni)",
     xaxt = "n", # Oculta el eje X por defecto para personalizarlo
     las = 2
)
# Forzar a que el eje X muestre correctamente los límites 
axis(1, at = x_intervalos, labels = orden, cex.axis = 0.7)

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º7: Ojiva combinada del número de métodos analíticos
     empleados\n(Hi)",
     xlab = "Intervalos de métodos analíticos empleados",
     ylab = "Porcentaje acumulado (Hi)",
     xaxt = "n", # Oculta el eje X por defecto para personalizarlo
     las = 2,
     ylim = c(0, 100)
)
# Forzar a que el eje X muestre correctamente los límites 
axis(1, at = x_intervalos, labels = orden, cex.axis = 0.7)

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

# DIAGRAMA DE CAJA

boxplot(disc,
        horizontal = TRUE,
        col = "blue",
        main = "Gráfica Nº8: Distribución de cantidad del número de metodos 
        analiticos empleados en depósitos minerales de 
        Estados Unidos",
        xlab = "Número de métodos analíticos empleados")

# Ver los cuartiles

summary(disc)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    1.00    2.00    3.00    3.34    5.00    6.00
# HISTOGRAMA + CAJA DE BIGOTES SUPERPUESTA

hist(
  disc,
  col = "lightgray",
  border = "white",
  main = "Gráfica Nº9: Histograma con diagrama de caja superpuesto",
  xlab = "Número de elementos no detectados",
  ylab = "Cantidad"
)

# Dibujar la caja sobre el histograma
boxplot(
  disc,
  horizontal = TRUE,
  at = par("usr")[4] * 0.65,      # posición cerca de la parte superior
  add = TRUE,
  xaxt = "n",
  yaxt = "n",
  boxwex = par("usr")[4] * 0.25,  # grosor de la caja
  col = rgb(0.2,0.2,1,0.30),      # azul transparente
  border = "blue"
)

Indicadores Estadisticos

# Indicadores Estadisticos

# POSICION

#MEDIA ARITMETICA
x<-mean(disc)
x
## [1] 3.34
# MODA
Mo <- as.numeric(names(which.max(table(disc))))
Mo
## [1] 2
#MEDIANA ARITMETICA

ri<-min(disc)
rs<-max(disc)
Me<-median(disc)
Me
## [1] 3
# DISPERSION

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

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

Variable<-c("Número de métodos analíticos empleados")

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 número de métodos analíticos empleados"
)
Tabla N°3. Indicadores estadísticos de la variable número de métodos analíticos empleados
Variable minimo máximo x Me sd Cv (%) As K
Número de métodos analíticos empleados 1 6 3.34 3 1.64 49.06 0.2 -1.15
# ==============================================================================
# OUTLIERS (CORREGIDO PARA EVITAR INF / -INF)
# ==============================================================================

# OUTLIERS

outliers <- boxplot.stats(disc)$out
num_outliers <- length(outliers)

# Verificar si existen 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"
)
Tabla N°4: Outliers de la variable
Outliers Mínimo Máximo
0 NA NA

Conclusión

#conclucion
"La variable número de métodos analíticos empleados presenta valores entre 1 y 6, con una concentración alrededor de la mediana de 3 métodos. La desviación estándar de 1.72 y el coeficiente de variación de 49.77% indican variabilidad moderada-alta en los procedimientos analíticos utilizados. La distribución es prácticamente simétrica, lo que evidencia uniformidad en la aplicación de métodos. Esto resulta favorable, ya que permite obtener análisis más completos y confiables de las muestras minerales."
## [1] "La variable número de métodos analíticos empleados presenta valores entre 1 y 6, con una concentración alrededor de la mediana de 3 métodos. La desviación estándar de 1.72 y el coeficiente de variación de 49.77% indican variabilidad moderada-alta en los procedimientos analíticos utilizados. La distribución es prácticamente simétrica, lo que evidencia uniformidad en la aplicación de métodos. Esto resulta favorable, ya que permite obtener análisis más completos y confiables de las muestras minerales."