CARGA DE DATOS
setwd("~/UNI/ESTADISTICA")
datos <- read.csv("Depositos_Sulfuro.csv", header = TRUE, sep = ";", dec = ".")
# Extraer y dejar solo datos válidos
disc <- as.numeric(datos$discdate)
disc <- na.omit(disc)
CARGA DE LIBRERIAS
#Carga de librerias
library(gt)
library(dplyr)
library(knitr)
library(e1071)
TABLA DE DISTRIBUCION DE FRECUENCIA
Debido a que existen numerosos registros del año de descubrimiento, se decidió agruparlos en intervalos, convirtiendo la variable en continua.
#Agrupar la variable en intervalos
clasificacion <- character(length(disc))
for(i in seq_along(disc)){
if(disc[i] >= -300 & disc[i] < 200){
clasificacion[i] <- "[-300 , 200)"
} else if(disc[i] >= 200 & disc[i] < 700){
clasificacion[i] <- "[200 , 700)"
} else if(disc[i] >= 700 & disc[i] < 1200){
clasificacion[i] <- "[700 , 1200)"
} else if(disc[i] >= 1200 & disc[i] < 1700){
clasificacion[i] <- "[1200 , 1700)"
} else if(disc[i] >= 1700 & disc[i] < 2200){
clasificacion[i] <- "[1700 , 2200)"
} else {
clasificacion[i] <- NA # fuera de rango
}
}
# Quitar posibles NA de la clasificación
clasificacion <- na.omit(clasificacion)
# 3) Fijar el orden CORRECTO de los intervalos
orden <- c("[-300 , 200)",
"[200 , 700)",
"[700 , 1200)",
"[1200 , 1700)",
"[1700 , 2200)")
clasificacion <- factor(clasificacion, levels = orden)
# 4) Frecuencias simples
ni <- table(clasificacion)
total <- sum(ni)
hi <- as.numeric(ni) / total * 100
# 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 = round(hi, 3),
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)
Fila total de las sumas de ni y hi
# Crear fila total
fila_total <- data.frame(
Intervalo = "TOTAL",
ni = suma_ni,
hi = suma_hi,
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 [-300 , 200) 5 0.625 5 0.625 800 100
## 2 [200 , 700) 14 1.750 19 2.375 795 99.375
## 3 [700 , 1200) 3 0.375 22 2.75 781 97.625
## 4 [1200 , 1700) 17 2.125 39 4.875 778 97.25
## 5 [1700 , 2200) 761 95.125 800 100 761 95.125
## 6 TOTAL 800 100.000 - - - -
TABLA DE DISTRIBUCIÓN DE FRECUENCIA POR STURGES FINAL
# TABLA GT
TablaDisc <- tabla_final %>%
gt() %>%
tab_header(
title = md("*Tabla Nº. 1*"),
subtitle = md("**Tabla de distribución de frecuencias simples y acumuladas
de los años de descubrimiento de los depósitos masivos de sulfuros volcánicos**")
) %>%
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"
) %>%
tab_style(
style = cell_text(weight = "bold"),
locations = cells_body(
rows = Intervalo == "TOTAL" # Se resalta TOTAL
)
)
TablaDisc
| Tabla Nº. 1 | ||||||
| Tabla de distribución de frecuencias simples y acumuladas de los años de descubrimiento de los depósitos masivos de sulfuros volcánicos |
||||||
| Intervalo | ni | hi | Ni_Asc | Hi_Asc | Ni_Desc | Hi_Desc |
|---|---|---|---|---|---|---|
| [-300 , 200) | 5 | 0.625 | 5 | 0.625 | 800 | 100 |
| [200 , 700) | 14 | 1.750 | 19 | 2.375 | 795 | 99.375 |
| [700 , 1200) | 3 | 0.375 | 22 | 2.75 | 781 | 97.625 |
| [1200 , 1700) | 17 | 2.125 | 39 | 4.875 | 778 | 97.25 |
| [1700 , 2200) | 761 | 95.125 | 800 | 100 | 761 | 95.125 |
| TOTAL | 800 | 100.000 | - | - | - | - |
| Autor: Grupo 2 | ||||||
Histograma de frecuencia absoluta local
hist(disc, main="Grafica Nº1: Distrribucion de frecuencia del año de descubrimiento
de los depositos masivos de sulfuros volcanicos (Local)",
col="gray",
ylab="Cantidad",
xlab = "Año de descubrimiento",
cex.names = 0.6)
Histograma de frecuencia absoluta global
hist(disc, main="Grafica Nº2: Distribucion de frecuencia del año de descubrimiento
de los depositos masivos de sulfuros volcanicos (Global)",
col="gray",
xlab="Año de descubrimiento",
ylab="Cantidad",
cex.names = 0.6,
ylim=c(0,800))
Histograma de frecuencia relativa local
hi_plot <- tabla_final$hi[tabla_final$Intervalo != "TOTAL"]
intervalos_plot <- tabla_final$Intervalo[tabla_final$Intervalo != "TOTAL"]
barplot(hi_plot,
space = 0,
main = "Grafica Nº3: Distribucion de frecuencia relativa del año de
descubrimiento de los depósitos masivos de sulfuros volcánicos (local)",
col="gray",
las=2,
xlab="Año de descubrimiento",
ylab="Porcentaje",
names.arg = intervalos_plot,
cex.names = 0.6)
Histograma de frecuencia relativa global
# Filtrar los datos SIN la fila TOTAL
hi_plot <- tabla_final$hi[tabla_final$Intervalo != "TOTAL"]
intervalos_plot <- tabla_final$Intervalo[tabla_final$Intervalo != "TOTAL"]
barplot(hi_plot,
space = 0,
main="Grafica Nº4: Distribucion de frecuencia relativa del año de
descubrimiento de los depósitos masivos de sulfuros volcánicos (Global)",
col = "gray",
las = 2,
xlab = "Año de descubrimiento",
ylab = "Porcentaje",
names.arg = intervalos_plot,
ylim = c(0,100),
cex.names = 0.6)
Ojivas combinadas Ni
#OJIVAS COMBINADAS NI
# Filtrar sin TOTAL
intervalos <- tabla_final$Intervalo[tabla_final$Intervalo!="TOTAL"]
Ni_asc <- tabla_final$Ni_Asc[tabla_final$Intervalo!="TOTAL"]
Ni_desc <- tabla_final$Ni_Desc[tabla_final$Intervalo!="TOTAL"]
plot(x = 1:length(intervalos),
y = Ni_asc,
type = "o",
col = "blue",
main = "Grafica Nº5: Ojiva combinada de años de descubrimiento de los
depositos masivos de sulfuros volcanicos (Ni)",
xlab = "Año de descubrimiento",
ylab = "Frecuencia",
xaxt="n"
)
axis(side = 1,
at = 1:length(intervalos),
labels = intervalos,
las = 2,
cex.axis = 0.6)
lines(x = 1:length(intervalos),
y = Ni_desc,
col = "red",
type = "o")
Ojivas combinadas Hi
# Filtrar sin TOTAL
Hi_desc <- tabla_final$Hi_Desc[tabla_final$Intervalo!="TOTAL"]
Hi_asc <- tabla_final$Hi_Asc [tabla_final$Intervalo!="TOTAL"]
intervalos <- tabla_final$Intervalo[tabla_final$Intervalo!="TOTAL"]
# CONVERTIR A NUMÉRICOS
Hi_desc <- as.numeric(Hi_desc)
Hi_asc <- as.numeric(Hi_asc)
########### PLOT ###########
plot(x = 1:length(intervalos),
y = Hi_desc,
type = "p",
col = "black",
xlab = "Año de descubrimiento",
ylab = "Porcentaje ",
main = "Grafica Nº6: Ojiva combinada de años de descubrimiento de los
depositos masivos de sulfuros volcanicos (Hi)",
xaxt = "n",
ylim = c(min(c(Hi_desc,Hi_asc))-1, max(c(Hi_desc,Hi_asc))+1)
)
axis(side = 1,
at = 1:length(intervalos),
labels = intervalos,
las = 2,
cex.axis = 0.6)
lines(x = 1:length(intervalos),
y = Hi_desc,
col = "black")
points(x = 1:length(intervalos),
y = Hi_asc,
col = "blue",
pch = 19)
lines(x = 1:length(intervalos),
y = Hi_asc,
col = "blue")
DIAGRAMA DE CAJA
boxplot(disc,
horizontal = TRUE,
col = "blue",
main = "Gráfica Nº7: Distribución de frecuencia del año de descubrimiento
de depósitos masivos de sulfuros volcánicos",
xlab = "Año de descubrimiento")
Ver los cuartiles
summary(disc)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## -3000 1896 1947 1785 1965 2004
Indicadores Estadisticos
POSICION
#MEDIA ARITMETICA
x<-mean(disc)
x
## [1] 1785.355
#MEDIANA ARITMETICA
ri<-min(disc)
rs<-max(disc)
Me<-median(disc)
Me
## [1] 1947
DISPERSION
#DESVIACIÓN ESTÁNDAR
sd<-sd(disc)
sd
## [1] 639.8237
#COEFICIENTE DE VARIACIÓN
CV <- ((sd / x) * 100)
CV
## [1] 35.83734
FORMA
#COEFICIENTE DE ASIMETRÍA
As<-skewness(disc)
As
## [1] -4.949028
#COEFICIENTE DE CURTOSIS
K<-kurtosis(disc)
K
## [1] 26.18935
TABLA DE INDICADORES ESTADISTICOS
Variable<-c("Año de descubrimiento")
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 año de descubrimiento de los depositos masivos de sulfuros volcanicos")
| Variable | minimo | máximo | x | Me | sd | Cv (%) | As | K |
|---|---|---|---|---|---|---|---|---|
| Año de descubrimiento | -3000 | 2004 | 1785.35 | 1947 | 639.82 | 35.84 | -4.95 | 26.19 |
TABLA DE OUTLIERS
outliers<-boxplot.stats(disc)$out
# Contar los valores atípicos
num_outliers <- length(outliers)
num_outliers
## [1] 87
minoutliers<-min(outliers)
minoutliers
## [1] -3000
maxoutliers<-max(outliers)
maxoutliers
## [1] 1793
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 año de descubrimiento de los depositos masivos de sulfuros
volcanicos).")
| Outliers | Mínimo | Máximo |
|---|---|---|
| 87 | -3000 | 1793 |
CONCLUSÍON
La variable año de descubrimiento presenta valores que fluctúan entre –3000 y 2004, con valores concentrados en torno a 1947, y una desviación estándar de 639.82, lo que evidencia que se trata de un conjunto altamente heterogéneo, influenciado por la presencia de valores atípicos muy antiguos. Dichos outliers se ubican principalmente en la parte izquierda de la distribución, correspondientes a registros históricos extremos. La acumulación de valores se concentra de manera marcada en la parte alta de la variable, lo que indica que la mayoría de los descubrimientos se realizó en épocas recientes. Por todo lo anterior, el comportamiento de la variable se considera medianamente beneficioso, ya que la concentración de descubrimientos en periodos modernos permite contar con información más confiable y mejor documentada, a pesar de la presencia de registros históricos aislados.