Por: Juan Camilo Aguirre
Metodos Estadisticos
Agosto 14, 2024
En esta presentacion, se mostrara el analisis comprensivo de la base de datos: Precipitaciones Totales Mensuales.
Volumen de precipitaciones mensuales obtenido en la red de estaciones hidrológicas de la Corporación Autónoma Regional de Cundinamarca - CAR.
Esta trae informacion sobre precipitaciones en el departamento de Cundinamarca desde 1920 hasta 2019.
Las dimensiones son de 6,196 (filas) x 19 (columnas) = 117,724 datos.
(1. ¿Qué objetivo plantearías para el estudio o el interés del investigador? )
Para la presentacion, se utilizaron las siguientes librerias como herramientas para manipular y organizar los datos:
library(readxl)
## Warning: package 'readxl' was built under R version 4.3.3
library(viridis)
## Loading required package: viridisLite
library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.3.3
#library(sf)
#library(ggspatial)
library(tidyr)
library(dplyr)
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
library(pastecs)
## Warning: package 'pastecs' was built under R version 4.3.3
##
## Attaching package: 'pastecs'
## The following objects are masked from 'package:dplyr':
##
## first, last
## The following object is masked from 'package:tidyr':
##
## extract
library(patchwork)
## Warning: package 'patchwork' was built under R version 4.3.3
library(leaflet)
## Warning: package 'leaflet' was built under R version 4.3.3
#library(summarytools)
#library(pandoc)
library(knitr)
Con esto en mente, podemos proceder con la siguiente parte de la presentacion.
(2.¿Qué variables se involucran en el estudio y de qué tipo son? Cuadro de operacionalización de variables)
Figura 1. Cuadro operacional de variables.
#Primero se carga la base de datos
precipitaciones <- read_excel("C:\\Users\\Administrador\\Documents\\R\\precipitaciones\\precipitaciones.xlsx")
head(precipitaciones)
## # A tibble: 6 × 19
## ESTACIÓN CÓDIGO `X=N` `Y=E` MUNICIPIO CUENCA AÑO ENERO FEBRERO MARZO ABRIL
## <chr> <dbl> <dbl> <dbl> <chr> <chr> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 Pajas B… 2.12e6 973320 944710 Nilo R. Pa… 1995 0 0 0 0
## 2 Pajas B… 2.12e6 973320 944710 Nilo R. Pa… 1996 296. 127. 248. 149.
## 3 Pajas B… 2.12e6 973320 944710 Nilo R. Pa… 1997 294. 76.9 160. 296.
## 4 Pajas B… 2.12e6 973320 944710 Nilo R. Pa… 1998 144. 118 209. 438.
## 5 Pajas B… 2.12e6 973320 944710 Nilo R. Pa… 1999 78.3 257. 83 339.
## 6 Pajas B… 2.12e6 973320 944710 Nilo R. Pa… 2000 113. 305. 202. 323.
## # ℹ 8 more variables: MAYO <dbl>, JUNIO <dbl>, JULIO <dbl>, AGOSTO <dbl>,
## # SEPTIEMBRE <dbl>, OCTUBRE <dbl>, NOVIEMBRE <dbl>, DICIEMBRE <dbl>
(3. Realice un descriptivo de los datos, incluya gráficos y resúmenes numéricos. )
hist(precipitaciones$AÑO, breaks=75,
main="Histograma de Precipitaciones",
xlab="Año",
ylab="Frecuencia",
sub="Figura 2. Histograma de frecuencias de registros de precipitaciones.")
Para encontrar resultados numericos enfocados en los datos importantes, creamos un nuevo dataset con solo los meses:
meses <- precipitaciones %>% select(ENERO:DICIEMBRE)
Aqui se sacaran dos diferentes metodos para obtener resultados numericos:
summary(meses)
## ENERO FEBRERO MARZO ABRIL
## Min. : 0.00 Min. : 0.00 Min. : 0.00 Min. : 0.00
## 1st Qu.: 8.60 1st Qu.: 19.18 1st Qu.: 37.77 1st Qu.: 59.30
## Median : 26.05 Median : 40.45 Median : 71.40 Median : 98.75
## Mean : 39.42 Mean : 52.69 Mean : 83.61 Mean :115.18
## 3rd Qu.: 53.40 3rd Qu.: 71.00 3rd Qu.: 113.40 3rd Qu.:154.50
## Max. :3097.00 Max. :2797.00 Max. :1298.00 Max. :828.50
##
## MAYO JUNIO JULIO AGOSTO
## Min. : 0.0 Min. : 0.00 Min. : 0.00 Min. : 0.00
## 1st Qu.: 53.5 1st Qu.: 29.70 1st Qu.: 23.00 1st Qu.: 22.20
## Median : 90.2 Median : 55.50 Median : 44.15 Median : 42.15
## Mean :100.4 Mean : 64.86 Mean : 55.39 Mean : 51.69
## 3rd Qu.:134.6 3rd Qu.: 88.00 3rd Qu.: 72.70 3rd Qu.: 69.50
## Max. :823.5 Max. :791.00 Max. :550.00 Max. :500.50
## NA's :1
## SEPTIEMBRE OCTUBRE NOVIEMBRE DICIEMBRE
## Min. : 0.00 Min. : 0.0 Min. : 0.0 Min. : 0.00
## 1st Qu.: 28.07 1st Qu.: 58.5 1st Qu.: 52.9 1st Qu.: 18.20
## Median : 52.00 Median :102.0 Median : 91.5 Median : 44.05
## Mean : 61.79 Mean :113.5 Mean :105.3 Mean : 57.10
## 3rd Qu.: 83.72 3rd Qu.:153.3 3rd Qu.:140.5 3rd Qu.: 80.53
## Max. :498.60 Max. :675.2 Max. :767.0 Max. :532.30
##
stat.desc(meses)
## ENERO FEBRERO MARZO ABRIL MAYO
## nbr.val 6.196000e+03 6.196000e+03 6.196000e+03 6.196000e+03 6.196000e+03
## nbr.null 6.270000e+02 3.920000e+02 3.280000e+02 3.000000e+02 3.560000e+02
## nbr.na 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
## min 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
## max 3.097000e+03 2.797000e+03 1.298000e+03 8.285000e+02 8.235000e+02
## range 3.097000e+03 2.797000e+03 1.298000e+03 8.285000e+02 8.235000e+02
## sum 2.442283e+05 3.264612e+05 5.180772e+05 7.136501e+05 6.218304e+05
## median 2.605000e+01 4.045000e+01 7.140000e+01 9.875000e+01 9.020000e+01
## mean 3.941709e+01 5.268903e+01 8.361478e+01 1.151792e+02 1.003600e+02
## SE.mean 8.858229e-01 7.626290e-01 8.549761e-01 1.052163e+00 8.876913e-01
## CI.mean.0.95 1.736520e+00 1.495018e+00 1.676050e+00 2.062605e+00 1.740183e+00
## var 4.861891e+03 3.603612e+03 4.529178e+03 6.859266e+03 4.882423e+03
## std.dev 6.972726e+01 6.003010e+01 6.729917e+01 8.282069e+01 6.987433e+01
## coef.var 1.768960e+00 1.139328e+00 8.048716e-01 7.190596e-01 6.962371e-01
## JUNIO JULIO AGOSTO SEPTIEMBRE OCTUBRE
## nbr.val 6.195000e+03 6.196000e+03 6.196000e+03 6.196000e+03 6.196000e+03
## nbr.null 4.590000e+02 4.840000e+02 4.780000e+02 4.280000e+02 4.060000e+02
## nbr.na 1.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
## min 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
## max 7.910000e+02 5.500000e+02 5.005000e+02 4.986000e+02 6.752000e+02
## range 7.910000e+02 5.500000e+02 5.005000e+02 4.986000e+02 6.752000e+02
## sum 4.018006e+05 3.432026e+05 3.202993e+05 3.828326e+05 7.032189e+05
## median 5.550000e+01 4.415000e+01 4.215000e+01 5.200000e+01 1.020000e+02
## mean 6.485885e+01 5.539099e+01 5.169453e+01 6.178706e+01 1.134956e+02
## SE.mean 6.711454e-01 6.413230e-01 5.747515e-01 6.350710e-01 1.018800e+00
## CI.mean.0.95 1.315678e+00 1.257216e+00 1.126712e+00 1.244960e+00 1.997202e+00
## var 2.790452e+03 2.548385e+03 2.046782e+03 2.498941e+03 6.431165e+03
## std.dev 5.282473e+01 5.048153e+01 4.524138e+01 4.998941e+01 8.019455e+01
## coef.var 8.144567e-01 9.113671e-01 8.751677e-01 8.090596e-01 7.065871e-01
## NOVIEMBRE DICIEMBRE
## nbr.val 6.196000e+03 6.196000e+03
## nbr.null 4.430000e+02 5.690000e+02
## nbr.na 0.000000e+00 0.000000e+00
## min 0.000000e+00 0.000000e+00
## max 7.670000e+02 5.323000e+02
## range 7.670000e+02 5.323000e+02
## sum 6.525248e+05 3.537983e+05
## median 9.150000e+01 4.405000e+01
## mean 1.053139e+02 5.710108e+01
## SE.mean 1.015103e+00 6.964416e-01
## CI.mean.0.95 1.989954e+00 1.365267e+00
## var 6.384568e+03 3.005252e+03
## std.dev 7.990349e+01 5.482017e+01
## coef.var 7.587176e-01 9.600549e-01
Adicionalmente, se filtraran la cantidad de registros por estacion.
station_count <- precipitaciones %>%
group_by(ESTACIÓN) %>%
summarize(Conteo = n(), .groups = 'drop') %>%
arrange(ESTACIÓN)
print(station_count)
## # A tibble: 174 × 2
## ESTACIÓN Conteo
## <chr> <int>
## 1 Acandy 42
## 2 Agua Fría 22
## 3 Alco 37
## 4 Almaviva 21
## 5 Alto Caicedo 4
## 6 Alto La Puerta 3
## 7 Alto Saboya 36
## 8 Alto de Aire 33
## 9 América 10
## 10 Anclaje 14 31
## # ℹ 164 more rows
De forma general, los promedios de precipitacion para cada mes se observa en las siguientes graficas:
monthly_averages <- precipitaciones %>%
summarise(
ENERO = mean(ENERO, na.rm = TRUE),
FEBRERO = mean(FEBRERO, na.rm = TRUE),
MARZO = mean(MARZO, na.rm = TRUE),
ABRIL = mean(ABRIL, na.rm = TRUE),
MAYO = mean(MAYO, na.rm = TRUE),
JUNIO = mean(JUNIO, na.rm = TRUE),
JULIO = mean(JULIO, na.rm = TRUE),
AGOSTO = mean(AGOSTO, na.rm = TRUE),
SEPTIEMBRE = mean(SEPTIEMBRE, na.rm = TRUE),
OCTUBRE = mean(OCTUBRE, na.rm = TRUE),
NOVIEMBRE = mean(NOVIEMBRE, na.rm = TRUE),
DICIEMBRE = mean(DICIEMBRE, na.rm = TRUE)
)
monthly_averages_long <- monthly_averages %>%
pivot_longer(cols = everything(), names_to = "Mes", values_to = "Promedio")
monthly_averages_long$Mes <- factor(monthly_averages_long$Mes, levels = c("ENERO", "FEBRERO", "MARZO", "ABRIL", "MAYO", "JUNIO", "JULIO", "AGOSTO", "SEPTIEMBRE", "OCTUBRE", "NOVIEMBRE", "DICIEMBRE"))
ggplot(monthly_averages_long, aes(x = Mes, y = Promedio, fill = Promedio)) +
geom_bar(stat = "identity") +
scale_fill_viridis_c(option = "viridis") +
labs(title = "Promedio de Precipitaciones Mensuales",
y = "mm",
caption="Figura 3. Grafica de barras del promedio de precipitacion (mensual)"
) +
theme_minimal() +
theme(axis.text.x = element_text(angle = 45, hjust = 1),
plot.caption = element_text(hjust = 0.5))
precipitaciones_long <- precipitaciones%>%
pivot_longer(
cols = ENERO:DICIEMBRE,
names_to = "Mes",
values_to = "Precipitacion"
)
precipitaciones_long$Mes <- factor(precipitaciones_long$Mes, levels = c("ENERO", "FEBRERO", "MARZO", "ABRIL", "MAYO", "JUNIO", "JULIO", "AGOSTO", "SEPTIEMBRE", "OCTUBRE", "NOVIEMBRE", "DICIEMBRE"))
ggplot(precipitaciones_long, aes(x = Mes, y = Precipitacion, fill = Mes)) +
geom_boxplot() +
scale_fill_viridis_d(option = "viridis") +
labs(title = "Distribución Mensual de Precipitaciones",
x = "Mes",
y = "Precipitación",
caption="Figura 4. Boxplot del promedio de precipitacion (mensual)") +
theme_minimal() +
theme(axis.text.x = element_text(angle = 45, hjust = 1),
plot.caption = element_text(hjust = 0.5))
## Warning: Removed 1 row containing non-finite outside the scale range
## (`stat_boxplot()`).
A continuacion, se mostraran los años con menor y mayor precipitacion, en dicho orden.
total_precipitation_by_year <- precipitaciones %>%
group_by(AÑO) %>%
summarise(TotalPrecipitacion = sum(c_across(ENERO:DICIEMBRE), na.rm = TRUE)) %>%
arrange(desc(TotalPrecipitacion))
top10_years <- total_precipitation_by_year %>%
slice_max(TotalPrecipitacion, n = 10)
bottom10_years <- total_precipitation_by_year %>%
slice_min(TotalPrecipitacion, n = 10)
ggplot(top10_years, aes(x = reorder(factor(AÑO), TotalPrecipitacion), y = TotalPrecipitacion, fill = TotalPrecipitacion)) +
geom_bar(stat = "identity") +
scale_fill_viridis_c(option = "viridis", direction = -1) +
labs(title = "Top 10 Años con Mayor Precipitación" ,
x = "Año",
y = "Total de Precipitaciones (mm)",
caption="Figura 5. Grafico de los 10 años con mayor precipitacion") +
theme_minimal() +
theme(axis.text.x = element_text(angle = 45, hjust = 1),
plot.caption = element_text(hjust = 0.5))
ggplot(bottom10_years, aes(x = reorder(factor(AÑO), TotalPrecipitacion), y = TotalPrecipitacion, fill = TotalPrecipitacion)) +
geom_bar(stat = "identity") +
scale_fill_viridis_c(option = "viridis", direction = -1) +
labs(title = "Top 10 Años con Menor Precipitación",
x = "Año",
y = "Total de Precipitaciones (mm)",
caption="Figura 6. Grafico de los 10 años con menor precipitacion") +
theme_minimal() +
theme(axis.text.x = element_text(angle = 45, hjust = 1),
plot.caption = element_text(hjust = 0.5))
Junto a estos, tambien se mostrara la proporcion del promedio de precipitacion por mes
long_data <- precipitaciones %>%
pivot_longer(cols = ENERO:DICIEMBRE, names_to = "Mes", values_to = "Precipitacion")
total_precipitation_by_month <- long_data %>%
group_by(Mes) %>%
summarise(TotalPrecipitacion = sum(Precipitacion, na.rm = TRUE)) %>%
arrange(desc(TotalPrecipitacion))
ggplot(total_precipitation_by_month, aes(x = reorder(Mes, -TotalPrecipitacion), y = TotalPrecipitacion, fill = TotalPrecipitacion)) +
geom_bar(stat = "identity") +
scale_fill_viridis_c(option = "viridis", direction = 1) +
labs(title = "Precipitación Total por Mes",
x = "Mes",
y = "Total de Precipitaciones (mm)",
caption="Figura 7. Grafico de los meses del año segun su precipitacion total.") +
theme_minimal() +
theme(axis.text.x = element_text(angle = 45, hjust = 1),
plot.caption = element_text(hjust = 0.5))
(4 .Inspeccione un histograma y/o un diagrama de caja y bigotes con los datos de tipo numérico. A partir de su inspección, ¿cómo podría definir esta distribución, con asimetría positiva, con asimetría negativa o simétrica? ¿Se ajustan estos datos a una distribución normal? )
Para este punto, se eligio la precipitacion de la cual se tienen registros historicos en la estacion por el lago Guatavita. Este representa una gran importancia por su conexion al embalse de Tominé, uno de los embalses mas importantes para la capital.
guatavita_data <- precipitaciones %>%
filter(ESTACIÓN == "Guatavita")
monthly_averages <- guatavita_data %>%
summarise(
ENERO = mean(ENERO, na.rm = TRUE),
FEBRERO = mean(FEBRERO, na.rm = TRUE),
MARZO = mean(MARZO, na.rm = TRUE),
ABRIL = mean(ABRIL, na.rm = TRUE),
MAYO = mean(MAYO, na.rm = TRUE),
JUNIO = mean(JUNIO, na.rm = TRUE),
JULIO = mean(JULIO, na.rm = TRUE),
AGOSTO = mean(AGOSTO, na.rm = TRUE),
SEPTIEMBRE = mean(SEPTIEMBRE, na.rm = TRUE),
OCTUBRE = mean(OCTUBRE, na.rm = TRUE),
NOVIEMBRE = mean(NOVIEMBRE, na.rm = TRUE),
DICIEMBRE = mean(DICIEMBRE, na.rm = TRUE)
)
monthly_averages_long <- monthly_averages %>%
pivot_longer(cols = everything(), names_to = "Mes", values_to = "Promedio")
monthly_averages_long$Mes <- factor(monthly_averages_long$Mes, levels = c("ENERO", "FEBRERO", "MARZO", "ABRIL", "MAYO", "JUNIO", "JULIO", "AGOSTO", "SEPTIEMBRE", "OCTUBRE", "NOVIEMBRE", "DICIEMBRE"))
ggplot(monthly_averages_long, aes(x = Mes, y = Promedio, fill = Promedio)) +
geom_bar(stat = "identity") +
scale_fill_viridis_c(option = "viridis") +
labs(title = "Promedio de Precipitaciones Mensuales en Guatavita",
x = "Mes",
y = "Promedio de Precipitaciones",
caption = "Figura 8. Promedio de precipitacion mensual en Guatavita") +
theme_minimal() +
theme(axis.text.x = element_text(angle = 45, hjust = 1),
plot.caption = element_text(hjust = 0.5))
guatavita_long <- guatavita_data %>%
pivot_longer(
cols = ENERO:DICIEMBRE,
names_to = "Mes",
values_to = "Precipitacion"
)
guatavita_long$Mes <- factor(guatavita_long$Mes, levels = c("ENERO", "FEBRERO", "MARZO", "ABRIL", "MAYO", "JUNIO", "JULIO", "AGOSTO", "SEPTIEMBRE", "OCTUBRE", "NOVIEMBRE", "DICIEMBRE"))
ggplot(guatavita_long, aes(x = Mes, y = Precipitacion, fill = Mes)) +
geom_boxplot() +
scale_fill_viridis_d(option = "viridis") +
labs(title = "Distribución Mensual de Precipitaciones en Guatavita",
x = "Mes",
y = "Precipitación",
caption = "Figura 9. Boxplot de precipitacion mensual en Guatavita") +
theme_minimal() +
theme(axis.text.x = element_text(angle = 45, hjust = 1),
plot.caption = element_text(hjust = 0.5))
De aqui podemos sacar las siguientes conclusiones:
Los datos que representan la precipitacion en la estacion Guatavita:
(5. Seleccione dos o más grupos de interés ¿Existen diferencias estadísticamente significativas entre los valores medios de los grupos involucrados? )
Para este item, se eligieron dos estaciones con altos numeros de reporte (de ahi la importancia de filtrar por nombre y cantidad).
En esta instancia se escogieron las estaciones ubicadas en la represas de Sisga y Zipaquirá
Para empezar, observaremos de manera grafica ambass estaciones
month_levels <- c("ENERO", "FEBRERO", "MARZO", "ABRIL", "MAYO", "JUNIO",
"JULIO", "AGOSTO", "SEPTIEMBRE", "OCTUBRE", "NOVIEMBRE", "DICIEMBRE")
zipaquira_data <- precipitaciones %>%
filter(ESTACIÓN == "Zipaquirá")
monthly_averages_zipaquira <- zipaquira_data %>%
summarise(across(ENERO:DICIEMBRE, mean, na.rm = TRUE))
## Warning: There was 1 warning in `summarise()`.
## ℹ In argument: `across(ENERO:DICIEMBRE, mean, na.rm = TRUE)`.
## Caused by warning:
## ! The `...` argument of `across()` is deprecated as of dplyr 1.1.0.
## Supply arguments directly to `.fns` through an anonymous function instead.
##
## # Previously
## across(a:b, mean, na.rm = TRUE)
##
## # Now
## across(a:b, \(x) mean(x, na.rm = TRUE))
monthly_averages_zipaquira_long <- monthly_averages_zipaquira %>%
pivot_longer(cols = everything(), names_to = "Mes", values_to = "Promedio") %>%
mutate(Estacion = "Zipaquirá")
represa_sisga_data <- precipitaciones %>%
filter(ESTACIÓN == "Represa Sisga")
monthly_averages_sisga <- represa_sisga_data %>%
summarise(across(ENERO:DICIEMBRE, mean, na.rm = TRUE))
monthly_averages_sisga_long <- monthly_averages_sisga %>%
pivot_longer(cols = everything(), names_to = "Mes", values_to = "Promedio") %>%
mutate(Estacion = "Represa Sisga")
monthly_averages_zipaquira_long$Mes <- factor(monthly_averages_zipaquira_long$Mes, levels = month_levels)
monthly_averages_sisga_long$Mes <- factor(monthly_averages_sisga_long$Mes, levels = month_levels)
zipaquira_plot <- ggplot(monthly_averages_zipaquira_long, aes(x = Mes, y = Promedio, fill = Promedio)) +
geom_bar(stat = "identity") +
scale_fill_viridis_c(option = "viridis") +
labs(title = "Zipaquirá",
x = "Mes",
y = "Promedio de Precipitaciones") +
theme_minimal() +
theme(axis.text.x = element_text(angle = 45, hjust = 1))
sisga_plot <- ggplot(monthly_averages_sisga_long, aes(x = Mes, y = Promedio, fill = Promedio)) +
geom_bar(stat = "identity") +
scale_fill_viridis_c(option = "viridis") +
labs(title = "Sisga",
x = "Mes",
y = "Promedio de Precipitaciones") +
theme_minimal() +
theme(axis.text.x = element_text(angle = 45, hjust = 1),
plot.caption = element_text(hjust = 0.5))
combined_plot <- zipaquira_plot + sisga_plot +
plot_annotation(caption = "Figura 13. Promedio de Precipitaciones Mensuales en Zipaquirá y Represa Sisga")
print(combined_plot)
Y a continuacion, observaremos un boxplot que compare ambas estaciones:
month_levels <- c("ENERO", "FEBRERO", "MARZO", "ABRIL", "MAYO", "JUNIO",
"JULIO", "AGOSTO", "SEPTIEMBRE", "OCTUBRE", "NOVIEMBRE", "DICIEMBRE")
zipaquira_data <- precipitaciones %>%
filter(ESTACIÓN == "Zipaquirá") %>%
pivot_longer(cols = ENERO:DICIEMBRE, names_to = "Mes", values_to = "Precipitacion") %>%
mutate(Estacion = "Zipaquirá")
sisga_data <- precipitaciones %>%
filter(ESTACIÓN == "Represa Sisga") %>%
pivot_longer(cols = ENERO:DICIEMBRE, names_to = "Mes", values_to = "Precipitacion") %>%
mutate(Estacion = "Represa Sisga")
combined_data <- bind_rows(monthly_averages_zipaquira_long, monthly_averages_sisga_long)
zipaquira_boxplot <- ggplot(zipaquira_data, aes(x = Mes, y = Precipitacion)) +
geom_boxplot(fill = "skyblue") +
labs(title = "Zipaquirá",
x = "Mes",
y = "Precipitaciones (mm)") +
theme_minimal() +
theme(axis.text.x = element_text(angle = 45, hjust = 1)) +
scale_x_discrete(limits = month_levels)
sisga_boxplot <- ggplot(sisga_data, aes(x = Mes, y = Precipitacion)) +
geom_boxplot(fill = "orange") +
labs(title = "Represa Sisga",
x = "Mes",
y = "Precipitaciones (mm)") +
theme_minimal() +
theme(axis.text.x = element_text(angle = 45, hjust = 1)) +
scale_x_discrete(limits = month_levels)
combined_boxplot <- zipaquira_boxplot + sisga_boxplot +
plot_layout(ncol = 2) +
plot_annotation(caption = "Figura 14. Distribución de Precipitaciones Mensuales en Zipaquirá y Represa Sisga")
print(combined_boxplot)
month_levels <- c("ENERO", "FEBRERO", "MARZO", "ABRIL", "MAYO", "JUNIO",
"JULIO", "AGOSTO", "SEPTIEMBRE", "OCTUBRE", "NOVIEMBRE", "DICIEMBRE")
zipaquira_data <- precipitaciones %>%
filter(ESTACIÓN == "Zipaquirá") %>%
pivot_longer(cols = ENERO:DICIEMBRE, names_to = "Mes", values_to = "Precipitacion") %>%
mutate(Estacion = "Zipaquirá")
sisga_data <- precipitaciones %>%
filter(ESTACIÓN == "Represa Sisga") %>%
pivot_longer(cols = ENERO:DICIEMBRE, names_to = "Mes", values_to = "Precipitacion") %>%
mutate(Estacion = "Represa Sisga")
combined_data <- bind_rows(zipaquira_data, sisga_data)
combined_data$Mes <- factor(combined_data$Mes, levels = month_levels)
boxplot_plot <- ggplot(combined_data, aes(x = Mes, y = Precipitacion, fill = Estacion)) +
geom_boxplot() +
labs(title = "Distribución de Precipitaciones Mensuales en Zipaquirá y Represa Sisga",
x = "Mes",
y = "Precipitaciones (mm)",
caption = "Figura 15. Comparacion de boxplots entre Zipaquirá y la represa Sisga") +
theme_minimal() +
theme(axis.text.x = element_text(angle = 45, hjust = 1)) +
scale_fill_manual(values = c("Zipaquirá" = "skyblue", "Represa Sisga" = "orange"))
print(boxplot_plot)
Finalmente, podemos usar resultados numericos para observar las diferencias entre ambas estaciones
summary(sisga_data$Precipitacion)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.00 29.07 65.80 71.96 104.20 263.60
summary(zipaquira_data$Precipitacion)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.00 22.60 52.75 63.10 91.65 287.00
De aqui, concluimos que tienen multiples diferencias estadisticas enfocadas en sus medias a lo largo del año, con una gran certeza que proviene de distintos factores:
(6. ¿Qué otras comparaciones o inferencias resultarían interesantes en este análisis)
Analisis interesantes:
Como se compararia la frecuencia de los registros con la localizacion de las estaciones? (Mapa de calor y coordenadas)
Usando series de tiempo (observar tendencias y posiblemente predecir), la situacion de una estacion a lo largo de los años.
El uso de librerias de mapeado, o una forma de poder visualizar las localizaciones de las estaciones propuestas por la base de datos, puede brindar una nueva dimension de perspectiva sobre la intensidad y posibles soluciones a problemas que tenga la zona.
Junto a esto, el proveer informacion actual, revisada para el mas optimo resultado y con la posibilidad de tener las otras variables que puedan brindar lograrian un buen resultado estadistico, y practico para el departamento de Cundinamarca.