CARGA DE DATOS
# Ruta completa al archivo
datos <- read.csv("C:/Users/Grace/Downloads/Sedimentos Marinos (1).csv",
header = TRUE,
sep = ";",
dec = ".")
# Limpiamos la Variable
arcilla_raw <- as.numeric(gsub("[^0-9.-]", "", datos$CLAY_PCT))
arcilla <- arcilla_raw[arcilla_raw >= 0] # Asumimos que los porcentajes de arcilla son no negativos
arcilla <- na.omit(arcilla)
# Calculamos el número de datos
n <- length(arcilla)
Librerias
**CARGA DE LIBRERÍAS**
library(gt)
library(dplyr)
library(knitr)
library(kableExtra)
library(moments)
**TABLA DE DISTRIBUCIÓN DE FRECUENCIA POR STURGES**
# Número de clases con Sturges
k <- floor(1 + 3.3 * log10(n))
# Min, Max
minimo <- min(arcilla)
maximo <- max(arcilla)
# 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)) {
if (i == length(Li)) {
ni[i] <- sum(arcilla >= Li[i])
} else {
ni[i] <- sum(arcilla >= Li[i] & arcilla < Ls[i])
}
}
# Frecuencia Relativa (hi)
hi <- round((ni / sum(ni)) * 100, 3)
# Frecuencias Acumuladas
Niasc <- cumsum(ni)
Nidsc <- rev(cumsum(rev(ni)))
Hiasc <- round(cumsum(hi), 2)
Hidsc <- round(rev(cumsum(rev(hi))), 2)
# TABLA FINAL
TDFarcilla <- data.frame(
Li, Ls, MC, ni, hi, Niasc, Nidsc, Hiasc, Hidsc
)
TDFarcilla
## Li Ls MC ni hi Niasc Nidsc Hiasc Hidsc
## 1 0.00 6.76 3.38 7671 57.681 7671 13299 57.68 100.00
## 2 6.76 13.53 10.14 1387 10.429 9058 5628 68.11 42.32
## 3 13.53 20.29 16.91 969 7.286 10027 4241 75.40 31.89
## 4 20.29 27.06 23.67 769 5.782 10796 3272 81.18 24.60
## 5 27.06 33.82 30.44 722 5.429 11518 2503 86.61 18.82
## 6 33.82 40.59 37.20 674 5.068 12192 1781 91.67 13.39
## 7 40.59 47.35 43.97 353 2.654 12545 1107 94.33 8.32
## 8 47.35 54.12 50.74 195 1.466 12740 754 95.80 5.67
## 9 54.12 60.88 57.50 135 1.015 12875 559 96.81 4.20
## 10 60.88 67.65 64.26 133 1.000 13008 424 97.81 3.19
## 11 67.65 74.41 71.03 132 0.993 13140 291 98.80 2.19
## 12 74.41 81.18 77.80 102 0.767 13242 159 99.57 1.20
## 13 81.18 87.94 84.56 46 0.346 13288 57 99.92 0.43
## 14 87.94 94.71 91.32 11 0.083 13299 11 100.00 0.08
Tabla_gt
**TABLA DE DISTRIBUCIÓN DE LONGITUD POR STURGES FINAL**
# Fila total
fila_total <- data.frame(
Li = "TOTAL",
Ls = "",
MC = "",
ni = sum(TDFarcilla$ni),
hi = round(sum(TDFarcilla$hi), 2),
Niasc = "",
Nidsc = "",
Hiasc = "",
Hidsc = ""
)
TDFarcilla_p <- rbind(TDFarcilla, fila_total)
tabla_arcilla_p <- TDFarcilla_p %>%
gt() %>%
tab_header(
title = md("*Tabla Nº:1*"),
subtitle = md("Tabla de distribución de la arcilla de los sedimentos marinos")
) %>%
tab_source_note(
source_note = md("Autor: Grupo 3")
) %>%
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_arcilla_p
| Tabla Nº:1 | ||||||||
| Tabla de distribución de la arcilla de los sedimentos marinos | ||||||||
| Li | Ls | MC | ni | hi | Niasc | Nidsc | Hiasc | Hidsc |
|---|---|---|---|---|---|---|---|---|
| 0 | 6.76 | 3.38 | 7671 | 57.681 | 7671 | 13299 | 57.68 | 100 |
| 6.76 | 13.53 | 10.14 | 1387 | 10.429 | 9058 | 5628 | 68.11 | 42.32 |
| 13.53 | 20.29 | 16.91 | 969 | 7.286 | 10027 | 4241 | 75.4 | 31.89 |
| 20.29 | 27.06 | 23.67 | 769 | 5.782 | 10796 | 3272 | 81.18 | 24.6 |
| 27.06 | 33.82 | 30.44 | 722 | 5.429 | 11518 | 2503 | 86.61 | 18.82 |
| 33.82 | 40.59 | 37.2 | 674 | 5.068 | 12192 | 1781 | 91.67 | 13.39 |
| 40.59 | 47.35 | 43.97 | 353 | 2.654 | 12545 | 1107 | 94.33 | 8.32 |
| 47.35 | 54.12 | 50.74 | 195 | 1.466 | 12740 | 754 | 95.8 | 5.67 |
| 54.12 | 60.88 | 57.5 | 135 | 1.015 | 12875 | 559 | 96.81 | 4.2 |
| 60.88 | 67.65 | 64.26 | 133 | 1.000 | 13008 | 424 | 97.81 | 3.19 |
| 67.65 | 74.41 | 71.03 | 132 | 0.993 | 13140 | 291 | 98.8 | 2.19 |
| 74.41 | 81.18 | 77.8 | 102 | 0.767 | 13242 | 159 | 99.57 | 1.2 |
| 81.18 | 87.94 | 84.56 | 46 | 0.346 | 13288 | 57 | 99.92 | 0.43 |
| 87.94 | 94.71 | 91.32 | 11 | 0.083 | 13299 | 11 | 100 | 0.08 |
| TOTAL | 13299 | 100.000 | ||||||
| Autor: Grupo 3 | ||||||||
Colores
**Colores de las barras**
colores <- gray.colors(length(ni), start = 0.3, end = 0.9)
**Histograma de cantidad Local**
hist(
arcilla,
main = "Gráfica Nº2: Distribución de la arcilla de los sedimentos marinos",
xlab = "Arcilla (%)",
ylab = "Cantidad",
col = colores
)
**Histograma de cantidad global**
hist(
arcilla,
main = "Gráfica Nº3: Distribución de la arcilla de los sedimentos marinos",
xlab = "Arcilla (%)",
ylab = "Cantidad",
col = colores,
ylim = c(0, max(ni) + 50)
)
**Histograma de cantidad en porcentaje**
barplot(
hi,
names.arg = MC,
col = colores,
ylim = c(0, max(hi) + 5),
space = 0,
cex.names = 0.8,
ylab = "Porcentaje (%)",
xlab = "Arcilla (%)",
main = "Gráfica Nº4: Distribución de porcentaje de la arcilla de los sedimentos marinos",
las = 2
)
**Histograma de cantidad en porcentaje global**
barplot(
hi,
names.arg = MC,
col = colores,
ylim = c(0, 100),
cex.names = 0.8,
space = 0,
ylab = "Porcentaje (%)",
xlab = "Arcilla (%)",
main = "Gráfica Nº5: Distribución de porcentaje de la arcilla de los sedimentos marinos",
las = 2
)
**DIAGRAMA DE CAJA**
boxplot(
arcilla,
horizontal = TRUE,
main = "Gráfica Nº6: Distribución de la arcilla de los sedimentos marinos",
xlab = "Arcilla (%)",
col = "lightblue"
)
**Ojivas combinadas Ni**
lim_sup <- Ls
plot(lim_sup, Nidsc, type="o",
main="Gráfica Nº7: Ojiva combinada de la 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)
**Ojivas combinadas Hi**
plot(lim_sup, Hidsc, type="o",
main="Gráfica Nº8: Ojiva combinada de la arcilla (Hi)",
ylab="Porcentaje Acumulado (%)", col="blue", xlab="Arcilla (%)")
lines(Li, Hiasc, col="red", type="o")
legend("bottomright", legend = c("Descendente", "Ascendente"), col = c("blue", "red"), lty = 1, pch = 1)
**Indicadores Estadísticos**
summary(arcilla)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.00 0.43 3.96 12.77 19.82 94.71
# POSICIÓN
x <- mean(arcilla)
Me <- median(arcilla)
# DISPERSIÓN
sd_val <- sd(arcilla)
CV <- round((sd_val / abs(x)) * 100, 2)
# FORMA
As <- skewness(arcilla)
K <- kurtosis(arcilla)
# TABLA DE INDICADORES ESTADÍSTICOS
Variable <- c("Arcilla (%)")
TablaIndicadores <- data.frame(Variable, round(minimo,2), round(maximo,2), round(x,2), round(Me,2), round(sd_val,2), CV, round(As,2), round(K,2))
colnames(TablaIndicadores) <- c("Variable","Mínimo","Máximo","Media","Mediana","Desv. Est.","CV (%)","Asimetría","Curtosis")
kable(TablaIndicadores, format = "markdown", caption = "Tabla N°3: Indicadores estadísticos de la variable arcilla en sedimentos marinos")
| Variable | Mínimo | Máximo | Media | Mediana | Desv. Est. | CV (%) | Asimetría | Curtosis |
|---|---|---|---|---|---|---|---|---|
| Arcilla (%) | 0 | 94.71 | 12.77 | 3.96 | 17.7 | 138.55 | 1.77 | 5.86 |
Outliers
**TABLA DE OUTLIERS**
outliers <- boxplot.stats(arcilla)$out
num_outliers <- length(outliers)
min_outlier <- if(num_outliers > 0) min(outliers) else NA
max_outlier <- if(num_outliers > 0) max(outliers) else NA
TablaOutliers <- data.frame(num_outliers, round(min_outlier,2), round(max_outlier,2))
colnames(TablaOutliers) <- c("Cantidad de outliers","Mínimo","Máximo")
kable(TablaOutliers, format = "markdown", caption = "Tabla N°4: Outliers de la variable arcilla en sedimentos marinos")
| Cantidad de outliers | Mínimo | Máximo |
|---|---|---|
| 687 | 48.92 | 94.71 |