En el presente documento se desarrolla un análisis estadístico descriptivo de la variable cuantitativa continua Área de los países con volcanes activos, expresada en kilómetros cuadrados (km²), la cual representa la extensión territorial de los países donde se registran volcanes activos a nivel mundial. El análisis comprende la preparación y depuració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 del área territorial de los países con presencia de actividad volcánica.
## [1] 889
## [1] 11
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.
ni <- sapply(1:k, function(i){
if(i < k){
sum(area_km2 >= Li[i] & area_km2 < Ls[i], na.rm = TRUE)
} else {
sum(area_km2 >= Li[i] & area_km2 <= Ls[i], na.rm = TRUE)
}
})
#Frecuencia relativa hi
hi <- round((ni / n) * 100, 2)
# Corrección para que la suma sea exactamente 100%
hi[length(hi)] <- round(100 - sum(hi[-length(hi)]), 2)
# Frecuencia acumulada absoluta
Ni_asc <- cumsum(ni)
# Frecuencia acumulada relativa (%)
Hi_asc <- round(cumsum(hi), 2)
# Corrección final acumulada
Hi_asc[length(Hi_asc)] <- 100
# Frecuencia acumulada descendente absoluta
Ni_desc <- rev(cumsum(rev(ni)))
# Frecuencia acumulada descendente relativa (%)
Hi_desc <- round(rev(cumsum(rev(hi))), 2)
# Corrección final descendente
Hi_desc[1] <- 100
# Crear intervalos para mostrar
Intervalo <- paste(
format(Li, big.mark = ".", scientific = FALSE),
"-",
format(Ls, big.mark = ".", scientific = FALSE)
)
# Tabla de frecuencias
tabla_frecuencias <- data.frame(
Intervalo,
Li,
Ls,
mc,
ni,
hi,
Ni_asc,
Hi_asc,
Ni_desc,
Hi_desc
)
# Añadir fila de totales
tabla_frecuencias <- rbind(
tabla_frecuencias,
data.frame(
Intervalo = "Total",
Li = NA,
Ls = NA,
mc = NA,
ni = sum(ni),
hi = sum(hi),
Ni_asc = NA,
Hi_asc = NA,
Ni_desc = NA,
Hi_desc = NA
)
)
# Mostrar tabla
tabla_frecuencias| Tabla N° 1 | |||||||
| Distribución de frecuencias del área de los países donde se ubican los volcanes activos (km²) | |||||||
| Intervalo de clase | Marca de clase (MC) |
Frecuencia absoluta ni |
Frecuencia relativa hi (%) |
Ni ↓ | Hi ↓ | Ni ↑ | Hi ↑ |
|---|---|---|---|---|---|---|---|
| 0 - 3.000.000 | 1500000 | 814 | 91.56 | 889 | 100.00 | 814 | 91.56 |
| 3.000.000 - 6.000.000 | 4500000 | 0 | 0.00 | 75 | 8.44 | 814 | 91.56 |
| 6.000.000 - 9.000.000 | 7500000 | 0 | 0.00 | 75 | 8.44 | 814 | 91.56 |
| 9.000.000 - 12.000.000 | 10500000 | 52 | 5.85 | 75 | 8.44 | 866 | 97.41 |
| 12.000.000 - 15.000.000 | 13500000 | 1 | 0.11 | 23 | 2.59 | 867 | 97.52 |
| 15.000.000 - 18.000.000 | 16500000 | 22 | 2.48 | 22 | 2.48 | 889 | 100.00 |
| Total | NA | 889 | 100.00 | NA | NA | NA | NA |
| 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 del area de los paises de los volcanes activos (km2) (local)",
xlab = "Area de los paises (km2)",
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.9
)# 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 del area de los paises de los volcanes activos (km2) (global)",
xlab = "Area de los paises (km2)",
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.9
)# 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 \ndel area de los paises de los volcanes activos (km2) (local)",
xlab = "Area de los paises (km2)",
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 \ndel area de los paises de los volcanes activos (km2) (global)",
xlab = "Area de los paises (km2)",
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_desc)
# 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_desc)
# 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(area_km2)
mediana_box <- median(area_km2)
Q1_box <- quantile(area_km2, 0.25)
Q3_box <- quantile(area_km2, 0.75)
IQR_box <- IQR(area_km2)
# ============================
# 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 <- area_km2[
area_km2 < lim_inf_outlier_box |
area_km2 > lim_sup_outlier_box
]
n_outliers_box <- length(outliers_box)
# ============================
# DIAGRAMA DE CAJA Y BIGOTES
# ============================
par(mar = c(5, 4, 4, 2))
boxplot(
area_km2,
horizontal = TRUE,
col = "lightblue",
border = "darkblue",
main = "Gráfica 7: Distribución del area de los paises \nde los volcanes activos con detección de valores atípicos",
xlab = "Area del pais (km2)",
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(area_km2)
Me <- median(area_km2)
Mo <- as.numeric(names(sort(table(area_km2), decreasing = TRUE)[1]))
# ============================
# INDICADORES DE DISPERSIÓN
# ============================
var_area_km2 <- var(area_km2)
desv <- sd(area_km2)
CV <- (desv / X) * 100
# ============================
# INDICADORES DE FORMA
# ============================
As <- skewness(area_km2)
K <- kurtosis(area_km2)
# ============================
# DATOS PARA LA TABLA
# ============================
Variable <- "Area de los paises (km2)"
min_area_km2 <- min(area_km2)
max_area_km2 <- max(area_km2)
Rango <- paste0(
"[",
min_area_km2,
" - ",
max_area_km2,
"]"
)
# ============================
# VALORES ATÍPICOS
# ============================
atipicos_reales <- boxplot.stats(area_km2)$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 del area de los paises de los volcanes activos a nivel mundial | |||||||||
| Variable | Rango | X | Me | Mo | sd | CV | As | K | Valores.atípicos |
|---|---|---|---|---|---|---|---|---|---|
| Area de los paises (km2) | [102 - 17098246] | 1697262 | 377930 | 1904569 | 3310528 | 195.05 | 3.27 | 10.67 | 75 |
| Elaborado por: Grupo 2 - Carrera de Geología. | |||||||||
La variable área de los países con volcanes activos a nivel mundial fluctúa entre 102 y 17 098 246, y sus valores giran en torno a una media de 1 697 262, con una desviación estándar de 3 310 528, lo que evidencia un conjunto de datos muy heterogéneo debido a la amplia variabilidad en la extensión territorial de los países analizados. Los valores se concentran principalmente en áreas territoriales bajas y medias, presentando una marcada asimetría positiva causada por la presencia de países con superficies extremadamente grandes que desplazan la distribución hacia valores superiores. Además, se identifican 75 valores atípicos dentro del intervalo de 102 a 17 098 246 km², asociados a países con extensiones territoriales excepcionalmente elevadas respecto al comportamiento general de la muestra.