# Cargar datos
datos<- read.csv("~/UNI/estadistica/2026/dataset_geologico_limpio_80.csv")
cat(" Dimensiones:", nrow(datos), "observaciones:", ncol(datos), "variables\n\n")
## Dimensiones: 27784 observaciones: 58 variables
# Extraer variable
longitud_raw<- datos$LONGITUDE
cat("Primeros valores de LONGITUDE:\n")
## Primeros valores de LONGITUDE:
head(longitud_raw)
## [1] -69.28333 -68.91667 -66.98333 -67.95000 -67.98333 -69.61667
longitud_raw <- as.numeric(longitud_raw)
longitud<- na.omit(longitud_raw)
summary(longitud)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## -170.52 -75.54 -70.97 -72.77 -70.17 123.56
n <- length(longitud)
cat("Número de observaciones válidas (n):", n, "\n\n")
## Número de observaciones válidas (n): 27784
# 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
Agrupación por la regla de Sturges
# Numero de datos
n <- length(longitud)
# Parámetros de Sturges
minimo<- min(longitud)
maximo<- max(longitud)
R <- maximo - minimo
k <- floor(1 + 3.3 * log10(n))
A <- R / k
cat("PARÁMETROS:\n")
## PARÁMETROS:
cat(" Rango (R) :", round(R, 4), "grados\n")
## Rango (R) : 294.0768 grados
cat(" Número intervalos (k):", k, "\n")
## Número intervalos (k): 15
cat(" Amplitud clase (A) :", round(A, 4), "grados\n\n")
## Amplitud clase (A) : 19.6051 grados
# Límites de clase
li <- seq(from = min(longitud), to = max(longitud) - A, by = A)
ls <- seq(from = min(longitud) + A, to = max(longitud), by = A)
MC <- round((li + ls) / 2,2)
# Frecuencias absolutas agrupadas
n_i <- numeric(length (li))
for (i in 1:length (li)) {
n_i[i] <- sum(longitud >= li[i] & longitud < ls[i])
}
n_i[length(li)] <- sum(longitud >= li[length(li)] & longitud<= maximo)
# Frecuencias relativas y acumuladas
h_i <- (n_i / sum(n_i)) * 100
Ni_asc <- cumsum(n_i)
Hi_asc <- round(cumsum(h_i),2)
Ni_desc <- rev(cumsum(rev(n_i)))
Hi_desc <- round(rev(cumsum(rev(h_i))),2)
# Crear tabla agrupada
TablaFrecuenciasAgrupada <- round(data.frame(
li, ls,MC,n_i,h_i,Ni_asc,Hi_asc,Ni_desc,Hi_desc
),2)
TablaFrecuenciasAgrupada[nrow(TablaFrecuenciasAgrupada) + 1, ] <-
c(NA, NA, "TOTAL", sum(n_i), round(sum(h_i), 2), NA, NA, NA, NA)
TablaFrecuenciasAgrupada
## li ls MC n_i h_i Ni_asc Hi_asc Ni_desc Hi_desc
## 1 -170.52 -150.91 -160.72 118 0.42 118 0.42 27784 100
## 2 -150.91 -131.31 -141.11 265 0.95 383 1.38 27666 99.58
## 3 -131.31 -111.7 -121.51 714 2.57 1097 3.95 27401 98.62
## 4 -111.7 -92.1 -101.9 357 1.28 1454 5.23 26687 96.05
## 5 -92.1 -72.49 -82.3 9969 35.88 11423 41.11 26330 94.77
## 6 -72.49 -52.89 -62.69 15803 56.88 27226 97.99 16361 58.89
## 7 -52.89 -33.28 -43.09 0 0 27226 97.99 558 2.01
## 8 -33.28 -13.68 -23.48 0 0 27226 97.99 558 2.01
## 9 -13.68 5.93 -3.88 166 0.6 27392 98.59 558 2.01
## 10 5.93 25.53 15.73 19 0.07 27411 98.66 392 1.41
## 11 25.53 45.14 35.33 0 0 27411 98.66 373 1.34
## 12 45.14 64.74 54.94 0 0 27411 98.66 373 1.34
## 13 64.74 84.35 74.54 15 0.05 27426 98.71 373 1.34
## 14 84.35 103.95 94.15 5 0.02 27431 98.73 358 1.29
## 15 103.95 123.56 113.75 353 1.27 27784 100 353 1.27
## 16 <NA> <NA> TOTAL 27784 100 <NA> <NA> <NA> <NA>
# Mostrar tabla con formato mejorada
Tabla_GT <- TablaFrecuenciasAgrupada %>%
gt() %>%
tab_header(
title = md("**Tabla N.º 1**"),
subtitle = md("**Tabla de distribución de frecuencias de la variable LONGITUDE
Accidentes, Lesiones y Enfermedades en Operaciones Mineras**")
) %>%
tab_source_note(
source_note = md("**Autor: Grupo**")
) %>%
cols_label(
li = "Límite Inferior",
ls = "Límite Superior",
MC = "Marca de Clase",
n_i = "ni",
h_i = "hi (%)",
Ni_asc = "Ni Asc",
Hi_asc = "Hi Asc (%)",
Ni_desc = "Ni Desc",
Hi_desc = "Hi Desc (%)"
) %>%
fmt_number(
columns = c(li, ls, MC),
decimals = 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 = MC == "TOTAL"
)
)
Tabla_GT
| Tabla N.º 1 | ||||||||
| Tabla de distribución de frecuencias de la variable LONGITUDE Accidentes, Lesiones y Enfermedades en Operaciones Mineras |
||||||||
| Límite Inferior | Límite Superior | Marca de Clase | ni | hi (%) | Ni Asc | Hi Asc (%) | Ni Desc | Hi Desc (%) |
|---|---|---|---|---|---|---|---|---|
| -170.52 | -150.91 | -160.72 | 118 | 0.42 | 118 | 0.42 | 27784 | 100 |
| -150.91 | -131.31 | -141.11 | 265 | 0.95 | 383 | 1.38 | 27666 | 99.58 |
| -131.31 | -111.7 | -121.51 | 714 | 2.57 | 1097 | 3.95 | 27401 | 98.62 |
| -111.7 | -92.1 | -101.9 | 357 | 1.28 | 1454 | 5.23 | 26687 | 96.05 |
| -92.1 | -72.49 | -82.3 | 9969 | 35.88 | 11423 | 41.11 | 26330 | 94.77 |
| -72.49 | -52.89 | -62.69 | 15803 | 56.88 | 27226 | 97.99 | 16361 | 58.89 |
| -52.89 | -33.28 | -43.09 | 0 | 0 | 27226 | 97.99 | 558 | 2.01 |
| -33.28 | -13.68 | -23.48 | 0 | 0 | 27226 | 97.99 | 558 | 2.01 |
| -13.68 | 5.93 | -3.88 | 166 | 0.6 | 27392 | 98.59 | 558 | 2.01 |
| 5.93 | 25.53 | 15.73 | 19 | 0.07 | 27411 | 98.66 | 392 | 1.41 |
| 25.53 | 45.14 | 35.33 | 0 | 0 | 27411 | 98.66 | 373 | 1.34 |
| 45.14 | 64.74 | 54.94 | 0 | 0 | 27411 | 98.66 | 373 | 1.34 |
| 64.74 | 84.35 | 74.54 | 15 | 0.05 | 27426 | 98.71 | 373 | 1.34 |
| 84.35 | 103.95 | 94.15 | 5 | 0.02 | 27431 | 98.73 | 358 | 1.29 |
| 103.95 | 123.56 | 113.75 | 353 | 1.27 | 27784 | 100 | 353 | 1.27 |
| NA | NA | TOTAL | 27784 | 100 | NA | NA | NA | NA |
| Autor: Grupo | ||||||||
## HISTOGRAMA LOCAL - FRECUENCIAS ABSOLUTAS
hist(longitud,
main = "Grafica 1:Distribucion de Cantidad de la longitud de Depòsitos Marinos",
xlab = "longitud (grados)",
ylab = "Cantidad (ni)",
col = "lightcoral",
border = "white",
las = 1,
breaks = k,
ylim = c(0, max(n_i) * 1.8))
# HISTOGRAMA GLOBAL - FRECUENCIAS ABSOLUTAS
hist(longitud,
main = "Grafica 2:Distribucion de Cantidad de la longitud de Depòsitos Marinos",
xlab = "longitud (grados)",
ylab = "Cantidad (ni)",
col = "steelblue",
border = "white",
las = 1,
breaks = k,
ylim = c(0, max(n_i) * 1.8))
# HISTOGRAMA LOCAL - FRECUENCIAS RELATIVAS
barplot(h_i,
main="Grafica 3:Distribucion de Porcentaje de la longitud de Depòsitos Marinos",
xlab="longitud",
ylab="Porcentaje (%)",
col="mediumpurple",
border="white",
names.arg=round(MC,1),
las=2,
cex.names=0.7,
space=0,
ylim=c(0,max(h_i)*1.1))
abline(h=0,lwd=1)
# HISTOGRAMA GLOBAL - FRECUENCIAS RELATIVAS
barplot(h_i,
main = "Grafica 4:Distribucion de Porcentaje de la longitud de Depòsitos Marinos",
xlab = "longitud",
ylab = "Porcentaje (%)",
col = "darkorange",
border = "white",
names.arg = round(MC, 1),
las = 2,
cex.names = 0.7,
space = 0,
ylim = c(0, max(h_i) * 1.1))
abline(h=0,lwd=1)
# OJIVAS - FRECUENCIAS ABSOLUTAS
plot(MC, Ni_asc,
type = "b",
main = "Grafica 5: Ojivas Combinadas de Cantidad acumulada de
la longitud de Depòsitos Marinos",
xlab = "longitud (grados)",
ylab = "Cantidad Acumulada (NI)",
col = "blue",
lwd = 2,pch = 16,cex = 1.2,las = 1,
ylim = c(0, n))
lines(MC, Ni_desc,
type = "b",col = "red",
lwd = 2,pch = 16,cex = 1.2)
legend("right",
legend = c("Ascendente", "Descendente"),
col = c("blue", "red"),lty = 1,
lwd = 2,pch = 16,bty = "n")
grid(col = "gray", lty = "dotted")
# OJIVAS - FRECUENCIAS RELATIVAS
plot(MC, Hi_asc,
type = "b",
main = "Grafica 6: Ojivas Combinadas de Cantidad acumulada
de la longitud de Depòsitos Marinos",
xlab = "longitud (grados)",
ylab = "Cantidad Acumulada (HI)",
col = "blue",
lwd = 2,pch = 16,cex = 1.2,las = 1,ylim = c(0, 100))
lines(MC, Hi_desc,
type = "b",col = "red",
lwd = 2,pch = 16,cex = 1.2)
legend("right",
legend = c("Ascendente (%)", "Descendente (%)"),
col = c("blue", "red"),lty = 1,
lwd = 2, pch = 16, bty = "n")
grid(col = "gray", lty = "dotted")
# DIAGRAMA DE CAJA
media <- mean(longitud)
boxplot(longitud,
horizontal = TRUE,
main = "Grafica 7: Distribucion de cantidad de la longitud en Depòsitos Marinos",
xlab = "longitud (grados)",
col = "lightgreen",
border = "darkgreen",
outcol = "red",
outpch = 16,
las = 1)
points(media, 1, pch = 23, bg = "blue", cex = 1.5)
# Cálculo de indicadores
minimo <- min(longitud)
maximo <- max(longitud)
rango <- maximo - minimo
media <- mean(longitud)
mediana <- median(longitud)
moda <- as.numeric(names(sort(table(longitud), decreasing = TRUE)[1]))
varianza <- var(longitud)
desviacion_estandar <- sd(longitud)
rango <- range(longitud)
coeficiente_variacion <- (desviacion_estandar / media) * 100
asimetria <- skewness(longitud)
curtosis <- kurtosis(longitud)
TablaIndicadores <- data.frame(
Variable = "longitud (%)",
Minimo = round(minimo,2),
Maximo = round(maximo,2),
Media = round(media,2),
Mediana = round(mediana,2),
Desv_Est = round(desviacion_estandar,2),
CV = coeficiente_variacion,
Asimetria = asimetria,
Curtosis = curtosis
)
TablaIndicadores
## Variable Minimo Maximo Media Mediana Desv_Est CV Asimetria
## 1 longitud (%) -170.52 123.56 -72.77 -70.97 25.4 -34.90761 4.416136
## Curtosis
## 1 36.10975
# Tabla Mejorada
TablaIndicadores %>%
gt() %>%
tab_header(
title = md("**Tabla Nº2**"),
subtitle = md("Indicadores estadísticos de la variable longitud (%)")
) %>%
tab_source_note(
source_note = md("Autor: Grupo 3")
)
| Tabla Nº2 | ||||||||
| Indicadores estadísticos de la variable longitud (%) | ||||||||
| Variable | Minimo | Maximo | Media | Mediana | Desv_Est | CV | Asimetria | Curtosis |
|---|---|---|---|---|---|---|---|---|
| longitud (%) | -170.52 | 123.56 | -72.77 | -70.97 | 25.4 | -34.90761 | 4.416136 | 36.10975 |
| Autor: Grupo 3 | ||||||||
# Cuartiles
Q1 <- quantile(longitud, 0.25)
Q3 <- quantile(longitud, 0.75)
IQR_val <- IQR(longitud)
# Límites
limite_inferior <- Q1 - 1.5 * IQR_val
limite_superior <- Q3 + 1.5 * IQR_val
#Outliers
outliers <- longitud[longitud < limite_inferior | longitud > limite_superior]
num_outliers <- length(outliers)
porcentaje_outliers <- round((num_outliers / n) * 100, 2)
TablaOutliers <- data.frame(
num_outliers =num_outliers,
porc_outliers = porcentaje_outliers,
minimo = limite_inferior,
máximo = limite_superior
)
TablaOutliers
## num_outliers porc_outliers minimo máximo
## 25% 5027 18.09 -83.59956 -62.10694
#Tabla Mejorada
TablaOutliers %>%
gt() %>%
tab_header(
title = md("**Tabla Nº3**"),
subtitle = md("Valores atípicos de la variable longitud (%)")
) %>%
tab_source_note(
source_note = md("Autor: Grupo 3")
)
| Tabla Nº3 | |||
| Valores atípicos de la variable longitud (%) | |||
| num_outliers | porc_outliers | minimo | máximo |
|---|---|---|---|
| 5027 | 18.09 | -83.59956 | -62.10694 |
| Autor: Grupo 3 | |||
La Variable LONGITUDE fluctua entre [-170.52:123.55] y sus valores giran en torno a la mediana de -70.97, con una desviacion estandar de 25.40,mostrando un comportamiento heterogéneo, ligeramente uerte en la parte baja con la existencia de 5027 valores atipicos que empiezan desde -89.85
Por todo lo anterior, el comportamiento de la variable no es completamente favorable, ya que aunque los datos corresponden a coordenadas geográficas válidas dentro del contexto de depósitos de sedimentos marinos, la alta asimetría, la curtosis elevada (36.11) y la cantidad considerable de valores atípicos indican que la distribución no es uniforme y presenta concentraciones fuertes en determinados intervalos longitudinales. Esto puede deberse a que los sedimentos marinos analizados provienen de zonas específicas de acumulación sedimentaria o regiones oceánicas particulares, lo que genera una distribución espacial irregular en los registros del dataset.