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
| 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
| 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."