CARGA DE DATOS Y LIBRERÍAS
# CARGA DE DATOS
datos <- read.csv("C:/Users/Grace/OneDrive - Universidad Central del Ecuador/Documentos/dataset_geologico_limpio_80.csv",
header = TRUE,
sep = ",",
dec = ".",
stringsAsFactors = FALSE)
# LIMPIEZA DE LA VARIABLE
arcilla_raw <- as.numeric(gsub("[^0-9.-]", "", datos$CLAY_PCT))
arcilla <- na.omit(arcilla_raw)
arcilla <- arcilla[arcilla >= 0 & arcilla <= 100]
# Número de datos
n <- length(arcilla)
# CARGA DE LIBRERÍAS
library(gt)
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(knitr)
library(e1071)
library(moments)
##
## Adjuntando el paquete: 'moments'
## The following objects are masked from 'package:e1071':
##
## kurtosis, moment, skewness
TABLA DE DISTRIBUCIÓN DE FRECUENCIA
Agrupación por la regla de Sturges
# Número de clases (Sturges)
k <- floor(1 + 3.3 * log10(n))
# mínimo y máximo
minimo <- min(arcilla)
maximo <- max(arcilla)
# rango
R <- maximo - minimo
# amplitud
A <- R / k
# Límites
Li <- round(seq(minimo, maximo - A + 1e-6, by = A),2)
Ls <- round(Li + A,2)
Ls[length(Ls)] <- maximo
# Marca de clase
MC <- round((Li + Ls)/2,2)
# FRECUENCIAS
# FRECUENCIAS
ni <- numeric(length(Li))
for(i in 1:length(Li)){
if(i == length(Li)){
ni[i] <- sum(arcilla >= Li[i] & arcilla <= Ls[i])
} else {
ni[i] <- sum(arcilla >= Li[i] & arcilla < Ls[i])
}
}
# Frecuencia relativa
hi <- round((ni/sum(ni))*100,2)
# Frecuencias acumuladas
Niasc <- cumsum(ni)
Nidsc <- rev(cumsum(rev(ni)))
Hiasc <- round(cumsum(hi),2)
Hidsc <- round(rev(cumsum(rev(hi))),2)
# TABLA DE DISTRIBUCIÓN
TDArcilla <- round(data.frame(
Li, Ls, MC, ni, hi, Niasc, Nidsc, Hiasc, Hidsc
),2)
TDArcilla
## Li Ls MC ni hi Niasc Nidsc Hiasc Hidsc
## 1 0.00 6.31 3.15 14156 51.98 14156 27233 51.98 100.00
## 2 6.31 12.62 9.46 2706 9.94 16862 13077 61.92 48.02
## 3 12.63 18.94 15.79 2536 9.31 19398 10371 71.23 38.08
## 4 18.94 25.25 22.09 1725 6.33 21123 7835 77.56 28.77
## 5 25.26 31.57 28.41 1437 5.28 22560 6110 82.84 22.44
## 6 31.57 37.88 34.73 1325 4.87 23885 4673 87.71 17.16
## 7 37.88 44.19 41.03 1037 3.81 24922 3348 91.52 12.29
## 8 44.20 50.51 47.36 680 2.50 25602 2311 94.02 8.48
## 9 50.51 56.82 53.66 457 1.68 26059 1631 95.70 5.98
## 10 56.83 63.14 59.98 371 1.36 26430 1174 97.06 4.30
## 11 63.14 69.45 66.30 298 1.09 26728 803 98.15 2.94
## 12 69.45 75.76 72.61 250 0.92 26978 505 99.07 1.85
## 13 75.77 82.08 78.92 162 0.59 27140 255 99.66 0.93
## 14 82.08 88.39 85.24 74 0.27 27214 93 99.93 0.34
## 15 88.40 94.71 91.56 19 0.07 27233 19 100.00 0.07
# Fila total
fila_total <- data.frame(
Li = "TOTAL",
Ls = "",
MC = "",
ni = sum(TDArcilla$ni),
hi = round(sum(TDArcilla$hi)),
Niasc = "",
Nidsc = "",
Hiasc = "",
Hidsc = ""
)
TDArcilla_p <- rbind(TDArcilla, fila_total)
# TABLA DE DISTRIBUCIÓN FINAL
TablaArcilla <- TDArcilla_p %>%
gt() %>%
tab_header(
title = md("**Tabla Nº1**"),
subtitle = md("Tabla de distribución de cantidad de Arcilla (%) en sedimentos marinos")
) %>%
tab_source_note(
source_note = md("Autor: Grupo 3")
) %>%
tab_options(
table.border.top.color = "black",
table.border.bottom.color = "black",
column_labels.border.bottom.color = "black",
column_labels.border.bottom.width = px(2),
row.striping.include_table_body = TRUE,
table_body.hlines.color = "gray"
)
TablaArcilla
| Tabla Nº1 |
| Tabla de distribución de cantidad de Arcilla (%) en sedimentos marinos |
| Li |
Ls |
MC |
ni |
hi |
Niasc |
Nidsc |
Hiasc |
Hidsc |
| 0 |
6.31 |
3.15 |
14156 |
51.98 |
14156 |
27233 |
51.98 |
100 |
| 6.31 |
12.62 |
9.46 |
2706 |
9.94 |
16862 |
13077 |
61.92 |
48.02 |
| 12.63 |
18.94 |
15.79 |
2536 |
9.31 |
19398 |
10371 |
71.23 |
38.08 |
| 18.94 |
25.25 |
22.09 |
1725 |
6.33 |
21123 |
7835 |
77.56 |
28.77 |
| 25.26 |
31.57 |
28.41 |
1437 |
5.28 |
22560 |
6110 |
82.84 |
22.44 |
| 31.57 |
37.88 |
34.73 |
1325 |
4.87 |
23885 |
4673 |
87.71 |
17.16 |
| 37.88 |
44.19 |
41.03 |
1037 |
3.81 |
24922 |
3348 |
91.52 |
12.29 |
| 44.2 |
50.51 |
47.36 |
680 |
2.50 |
25602 |
2311 |
94.02 |
8.48 |
| 50.51 |
56.82 |
53.66 |
457 |
1.68 |
26059 |
1631 |
95.7 |
5.98 |
| 56.83 |
63.14 |
59.98 |
371 |
1.36 |
26430 |
1174 |
97.06 |
4.3 |
| 63.14 |
69.45 |
66.3 |
298 |
1.09 |
26728 |
803 |
98.15 |
2.94 |
| 69.45 |
75.76 |
72.61 |
250 |
0.92 |
26978 |
505 |
99.07 |
1.85 |
| 75.77 |
82.08 |
78.92 |
162 |
0.59 |
27140 |
255 |
99.66 |
0.93 |
| 82.08 |
88.39 |
85.24 |
74 |
0.27 |
27214 |
93 |
99.93 |
0.34 |
| 88.4 |
94.71 |
91.56 |
19 |
0.07 |
27233 |
19 |
100 |
0.07 |
| TOTAL |
|
|
27233 |
100.00 |
|
|
|
|
| Autor: Grupo 3 |
GRÁFICAS DE DISTRIBUCIÓN DE FRECUENCIA
## Histograma de frecuencia absoluta local
hist(arcilla,
breaks = k,
main = "Gráfica Nº1: Distribución de cantidad de Arcilla
en Sedimentos Marinos (Local)",
xlab = "Arcilla (%)",
ylab = "Cantidad",
col = "gray")

# Histograma de frecuencia absoluta global
hist(arcilla,
breaks = k,
main = "Gráfica Nº2: Distribución de cantidad de Arcilla
en Sedimentos Marinos (Global)",
xlab = "Arcilla (%)",
ylab = "Cantidad",
col = "gray",
ylim = c(0,max(ni)+10))

# Frecuencia relativa local
barplot(hi,
space = 0,
main = "Gráfica Nº3: Distribución de cantidad en porcentaje de Arcilla
en Sedimentos Marinos (Local)",
col = "gray",
xlab = "Intervalos de Arcilla (%)",
ylab = "Porcentaje",
names.arg = MC)

# Frecuencia relativa global
barplot(hi,
space = 0,
main = "Gráfica Nº4: Distribución de cantidad en porcentaje de Arcilla
en Sedimentos Marinos (Global)",
col = "gray",
xlab = "Intervalos de Arcilla (%)",
ylab = "Porcentaje",
names.arg = MC,
ylim = c(0,100))

# Ojiva combinada Ni
plot(Ls, Nidsc, type="o",
main="Gráfica Nº5: Ojiva combinada de Arcilla (Ni)",
ylab="Cantidad acumulada",
col="blue",
xlab="Arcilla (%)")
lines(Li, Niasc, col="red", type="o")
legend("topleft",
legend=c("Descendente","Ascendente"),
col=c("blue","red"),
lty=1,
pch=1)

# Ojiva combinada Hi
plot(Ls, Hidsc, type="o",
main="Gráfica Nº6: Ojiva combinada de Arcilla (Hi)",
ylab="Porcentaje acumulado",
col="blue",
xlab="Arcilla (%)",
ylim=c(0,100))
lines(Li, Hiasc, col="red", type="o")
legend("topleft",
legend=c("Descendente","Ascendente"),
col=c("blue","red"),
lty=1,
pch=1)

# Diagrama de caja
boxplot(arcilla,
horizontal = TRUE,
main = "Gráfica Nº7: Distribución de Arcilla en Sedimentos Marinos",
xlab = "Arcilla (%)",
col = "lightblue")

INDICADORES ESTADÍSTICOS
# Cálculo de indicadores
media <- mean(arcilla)
mediana <- median(arcilla)
desv <- sd(arcilla)
CV <- round((desv/media)*100,2)
asimetria <- round(skewness(arcilla),2)
curtosis <- round(kurtosis(arcilla),2)
minimo <- min(arcilla)
maximo <- max(arcilla)
TablaIndicadores <- data.frame(
Variable = "Arcilla (%)",
Minimo = round(minimo,2),
Maximo = round(maximo,2),
Media = round(media,2),
Mediana = round(mediana,2),
Desv_Est = round(desv,2),
CV = CV,
Asimetria = asimetria,
Curtosis = curtosis
)
TablaIndicadores
## Variable Minimo Maximo Media Mediana Desv_Est CV Asimetria Curtosis
## 1 Arcilla (%) 0 94.71 14.21 5.37 18.39 129.46 1.55 4.89
# Tabla Mejorada
TablaIndicadores %>%
gt() %>%
tab_header(
title = md("**Tabla Nº2**"),
subtitle = md("Indicadores estadísticos de la variable Arcilla (%)")
) %>%
tab_source_note(
source_note = md("Autor: Grupo 3")
)
| Tabla Nº2 |
| Indicadores estadísticos de la variable Arcilla (%) |
| Variable |
Minimo |
Maximo |
Media |
Mediana |
Desv_Est |
CV |
Asimetria |
Curtosis |
| Arcilla (%) |
0 |
94.71 |
14.21 |
5.37 |
18.39 |
129.46 |
1.55 |
4.89 |
| Autor: Grupo 3 |
OUTLIERS
# OUTLIERS
outliers <- boxplot.stats(arcilla)$out
num_outliers <- length(outliers)
min_out <- ifelse(num_outliers > 0, round(min(outliers),2), NA)
max_out <- ifelse(num_outliers > 0, round(max(outliers),2), NA)
TablaOutliers <- data.frame(
Cantidad_Outliers = num_outliers,
Minimo = min_out,
Maximo = max_out
)
TablaOutliers
## Cantidad_Outliers Minimo Maximo
## 1 1275 55.43 94.71
#Tabla Mejorada
TablaOutliers %>%
gt() %>%
tab_header(
title = md("**Tabla Nº3**"),
subtitle = md("Valores atípicos de la variable Arcilla (%)")
) %>%
tab_source_note(
source_note = md("Autor: Grupo 3")
)
| Tabla Nº3 |
| Valores atípicos de la variable Arcilla (%) |
| Cantidad_Outliers |
Minimo |
Maximo |
| 1275 |
55.43 |
94.71 |
| Autor: Grupo 3 |
CONCLUSIÓN
La variable Arcilla (%) presenta valores que fluctúan entre 0 y 94.71
%, con valores entorno a 5.37 %, y una desviación estándar de 18.39 %,
lo que indica un conjunto altamente heterogéneo. La acumulación de datos
se concentra de manera marcada en los valores bajos, lo cual también se
evidencia por la asimetría positiva (1.55) que indica una distribución
sesgada hacia la derecha. Con la existencia de valores atípicos en los
rangos superiores de la distribución. Por lo anterior, el comportamiento
es medianamente beneficioso, ya que la mayoría de los sedimentos
presentan bajos contenidos de arcilla, mientras que solo algunos
registros alcanzan concentraciones elevadas.