En el presente documento se desarrolla un análisis estadístico descriptivo de la variable cuantitativa continua Altura de la Pluma, expresada en kilómetros, la cual representa la altura máxima alcanzada por la columna eruptiva durante una erupción volcánica. El análisis comprende la preparación de los datos, la elaboración de tablas de frecuencias, la construcción de representaciones gráficas y el cálculo de medidas descriptivas adecuadas para variables continuas, con el fin de interpretar las principales características de la distribución de la altura de la pluma en las erupciones volcánicas.
## [1] 714
## [1] 10
Creamos a criterio 6 intervalos debido a la existencia de intervalos sin observaciones ademas para una mejor comprensión y visualización de los registros.
#Frecuencia Absoluta ni
ni <- numeric(length(Li))
for(i in 1:length(Li)){
if(i < length(Li)){
ni[i] <- sum(altura_pluma >= Li[i] & altura_pluma < Ls[i])
} else {
ni[i] <- sum(altura_pluma >= Li[i] & altura_pluma <= Ls[i])
}
}
#Frecuencia relativa hi
hi <- (ni/n)*100
#Frecuencias Acumuladas Ascendentes
Ni_asc <- cumsum(ni)
Ni_dsc <- rev(cumsum(rev(ni)))
#Frecuencias Acumuladas Descendentes
Hi_asc <- cumsum(hi)
Hi_dsc <- rev(cumsum(rev(hi)))
#dataframe
TDF <- data.frame(
Intervalo = Intervalo,
MC = MC,
ni = ni,
Ni_asc = Ni_asc,
Ni_dsc = Ni_dsc,
hi = round(hi, 2),
Hi_asc = round(Hi_asc, 2),
Hi_dsc = round(Hi_dsc, 2)
)
# Fila de Total
fila_total <- data.frame(
Intervalo = "TOTAL",
MC = "--",
ni = sum(TDF$ni),
Ni_asc = "--",
Ni_dsc = "--",
hi = 100,
Hi_asc = "--",
Hi_dsc = "--"
)
# Unir fila Total con la tabla
TDFaltura_pluma <- rbind(TDF, fila_total)
# Mostrar Tabla
TDFaltura_pluma| Tabla N° 1 | |||||||
| Distribución de frecuencias de la altura de la pluma (km) de los volcanes activos | |||||||
| Intervalo de clase | Marca de clase (MC) |
Frecuencia absoluta ni |
Frecuencia relativa hi (%) |
Ni ↓ | Hi ↓ | Ni ↑ | Hi ↑ |
|---|---|---|---|---|---|---|---|
| [0 - 10) | 5 | 530 | 74.23 | 714 | 100 | 530 | 74.23 |
| [10 - 20) | 15 | 114 | 15.97 | 184 | 25.77 | 644 | 90.2 |
| [20 - 30) | 25 | 30 | 4.20 | 70 | 9.8 | 674 | 94.4 |
| [30 - 40] | 35 | 40 | 5.60 | 40 | 5.6 | 714 | 100 |
| TOTAL | -- | 714 | 100.00 | -- | -- | -- | -- |
| Elaborado por: Grupo 2 - Carrera de Geología. | |||||||
# margen inferior amplio
par(mar = c(5, 4, 4, 2))
# graficar barras de frecuencia absoluta
pos_x <- barplot(
ni,
col = "red",
border = "black",
space = 0,
las = 1,
main = "Gráfica 1: Distribución de la frecuencia absoluta\n de la altura de la pluma de los volcanes activos (local)",
xlab = "Periodo de retorno (años)",
ylab = "Cantidad",
axes = TRUE
)
# límites de clase para eje X
cortes_x <- c(Li, max(Ls))
# colocar eje X manualmente
axis(
side = 1,
at = seq(0, length(ni), length.out = length(cortes_x)),
labels = cortes_x,
cex.axis = 0.7
)# margen inferior amplio
par(mar = c(5, 4, 4, 2))
# graficar barras de frecuencia absoluta
pos_x <- barplot(
ni,
col = "red",
border = "black",
space = 0,
las = 1,
main = "Gráfica 2: Distribución de la frecuencia absoluta\n dela altura de la pluma de los volcanes activos (global)",
xlab = "Periodo de retorno (años)",
ylab = "Cantidad",
ylim = c(0, n),
axes = TRUE
)
# límites de clase para eje X
cortes_x <- c(Li, max(Ls))
# colocar eje X manualmente
axis(
side = 1,
at = seq(0, length(ni), length.out = length(cortes_x)),
labels = cortes_x,
cex.axis = 0.7
)#Grafica local
# margen inferior amplio
par(mar = c(5, 4, 4, 2))
# graficar barras
pos_x <- barplot(
hi,
col = "orange",
border = "black",
space = 0,
las = 1,
main = "Gráfica 3: Distribución de la frecuencia relativa \nde la altura de la pluma de los volcanes activos (local)",
xlab = "Periodo de retorno (años)",
ylab = "Porcentaje %",
axes = TRUE
)
# límites de clase para eje X
cortes_x <- c(Li, max(Ls))
# colocar eje X manualmente
axis(
side = 1,
at = 0:length(hi),
labels = cortes_x,
cex.axis = 0.7
)# margen inferior amplio
par(mar = c(5, 4, 4, 2))
# graficar barras
pos_x <- barplot(
hi,
col = "orange",
border = "black",
space = 0,
las = 1,
main = "Gráfica 3: Distribución de la frecuencia relativa \ndela altura de la pluma de los volcanes activos (global)",
xlab = "Periodo de retorno (años)",
ylab = "Porcentaje %",
ylim = c(0,100),
axes = TRUE
)
# límites de clase para eje X
cortes_x <- c(Li, max(Ls))
# colocar eje X manualmente
axis(
side = 1,
at = 0:length(hi),
labels = cortes_x,
cex.axis = 0.7
)
# Añadir polígono de frecuencias
lines(
x = pos_x,
y = hi,
type = "o",
lwd = 2,
pch = 16,
col = "brown"
)# Margen inferior amplio
par(mar = c(8, 4, 4, 2))
# Coordenadas para las ojivas
x <- c(Li, max(Ls))
Ni_asc_ojiva <- c(0, Ni_asc)
Ni_dsc_ojiva <- c(sum(ni), Ni_dsc)
# Ojiva ascendente
plot(
x,
Ni_asc_ojiva,
type = "o",
pch = 16,
col = "blue",
xaxt = "n",
ylim = c(0, sum(ni)),
xlim = c(min(x), max(x)),
xlab = "Altura de la pluma (km)",
ylab = "Frecuencia absoluta acumulada (Ni)",
main = "Gráfica 4: Ojivas de frecuencias absolutas acumuladas"
)
# Ojiva descendente
lines(
x,
Ni_dsc_ojiva,
type = "o",
pch = 16,
col = "red"
)
# Eje X
axis(
side = 1,
at = x,
labels = x,
cex.axis = 0.8
)
# Leyenda
legend(
"right",
legend = c("Ni ascendente", "Ni descendente"),
col = c("blue", "red"),
pch = 16,
lty = 1,
lwd = 2,
bty = "n"
)# Margen inferior amplio
par(mar = c(8, 4, 4, 2))
# Coordenadas para las ojivas
x <- c(Li, max(Ls))
Hi_asc_ojiva <- c(0, Hi_asc)
Hi_dsc_ojiva <- c(100, Hi_dsc)
# Ojiva ascendente
plot(
x,
Hi_asc_ojiva,
type = "o",
pch = 16,
col = "blue",
xaxt = "n",
ylim = c(0, 100),
xlim = c(min(x), max(x)),
xlab = "Altura de la pluma (km)",
ylab = "Porcentaje %",
main = "Gráfica 5: Ojivas de frecuencias relativas acumuladas"
)
# Ojiva descendente
lines(
x,
Hi_dsc_ojiva,
type = "o",
pch = 16,
col = "red"
)
# Eje X
axis(
side = 1,
at = x,
labels = x,
cex.axis = 0.8
)
# Leyenda
legend(
"right",
legend = c("Hi ascendente", "Hi descendente"),
col = c("blue", "red"),
pch = 16,
lty = 1,
lwd = 2,
bty = "n"
)# ============================
# CÁLCULO DE ESTADÍSTICOS
# ============================
media_box <- mean(altura_pluma)
mediana_box <- median(altura_pluma)
Q1_box <- quantile(altura_pluma, 0.25)
Q3_box <- quantile(altura_pluma, 0.75)
IQR_box <- IQR(altura_pluma)
# ============================
# CÁLCULO DE VALORES ATÍPICOS
# ============================
lim_inf_outlier_box <- Q1_box - 1.5 * IQR_box
lim_sup_outlier_box <- Q3_box + 1.5 * IQR_box
outliers_box <- altura_pluma[
altura_pluma < lim_inf_outlier_box |
altura_pluma > lim_sup_outlier_box
]
n_outliers_box <- length(outliers_box)
# ============================
# DIAGRAMA DE CAJA Y BIGOTES
# ============================
par(mar = c(5, 4, 4, 2))
boxplot(
altura_pluma,
horizontal = TRUE,
col = "lightblue",
border = "darkblue",
main = "Gráfica 7: Distribución de la altura de la pluna \nde los volcanes activos con detección de valores atípicos",
xlab = "Período promedio de retorno (años)",
ylab = ""
)
# ============================
# MEDIA
# ============================
points(
media_box,
1,
pch = 23,
bg = "red",
cex = 1.3
)
# ============================
# LEYENDA
# ============================
legend(
"topright",
legend = c(
paste("Media:", round(media_box, 2)),
paste("Mediana:", round(mediana_box, 2)),
paste("Q1:", round(Q1_box, 2)),
paste("Q3:", round(Q3_box, 2)),
paste("Outliers:", n_outliers_box)
),
bty = "n",
cex = 0.85
)# ============================
# INDICADORES DE TENDENCIA CENTRAL
# ============================
X <- mean(altura_pluma)
Me <- median(altura_pluma)
Mo <- as.numeric(names(sort(table(altura_pluma), decreasing = TRUE)[1]))
# ============================
# INDICADORES DE DISPERSIÓN
# ============================
var_retornoV <- var(altura_pluma)
desv <- sd(altura_pluma)
CV <- (desv / X) * 100
# ============================
# INDICADORES DE FORMA
# ============================
As <- skewness(altura_pluma)
K <- kurtosis(altura_pluma)
# ============================
# DATOS PARA LA TABLA
# ============================
Variable <- "Altura de la pluma (km)"
min_altura_pluma <- min(altura_pluma)
max_altura_pluma <- max(altura_pluma)
Rango <- paste0(
"[",
min_altura_pluma,
" - ",
max_altura_pluma,
"]"
)
# ============================
# VALORES ATÍPICOS
# ============================
atipicos_reales <- boxplot.stats(altura_pluma)$out
if(length(atipicos_reales) == 0){
valoresatipicos <- "0"
} else {
valoresatipicos <- paste0(
length(atipicos_reales),
" (> ",
round(min(atipicos_reales), 2),
")"
)
}| Tabla Nro. 2 | |||||||||
| Indicadores estadísticos dela altura de la pluma de los volcanes activos a nivel mundial | |||||||||
| Variable | Rango | X | Me | Mo | sd | CV | As | K | Valores.atípicos |
|---|---|---|---|---|---|---|---|---|---|
| Altura de la pluma (km) | [0.1 - 40] | 5.47 | 3 | 1 | 7.78 | 142.22 | 2.28 | 4.77 | 40 |
| Elaborado por: Grupo 2 - Carrera de Geología. | |||||||||
La variable altura de la pluma de las erupciones volcánicas fluctúa entre 0.1 y 40, y sus valores giran en torno a una media de 5.47, con una desviación estándar de 7.78, lo que evidencia un conjunto de datos muy heterogéneo. Los valores se concentran fuertemente en las alturas de pluma más bajas, presentando una marcada asimetría positiva. Además, se identifica un valor atípico dentro del intervalo de 0.1 a 40 km, lo que refleja la existencia de una erupción con una altura de pluma excepcionalmente alta respecto al resto de las observaciones.