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")
# Extraer y dejar solo datos válidos
disc <- as.integer(datos$`Número de Minerales Identificados`)
disc <- na.omit(disc)
# CARGA DE LIBRERIAS
#Carga de librerias
library(gt)
library(dplyr)
library(knitr)
library(e1071)
#Agrupar la variable en intervalos
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 if(disc[i] >= 6 & disc[i] < 7){
clasificacion[i] <- "[6 , 7)"
} else if(disc[i] >= 7 & disc[i] < 8){
clasificacion[i] <- "[7 , 8)"
} else if(disc[i] >= 8 & disc[i] < 9){
clasificacion[i] <- "[8 , 9)"
} else if(disc[i] >= 9 & disc[i] < 10){
clasificacion[i] <- "[9 , 10)"
} else if(disc[i] >= 10 & disc[i] <= 11){
clasificacion[i] <- "[10 , 11]"
} 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)",
"[6 , 7)",
"[7 , 8)",
"[8 , 9)",
"[9 , 10)",
"[10 , 11]")
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, 0)
# 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) 0 0 0 0 2500 100
## 2 [2 , 3) 259 10 259 10 2500 100
## 3 [3 , 4) 278 11 537 21 2241 90
## 4 [4 , 5) 299 12 836 33 1963 79
## 5 [5 , 6) 266 11 1102 44 1664 67
## 6 [6 , 7) 271 11 1373 55 1398 56
## 7 [7 , 8) 263 11 1636 66 1127 45
## 8 [8 , 9) 308 12 1944 78 864 34
## 9 [9 , 10) 280 11 2224 89 556 22
## 10 [10 , 11] 276 11 2500 100 276 11
## 11 TOTAL 2500 100 - - - -
# TABLA GT
TablaDisc <- tabla_final %>%
gt() %>%
tab_header(
title = md("*Tabla Nº. 1*"),
subtitle = md("**Tabla de distribución de la cantidad de minerales identificados 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 = Intervalo == "TOTAL"
)
)
TablaDisc
| Tabla Nº. 1 |
| Tabla de distribución de la cantidad de minerales identificados en las muestras mineras |
| Intervalo |
ni |
hi |
Ni_Asc |
Hi_Asc |
Ni_Desc |
Hi_Desc |
| [1 , 2) |
0 |
0 |
0 |
0 |
2500 |
100 |
| [2 , 3) |
259 |
10 |
259 |
10 |
2500 |
100 |
| [3 , 4) |
278 |
11 |
537 |
21 |
2241 |
90 |
| [4 , 5) |
299 |
12 |
836 |
33 |
1963 |
79 |
| [5 , 6) |
266 |
11 |
1102 |
44 |
1664 |
67 |
| [6 , 7) |
271 |
11 |
1373 |
55 |
1398 |
56 |
| [7 , 8) |
263 |
11 |
1636 |
66 |
1127 |
45 |
| [8 , 9) |
308 |
12 |
1944 |
78 |
864 |
34 |
| [9 , 10) |
280 |
11 |
2224 |
89 |
556 |
22 |
| [10 , 11] |
276 |
11 |
2500 |
100 |
276 |
11 |
| TOTAL |
2500 |
100 |
- |
- |
- |
- |
| Autor: Grupo 2 |
Gráficas de distribución de cantidad
# Histograma de cantidad
freq <- table(disc)
barplot(freq,
main="Grafica Nº1: Distribución de cantidad del número de minerales
identificados en depósitos minerales de Estados Unidos",
col="gray",
ylab="Cantidad",
xlab="Número de minerales identificados",
cex.names=0.8)

# Histograma de cantidad
freq <- table(disc)
barplot(freq,
main="Grafica Nº2: Distribución de cantidad del número de minerales
identificados en depósitos minerales de Estados Unidos",
col="gray",
xlab="Número de minerales identificados",
ylab="Cantidad",
ylim=c(0,800),
cex.names=0.8)

# Histograma de cantidad en porcentaje
etiquetas_x <- c(1,2,3,4,5,6,7,8,9,10)
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 minerales identificados en depósitos minerales de
Estados Unidos",
col="gray",
space=0.3,
las=1,
xlab="Número de minerales identificados",
ylab="Porcentaje",
names.arg = etiquetas_x,
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.3,
main="Grafica Nº4: Distribución de cantidad en porcentaje del número
de minerales identificados en depósitos minerales de
Estados Unidos",
col = "gray",
las = 1,
xlab = "Número de minerales identificados",
ylab = "Porcentaje",
names.arg = etiquetas_x,
ylim = c(0,100),
cex.names = 0.6)

# Ojivas combinadas Ni
x_intervalos <- c(1,2,3,4,5,6,7,8,9,10)
plot(x = x_intervalos,
y = Ni_Asc,
type = "p",
col = "blue",
main = "Grafica Nº5: Ojiva combinada del número de minerales identificados\n(Ni)",
xlab = "Número de minerales identificados",
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 del número de minerales identificados\n(Hi)",
xlab = "Número de minerales identificados",
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 del número de minerales
identificados en depósitos minerales de Estados Unidos",
xlab = "Número de minerales identificados")

Indicadores Estadisticos
# POSICION
#MEDIA ARITMETICA
x<-mean(disc)
x
## [1] 6.0356
# MODA
Mo <- as.numeric(names(which.max(table(disc))))
Mo
## [1] 8
#MEDIANA ARITMETICA
ri<-min(disc)
rs<-max(disc)
Me<-median(disc)
Me
## [1] 6
# DISPERSION
#DESVIACIÓN ESTÁNDAR
sd<-sd(disc)
sd
## [1] 2.572349
#COEFICIENTE DE VARIACIÓN
CV <- ((sd / x) * 100)
CV
## [1] 42.61961
# FORMA
#COEFICIENTE DE ASIMETRÍA
As<-skewness(disc)
As
## [1] -0.01304585
#COEFICIENTE DE CURTOSIS
K<-kurtosis(disc)
K
## [1] -1.242733
# TABLA DE INDICADORES ESTADISTICOS
Variable<-c("Número de Minerales Identificados")
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 minerales identificados"
)
Tabla N°3. Indicadores estadísticos de la variable número de
minerales identificados
| Número de Minerales Identificados |
2 |
10 |
6.04 |
6 |
2.57 |
42.62 |
-0.01 |
-1.24 |
Conclusión
#conclucion
"La variable número de minerales identificados presenta valores entre 2 y 10, con una concentración en torno a la mediana de 6 minerales. La desviación estándar de 2.57 y el coeficiente de variación de 42.62% indican una distribución heterogénea. La asimetría cercana a cero evidencia una distribución equilibrada, lo que resulta favorable para la caracterización mineralógica, ya que refleja diversidad y estabilidad en los minerales identificados."
## [1] "La variable número de minerales identificados presenta valores entre 2 y 10, con una concentración en torno a la mediana de 6 minerales. La desviación estándar de 2.57 y el coeficiente de variación de 42.62% indican una distribución heterogénea. La asimetría cercana a cero evidencia una distribución equilibrada, lo que resulta favorable para la caracterización mineralógica, ya que refleja diversidad y estabilidad en los minerales identificados."