Precipitacion Mensual en Cundinamarca

Por: Juan Camilo Aguirre

Metodos Estadisticos

Agosto 14, 2024

Introduccion

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.

Objetivos de la presentacion

(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.

Cuadro operacional de variables

(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.

Pre-Analisis descriptivo

#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>

Analisis descriptivo

(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:

Metodo 1: summary()

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  
## 

Metodo 2: stat.desc() (usando la libreria pastecs)

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)

Mayor precipitacion

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))

Menor precipitacion

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))

Meses segun su precipitacion total

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)) 

Analisis detallado

(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:

Grupos de interes

(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á

Figura 10. Distancia entre Zipaquira y la represa Sisga
Figura 10. Distancia entre Zipaquira y la represa Sisga
Figura 11. Clima historico en Zipaquira
Figura 11. Clima historico en Zipaquira
Figura 12. Clima promedio en la represa Sisga
Figura 12. Clima promedio en la represa Sisga

Para empezar, observaremos de manera grafica ambass estaciones

Lluvia promedia en la estacion Zipaquira vs Lluvia promedia en la represa Sisga

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:

Boxplot de lluvia promedia en la estacion Zipaquira vs Lluvia promedia en la represa Sisga

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:

  • Clima y tipo de terreno y/o altitud.
  • Numero de registros.
  • Diferencia en el equipamiento.
  • Sequias y alteraciones en el clima.

Comparaciones o inferencias sugeridas

(6. ¿Qué otras comparaciones o inferencias resultarían interesantes en este análisis)

Analisis interesantes:

  1. Como se compararia la frecuencia de los registros con la localizacion de las estaciones? (Mapa de calor y coordenadas)

  2. 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.

Bibliografia

  1. http://www.colparques.net/SISGA (Informacion sobre la represa Sisga)
  2. https://www.calcmaps.com/map-distance/ (Sitio web para calcular la distancia)
  3. https://www.datos.gov.co/Ambiente-y-Desarrollo-Sostenible/Precipitaciones-Totales-Mensuales/mb4n-6m2g/about_data (Lugar de donde se obtienen los datos.)