Carga de Datos y Librerías

1. CARGA DE LIBRERIAS

# cargar librerías
library(dplyr)
## 
## Adjuntando el paquete: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(ggplot2)
library(gt)
library(knitr)
library(e1071)
## 
## Adjuntando el paquete: 'e1071'
## The following object is masked from 'package:ggplot2':
## 
##     element

1.2. CARGA DE DATOS

#cargar datos
datos <- read.csv("C:\\Users\\joeja\\Desktop\\Proyecto Estadística\\Depositos_sulfuro.csv", 
                  header = TRUE, 
                  sep = ";", 
                  dec = ".")
#Limpiamos la Variable

cobre <- as.numeric(datos$cugrd) 
cobre <- na.omit(cobre)
cobre <- subset(cobre, cobre >= 0)

Tabla de distribucion de frecuencia por Sturges

2. TABLAS DE DISTRIBUCIÓN DE FRECUENCIA POR STURGES

# Calculamos el numero de datos
n <- length(cobre)

# Numero de clases con Sturges
k <- floor(1 + 3.3 * log10(n))

# Min, Max 
minimo <- min(cobre)
maximo <- max(cobre)

#Rango
R <- maximo - minimo

# Amplitud
A <- R/k

# Límites inferior (Li) y superior (Ls)
Li <- round(seq(from = minimo, to = maximo-A, by = A), 2)
Ls <- round(seq(from = minimo+A, to = maximo, by = A), 2)

# Marca de clase
MC <- round((Li + Ls)/2, 2)

# Frecuencia Absoluta (ni)
ni <- numeric(length(Li))
for (i in 1:length(Li)) {
  ni[i] <- sum(cobre >= Li[i] & cobre < Ls[i])
}
ni[length(Li)] <- sum(cobre >= Li[length(Li)] & cobre <= maximo)

# Frecuencia Relativa (hi)
hi <- (ni / sum(ni)) * 100

# Frecuencias Acumuladas
Niasc <- cumsum(ni)
Nidsc <- rev(cumsum(rev(ni)))
Hiasc <- round(cumsum(hi), 2)
Hidsc <- round(rev(cumsum(rev(hi))), 2)

# TABLA FINAL
TDFcobre <- round(data.frame(
  Li, Ls, MC, ni, hi , Niasc, Nidsc, Hiasc, Hidsc
),2)

TDFcobre
##       Li    Ls     MC  ni    hi Niasc Nidsc  Hiasc  Hidsc
## 1    0.0  98.7  49.35 586 67.51   586   868  67.51 100.00
## 2   98.7 197.4 148.05 170 19.59   756   282  87.10  32.49
## 3  197.4 296.1 246.75  63  7.26   819   112  94.35  12.90
## 4  296.1 394.8 345.45  26  3.00   845    49  97.35   5.65
## 5  394.8 493.5 444.15  16  1.84   861    23  99.19   2.65
## 6  493.5 592.2 542.85   1  0.12   862     7  99.31   0.81
## 7  592.2 690.9 641.55   3  0.35   865     6  99.65   0.69
## 8  690.9 789.6 740.25   0  0.00   865     3  99.65   0.35
## 9  789.6 888.3 838.95   1  0.12   866     3  99.77   0.35
## 10 888.3 987.0 937.65   2  0.23   868     2 100.00   0.23

Fila total de las sumas de ni y hi

# FILA TOTAL
fila_total <- data.frame(
  Li = "TOTAL",
  Ls = "",
  MC = "",
  ni = sum(TDFcobre$ni),
  hi = round(sum(TDFcobre$hi),),
  Niasc = "",
  Nidsc = "",
  Hiasc = "",
  Hidsc = ""
)

#TABLA FINAL 
TDFcobre_p <- rbind(TDFcobre, fila_total)
TABLA DE DISTRIBUCIÓN DE FRECUENCIA POR STURGES FINAL

2.1. Tabla Nº1-Distribución de Porcentaje de cobre en Depósito masivos de sulfuros volcanicos

#Crear Tabla
tablacobre <- TDFcobre_p %>%
  gt() %>%
  tab_header(
    title = md("*Tabla Nº:1*"),
    subtitle = md("Distribución de Porcentaje en peso de cobre en el mineral en Depósito masivos de sulfuros volcanicos")
  ) %>%
  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"
  )

tablacobre
Tabla Nº:1
Distribución de Porcentaje en peso de cobre en el mineral en Depósito masivos de sulfuros volcanicos
Li Ls MC ni hi Niasc Nidsc Hiasc Hidsc
0 98.7 49.35 586 67.51 586 868 67.51 100
98.7 197.4 148.05 170 19.59 756 282 87.1 32.49
197.4 296.1 246.75 63 7.26 819 112 94.35 12.9
296.1 394.8 345.45 26 3.00 845 49 97.35 5.65
394.8 493.5 444.15 16 1.84 861 23 99.19 2.65
493.5 592.2 542.85 1 0.12 862 7 99.31 0.81
592.2 690.9 641.55 3 0.35 865 6 99.65 0.69
690.9 789.6 740.25 0 0.00 865 3 99.65 0.35
789.6 888.3 838.95 1 0.12 866 3 99.77 0.35
888.3 987 937.65 2 0.23 868 2 100 0.23
TOTAL 868 100.00
Autor: GRUPO 2

#DEBIDO A QUE LA TABLA SE PRESENTA CON NUMEROS MUY DIFICILES SE DECIDIO SIMPLIFICAR LA TABLA

Tabla de distribución de frecuencias simplificada

4. Histograma de distribución de frecuencias

histograma_cobre<-hist(cobre,
                     main = "Gráfica Nº1: Distribución de frecuencia absoluta local 
                     de Porcentaje en peso de cobre en el mineral en depositos 
                     masivos de sulfuros volcanicos ",
                     xlab = "Porcentaje en Peso de Cobre en el mineral (% p/p)",
                     ylab = "Cantidad",
                     col = "gray")

TABLA DE DISTRIBUCION DE FRECUENCIA SIMPLIFICADA

#LIMITE INFERIOR SIMPLIFICADA
lis<- histograma_cobre$breaks[1:10]
lis
##  [1]   0 100 200 300 400 500 600 700 800 900
#LIMITE SUPERIOR SIMPLIFICADA
lss<-histograma_cobre$breaks[2:11]
lss
##  [1]  100  200  300  400  500  600  700  800  900 1000
#MARCA DE CLASE
MC_f<-histograma_cobre$mids
MC_f
##  [1]  50 150 250 350 450 550 650 750 850 950
# Frecuencia absoluta(ni)
ni_f <-histograma_cobre $counts
ni_f
##  [1] 587 170  62  26  16   1   3   0   1   2
# Frecuencia relativa (hi)
hi_f <- (ni_f/sum(ni_f))*100
hi_f
##  [1] 67.6267281 19.5852535  7.1428571  2.9953917  1.8433180  0.1152074
##  [7]  0.3456221  0.0000000  0.1152074  0.2304147
# Frecuencias Acumuladas
Niasc_f <- cumsum(ni_f)
Nidsc_f <- rev(cumsum(rev(ni_f)))
Hiasc_f <- round(cumsum(hi_f), 2)
Hidsc_f <- round(rev(cumsum(rev(hi_f))), 2)

# TABLA FINAL
TDFcobre_f <- round(data.frame(
  lis, lss, MC_f, ni_f, hi_f, Niasc_f, Nidsc_f, Hiasc_f, Hidsc_f
),2)

TDFcobre_f
##    lis  lss MC_f ni_f  hi_f Niasc_f Nidsc_f Hiasc_f Hidsc_f
## 1    0  100   50  587 67.63     587     868   67.63  100.00
## 2  100  200  150  170 19.59     757     281   87.21   32.37
## 3  200  300  250   62  7.14     819     111   94.35   12.79
## 4  300  400  350   26  3.00     845      49   97.35    5.65
## 5  400  500  450   16  1.84     861      23   99.19    2.65
## 6  500  600  550    1  0.12     862       7   99.31    0.81
## 7  600  700  650    3  0.35     865       6   99.65    0.69
## 8  700  800  750    0  0.00     865       3   99.65    0.35
## 9  800  900  850    1  0.12     866       3   99.77    0.35
## 10 900 1000  950    2  0.23     868       2  100.00    0.23

Fila total de las sumas de ni y hi

# FILA TOTAL
fila_total_f <- data.frame(
  lis = "TOTAL",
  lss = "",
  MC_f = "",
  ni_f = sum(TDFcobre_f$ni_f),
  hi_f = round(sum(TDFcobre_f$hi_f),),
  Niasc_f = "",
  Nidsc_f = "",
  Hiasc_f = "",
  Hidsc_f = ""
)

TDFcobre_t <- rbind(TDFcobre_f, fila_total_f)

TABLA DE DISTRIBUCION DE FRECUENCIA SIMPLIFICADA FINAL

tabla_cobre_f <- TDFcobre_t %>%
  gt() %>%
  tab_header(
    title = md("*Tabla Nº:2*"),
    subtitle = md("Distribución Porcentaje en peso de Cobre en el mineral en los depósitos masivos de sulfuros")
  ) %>%
  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"
  )

tabla_cobre_f
Tabla Nº:2
Distribución Porcentaje en peso de Cobre en el mineral en los depósitos masivos de sulfuros
lis lss MC_f ni_f hi_f Niasc_f Nidsc_f Hiasc_f Hidsc_f
0 100 50 587 67.63 587 868 67.63 100
100 200 150 170 19.59 757 281 87.21 32.37
200 300 250 62 7.14 819 111 94.35 12.79
300 400 350 26 3.00 845 49 97.35 5.65
400 500 450 16 1.84 861 23 99.19 2.65
500 600 550 1 0.12 862 7 99.31 0.81
600 700 650 3 0.35 865 6 99.65 0.69
700 800 750 0 0.00 865 3 99.65 0.35
800 900 850 1 0.12 866 3 99.77 0.35
900 1000 950 2 0.23 868 2 100 0.23
TOTAL 868 100.00
Autor: GRUPO 2

Gráficas de distribucón de frecuencia

Colores de barras

# colores de las barras
colores <- gray.colors(length(ni), start = 0.3, end = 0.9)

Histograma de frecuencia absoluta local y global

#Histograma de frecuencia absoluta local
hist(
  cobre,
  main = "Gráfica Nº2: Distribución local de Porcentaje en peso de cobre 
   en el mineral en depositos masivos de sulfuros volcanicos ",
  xlab = "Porcentaje en Peso de Cobre en el mineral (% p/p)",
  ylab = "Cantidad",
  col = colores
)

#Histograma de frecuencia absoluta global
hist(
  cobre,
  main = "Gráfica Nº3: Distribución global de Porcentaje en peso de cobre 
  en el mineral en depositos masivos de sulfuros volcanicos",
  xlab = "Porcentaje en Peso de Cobre en el mineral (% p/p)",
  ylab = "Cantidad ",
  col = colores,
  ylim = c(0, 868)
)

4. Histograma de frecuencia relativa local y global

# Intervalos de 100 en 100
breaks_100 <- seq(
  from = floor(min(cobre)/100)*100,
  to   = ceiling(max(cobre)/100)*100,
  by   = 100
)

# Etiquetas de intervalos
intervalos <- paste(
  breaks_100[-length(breaks_100)],
  breaks_100[-1],
  sep = "-"
)

barplot(
  hi_f,
  names.arg = intervalos,
  col = colores,
  ylim = c(0, 67),
  space = 0,
  cex.names = 0.6,
  ylab = "Porcentaje (%)",
  xlab = "Porcentaje en Peso de Cobre en el mineral (% p/p)",
  main = "Gráfica Nº4: Distribución relativa local de porcentaje en peso de cobre
  en el mineral en depósitos masivos de sulfuros volcánicos",
  las = 2
)

#Histograma de frecuencia relativa (global)
barplot(
  hi_f,
  names.arg = intervalos,
  col = colores,
  ylim = c(0, 100),
  cex.names = 0.6,
  space = 0,
  ylab = "Porcentaje (%)",
  xlab = "Porcentaje en Peso de Cobre en el mineral (% p/p)",
  main = "Gráfica Nº5: Distribución relativa global de porcentaje en peso de cobre
  en el mineral en depósitos masivos de sulfuros volcánicos",
  las = 2
)

4.1. Diagrama de caja

#Diagrama de caja
boxplot(
  cobre,
  horizontal = TRUE,
  main = "Gráfica Nº6: Distribución de frecuencia de porcentaje en peso
  de cobre en el mineral en depositos masivos de sulfuros volcanicos",
  xlab = "Porcentaje en Peso de Cobre en el mineral (% p/p)",
  col = colores
)

Niasc_f <- as.numeric(TDFcobre_f$Niasc_f)
Nidsc_f <- as.numeric(TDFcobre_f$Nidsc_f)

4.2. Ojivas combinadas

Ojivas combinadas Ni y hi

#Ojivas combinadas Ni
plot(lss, Nidsc_f, type="o",
     main="Gráfica Nº7: Distribución de frecuencia acumulada 
     absoluta de porcentaje en peso de cobre en el mineral 
     en depositos masivos de sulfuros volcanicos"
     , ylab="Cantidad", col="blue", xlab="Porcentaje en Peso de Cobre en el mineral (% p/p)")

lines(lis, Niasc_f, col="black", type="b")

#Ojivas combinadas Hi
plot(lss, Hidsc_f, type="o",
     main="Gráfica Nº8: Distribución de frecuencia acumulada 
     relativa de porcentaje en peso de cobre en el mineral 
     en depositos masivos de sulfuros volcanicos"
     , ylab="Porcentaje", col="blue", xlab="Porcentaje en Peso de Cobre en el mineral (% p/p)")

lines(lis, Hiasc_f, col="black", type="b")

Indicadores estadísticos y outliers

5. Indicadores

Ver cuartiles

#cuartiles
summary(cobre) 
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##     0.0     9.0    33.0    85.0   128.2   987.0

Posicion

#MEDIA ARITMETICA
x<-mean(cobre)
x
## [1] 85.00346
#MEDIANA ARITMETICA

ri<-min(cobre)
rs<-max(cobre)
Me<-median(cobre)
Me
## [1] 33

Dispersion

#DESVIACIÓN ESTÁNDAR
sd<-sd(cobre)
sd
## [1] 115.3708
#COEFICIENTE DE VARIACIÓN
CV <- ((sd / x) * 100)
CV
## [1] 135.7248

Forma

#COEFICIENTE DE ASIMETRÍA
As<-skewness(cobre)
As
## [1] 2.64477
#COEFICIENTE DE CURTOSIS
K<-kurtosis(cobre)
K
## [1] 11.08296

5.1. Tabla de Indicadores Estadísticos

#COEFICIENTE DE ASIMETRÍA
Variable<-c("Porcentaje en peso de cobre")
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íticos de la variable porcentaje en peso de cobre en el mineral en depositos masivos de sulfuros volcanicos")
Tabla N°3. Indicadores estadíticos de la variable porcentaje en peso de cobre en el mineral en depositos masivos de sulfuros volcanicos
Variable minimo máximo x Me sd Cv (%) As K
Porcentaje en peso de cobre 0 987 85 33 115.37 135.72 2.64 11.08

5.2. Tabla Outliers

#COEFICIENTE DE ASIMETRÍA
outliers<-boxplot.stats(cobre)$out 
# Contar los valores atípicos 
num_outliers <- length(outliers) 
num_outliers
## [1] 45
minoutliers<-min(outliers)
minoutliers
## [1] 311
maxoutliers<-max(outliers)
maxoutliers
## [1] 987
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 porcentaje en peso de cobre en los depositos masivos de sulfuros volcanicos).")
Tabla N°4: Outliers de la variable porcentaje en peso de cobre en los depositos masivos de sulfuros volcanicos).
Outliers Mínimo Máximo
45 311 987

Conclusión

6. Conclusiones

La variable porcentaje en peso de cobre presenta valores entre 0 % y 987 %, con una media de 85.00 % y una mediana de 33 %, lo que evidencia una distribución asimétrica influenciada por valores altos. La desviación estándar de 115.37 % y el coeficiente de variación de 135.72 % indican una alta heterogeneidad en los datos.

La asimetría positiva (As = 2.64) y la curtosis elevada (K = 11.08) reflejan una distribución leptocúrtica, con concentración de observaciones en valores bajos y presencia significativa de 45 valores atípicos. Este comportamiento es característico de los depósitos masivos de sulfuros volcánicos, donde predominan bajas leyes de cobre y pocos depósitos concentran valores elevados.