La estadística descriptiva se considera una herramienta fundamental en el campo de la meteorología, ya que nos permite determinar la relación que hay entre variables climatológicas y entender el comportamiento de fenómenos atmosféricos a lo largo del tiempo. A través de distintas técnicas y representaciones gráficas, es posible analizar y resumir grandes volúmenes de datos meteorológicos de manera clara y accesible. Por ejemplo, los diagramas circulares son útiles para representar la distribución de categorías como tipos de temperatura, nubes, clases de precipitación o humedad relativa. Otra herramienta importante son Las tablas cruzadas permiten examinar cómo se relacionan dos variables categóricas con el tipo de clima.
Cuando se trata de estudiar la relación entre variables numéricas, como la temperatura y la humedad relativa, se puede recurrir a los coeficientes de correlación, los cuales cuantifican el grado de asociación entre ellas. Por otro lado, los diagramas de cajas (boxplots) son una herramienta eficaz para comparar distribuciones de datos como las temperaturas máximas o mínimas en distintas estaciones o regiones, ya que muestran la mediana, la dispersión y posibles valores atípicos.
En el presente documento se hará un análisis descriptivo de las variables de temperatura media mensual y humedad relativa media mensual registradas en 18 estaciones ubicadas en los departamentos de Córdoba, Valle del Cauca y Bolívar, desde sus categorías hasta las correlaciones que existen entre dichas variables.
En primer lugar es necesario importar las librerías requeridas para la ejecución del código
library(readxl)
library(ggplot2)
library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr 1.1.4 ✔ readr 2.1.5
## ✔ forcats 1.0.1 ✔ stringr 1.5.2
## ✔ lubridate 1.9.4 ✔ tibble 3.3.0
## ✔ purrr 1.1.0 ✔ tidyr 1.3.1
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag() masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(DT)
library(car)
## Loading required package: carData
##
## Attaching package: 'car'
##
## The following object is masked from 'package:dplyr':
##
## recode
##
## The following object is masked from 'package:purrr':
##
## some
library(psych)
##
## Attaching package: 'psych'
##
## The following object is masked from 'package:car':
##
## logit
##
## The following objects are masked from 'package:ggplot2':
##
## %+%, alpha
library(plotrix)
##
## Attaching package: 'plotrix'
##
## The following object is masked from 'package:psych':
##
## rescale
Con la librería para abrir datos de excel importada, se guardan bajo los nombres de “temperatura” y “humedad” las tablas provenientes de excel con sus datos correspondientes. Para verificar se visualizan los primeros 10 registros de la tabla de humedad
temperatura=read_excel("DATOS_ESTADISTICA.xlsx", sheet="TEMPERATURA")
humedad = read_excel("DATOS_ESTADISTICA.xlsx", sheet="HUMEDAD RELATIVA")
tail(humedad,10)
## # A tibble: 10 × 19
## FECHA PALMIRA BARRAGAN `SAN MARCOS` MATEGUADUA CUMBARCO
## <dttm> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 2020-03-01 00:00:00 70 70 89 79 95
## 2 2020-04-01 00:00:00 69 59 91 77 95
## 3 2020-05-01 00:00:00 70 67 91 77 95
## 4 2020-06-01 00:00:00 78 75 89 70 95
## 5 2020-07-01 00:00:00 73 83 88 75 62
## 6 2020-08-01 00:00:00 70 80 91 76 74
## 7 2020-09-01 00:00:00 71 72 92 75 83
## 8 2020-10-01 00:00:00 74 70 88 75 85
## 9 2020-11-01 00:00:00 77 82 90 67 84
## 10 2020-12-01 00:00:00 77 77 91 66 79
## # ℹ 13 more variables: TURIPANA <dbl>, `PLANETA RICA` <dbl>, MARACAYO <dbl>,
## # `EL SALADO` <dbl>, COLOMBOY <dbl>, `AEPTO BARACOA` <dbl>,
## # `AEPTO RAFAEL NUNEZ` <dbl>, `CARMEN DE BOLIVAR` <dbl>,
## # `COLEGIO COOPERATIVO` <dbl>, `EL GUAMO` <dbl>, `NUEVA FLORIDA` <dbl>,
## # `SAN PABLO` <dbl>, SINCERIN <dbl>
Identificamos en el código los datos de las variables que vamos a utilizar. En este caso tenemos cuatro variables: temperatura media mensual (°C), Humedad relativa mensual (%) y finalmente estas dos variables categorizadas.
Tenemos en cuenta la clasificación de la temperatura y humedad relativa establecido por el IDEAM, estableciendo los rangos
rangos_temp = data.frame(
Categorias=c("Cálido", "Templado", "Frío", "Muy frío"),
Rangos=c("> 24°C", "24 - 17.5°C", "17.5 - 12°C", "< 12°C")
)
rangos_hum = data.frame(
Categorias=c("Muy húmedo", "Húmedo", "Poco húmedo", "Muy baja humedad"),
Rangos=c("> 90%", "90 - 80%", "80 - 60%", "< 60%")
)
rangos_temp
## Categorias Rangos
## 1 Cálido > 24°C
## 2 Templado 24 - 17.5°C
## 3 Frío 17.5 - 12°C
## 4 Muy frío < 12°C
rangos_hum
## Categorias Rangos
## 1 Muy húmedo > 90%
## 2 Húmedo 90 - 80%
## 3 Poco húmedo 80 - 60%
## 4 Muy baja humedad < 60%
categT=read_excel('DATOS ESTADÍSTICA_ACT.xlsx', sheet='CATEGTEMP')
categHR=read_excel('DATOS ESTADÍSTICA_ACT.xlsx', sheet='CATEGHR')
Como siguiente punto, creamos los gráficos circulares de cada departamento para cada una de sus estaciones representativas, con el fin de observar el porcentaje o distribución de cada una de las categorías para temperatura y humedad relativa, y tener una noción de cuál sería el clima esperado en cada una de las zonas.
#TEMPERATURA -VALLE DEL CAUCA
par(mfrow=c(2,3))
colores_categorias <- c(
"Cálido" = "gold",
"Templado" = "olivedrab2",
"Frío" = "skyblue",
"Muy frío" = "blue2")
tablapalmira= table(categT$PALMIRA)
porcentajes <- round(100 * prop.table(tablapalmira), 1)
etiquetas <- paste(names(tablapalmira), "-", porcentajes, "%")
mis_colores <- colores_categorias[names(tablapalmira)]
pie3D(table(categT$PALMIRA), radius=1.5,
main="Palmira (tipo de T)",
labels=names(tablapalmira), labelcex=1,
explode=0.1,
col = mis_colores,
border = "white")
legend("topright", legend = etiquetas, fill = mis_colores, border = "white", cex = 0.6)
tablabarragan= table(categT$BARRAGAN)
porcentajes <- round(100 * prop.table(tablabarragan), 1)
etiquetas <- paste(names(tablabarragan), "-", porcentajes, "%")
mis_colores2 <- colores_categorias[names(tablabarragan)]
pie3D(table(categT$BARRAGAN), radius=1.5,
main="Barragán (tipo de T)",
labels=names(tablabarragan), labelcex=1,
explode=0.1,
col = mis_colores2,
border = "white")
legend("topright", legend = etiquetas, fill = mis_colores2, border = "white", cex = 0.6)
tablasanmarcos= table(categT$`SAN MARCOS`)
porcentajes <- round(100 * prop.table(tablasanmarcos), 1)
etiquetas <- paste(names(tablasanmarcos), "-", porcentajes, "%")
mis_colores3 <- colores_categorias[names(tablasanmarcos)]
pie3D(table(categT$`SAN MARCOS`), radius=1.5,
main="San Marcos (tipo de T)",
labels=names(tablasanmarcos), labelcex=1,
explode=0.1,
col = mis_colores3,
border = "white")
legend("topright", legend = etiquetas, fill = mis_colores3, border = "white", cex = 0.6)
tablamateguadua= table(categT$MATEGUADUA)
porcentajes <- round(100 * prop.table(tablamateguadua), 1)
etiquetas <- paste(names(tablamateguadua), "-", porcentajes, "%")
mis_colores4 <- colores_categorias[names(tablamateguadua)]
pie3D(table(categT$MATEGUADUA), radius=1.5,
main="Mateguadua (tipo de T)",
labels=names(tablamateguadua), labelcex=1,
explode=0.1,
col = mis_colores4,
border = "white")
legend("topright", legend = etiquetas, fill = mis_colores4, border = "white", cex = 0.6)
tablacumbarco= table(categT$CUMBARCO)
porcentajes <- round(100 * prop.table(tablacumbarco), 1)
etiquetas <- paste(names(tablacumbarco), "-", porcentajes, "%")
mis_colores5 <- colores_categorias[names(tablacumbarco)]
pie3D(table(categT$CUMBARCO), radius=1.5,
main="Cumbarco (tipo de T)",
labels=names(tablacumbarco), labelcex=1,
explode=0.1,
col = mis_colores5,
border = "white")
legend("topright", legend = etiquetas, fill = mis_colores5, border = "white", cex = 0.6)
#HUMEDAD RELATIVA - VALLE DEL CAUCA
par(mfrow=c(2,3))
colores_categorias2 <- c(
"Muy baja humedad" = "tomato",
"Poco húmedo" = "gold",
"Húmedo" = "skyblue",
"Muy húmedo" = "blue2")
tablapalmiraHR= table(categHR$PALMIRA)
porcentajes <- round(100 * prop.table(tablapalmiraHR), 1)
etiquetas <- paste(names(tablapalmiraHR), "-", porcentajes, "%")
mis_colores11 <- colores_categorias2[names(tablapalmiraHR)]
pie3D(table(categHR$PALMIRA), radius=1.5,
main="Palmira (tipo de HR)",
labels=names(tablapalmiraHR), labelcex=0.6,
explode=0.1,
col = mis_colores11,
border = "white")
legend("topright", legend = etiquetas, fill = mis_colores11, border = "white", cex = 0.6)
tablabarraganHR= table(categHR$BARRAGAN)
porcentajes <- round(100 * prop.table(tablabarraganHR), 1)
etiquetas <- paste(names(tablabarraganHR), "-", porcentajes, "%")
mis_colores22 <- colores_categorias2[names(tablabarraganHR)]
pie3D(table(categHR$BARRAGAN), radius=1.5,
main="Barragán (tipo de HR)",
labels=names(tablabarraganHR), labelcex=0.6,
explode=0.1,
col = mis_colores22,
border = "white")
legend("topright", legend = etiquetas, fill = mis_colores22, border = "white", cex = 0.6)
tablasanmarcosHR= table(categHR$`SAN MARCOS`)
porcentajes <- round(100 * prop.table(tablasanmarcosHR), 1)
etiquetas <- paste(names(tablasanmarcosHR), "-", porcentajes, "%")
mis_colores33 <- colores_categorias2[names(tablasanmarcosHR)]
pie3D(table(categHR$`SAN MARCOS`), radius=1.5,
main="San Marcos (tipo de HR)",
labels=names(tablasanmarcosHR), labelcex=0.6,
explode=0.1,
col = mis_colores33,
border = "white")
legend("topright", legend = etiquetas, fill = mis_colores33, border = "white", cex = 0.6)
tablamateguaduaHR= table(categHR$MATEGUADUA)
porcentajes <- round(100 * prop.table(tablamateguaduaHR), 1)
etiquetas <- paste(names(tablamateguaduaHR), "-", porcentajes, "%")
mis_colores44 <- colores_categorias2[names(tablamateguaduaHR)]
pie3D(table(categHR$MATEGUADUA), radius=1.5,
main="Mateguadua (tipo de HR)",
labels=names(tablamateguaduaHR), labelcex=0.6,
explode=0.1,
col = mis_colores44,
border = "white")
legend("topright", legend = etiquetas, fill = mis_colores44, border = "white", cex = 0.6)
tablacumbarcoHR= table(categHR$CUMBARCO)
porcentajes <- round(100 * prop.table(tablacumbarcoHR), 1)
etiquetas <- paste(names(tablacumbarcoHR), "-", porcentajes, "%")
mis_colores55 <- colores_categorias2[names(tablacumbarcoHR)]
pie3D(table(categHR$CUMBARCO), radius=1.5,
main="Cumbarco (tipo de HR)",
labels=names(tablacumbarcoHR), labelcex=0.6,
explode=0.1,
col = mis_colores55,
border = "white")
legend("topright", legend = etiquetas, fill = mis_colores55, border = "white", cex = 0.6)
El análisis de los diagramas circulares de clasificación térmica para las diferentes estaciones representativas del Valle del Cauca evidencia contrastes importantes en la distribución de los tipos de temperatura. En Palmira, San Marcos y Mateguadua predomina de manera marcada el clima templado, con más del 95 % de ocurrencia y una pequeña proporción de cálido que no supera el 4 %, lo que indica condiciones mayormente moderadas con ligeras incursiones de temperaturas altas. En el caso de Cumbarco, aunque el clima templado es el dominante con más del 90 %, se observa una fracción cercana al 10 % de clima frío, lo que refleja la influencia de factores de altitud intermedia. Por otro lado, Barragán se diferencia claramente del resto de estaciones al registrar únicamente climas fríos y muy fríos, con un reparto casi equitativo entre ambas categorías, lo que corresponde a su ubicación en una zona de mayor altitud.
En cuanto a la humedad relativa, se observa una clasificación más variada en cada una de las estaciones. En Palmira predomina de manera contundente la categoría de poco húmedo con un 94,1 %, mientras que el nivel de húmedo apenas alcanza el 5,9 %, lo que indica condiciones generalmente secas en comparación con el resto de estaciones. En las estaciones de San Marcos, Barragán y Mateguadua se presenta una distribución con el mayor porcentaje entre húmedo y poco húmedo, lo que guarda una similitud entre estas dos zonas, lo que refleja una mayor diversidad en los estados de humedad, característica de climas de montaña. En contraste Cumbarco se destaca como la estación más húmeda, con un 81,8 % de registros en categoría húmeda, 5 % en muy húmeda y apenas 13,3 % poco húmedo, lo que la convierte en la estación de mayor saturación de humedad relativa en el conjunto analizado.
#TEMPERATURA - CÓRDOBA
par(mfrow=c(2,3))
colores_categorias <- c(
"Cálido" = "gold",
"Templado" = "olivedrab2",
"Frío" = "skyblue",
"Muy frío" = "blue2")
tablaturipana= table(categT$TURIPANA)
porcentajes <- round(100 * prop.table(tablaturipana), 1)
etiquetas <- paste(names(tablaturipana), "-", porcentajes, "%")
mis_colores <- colores_categorias[names(tablaturipana)]
pie3D(table(categT$TURIPANA), radius=1.5,
main="Turipaná (tipo de T)",
labels=names(tablaturipana), labelcex=1,
explode=0.1,
col = mis_colores,
border = "white")
legend("topright", legend = etiquetas, fill = mis_colores, border = "white", cex = 0.6)
tablaplanric= table(categT$`PLANETA RICA`)
porcentajes <- round(100 * prop.table(tablaplanric), 1)
etiquetas <- paste(names(tablaplanric), "-", porcentajes, "%")
mis_colores2 <- colores_categorias[names(tablaplanric)]
pie3D(table(categT$`PLANETA RICA`), radius=1.5,
main="Planeta Rica (tipo de T)",
labels=names(tablaplanric), labelcex=1,
explode=0.1,
col = mis_colores2,
border = "white")
legend("topright", legend = etiquetas, fill = mis_colores2, border = "white", cex = 0.6)
tablamaracayo= table(categT$MARACAYO)
porcentajes <- round(100 * prop.table(tablamaracayo), 1)
etiquetas <- paste(names(tablamaracayo), "-", porcentajes, "%")
mis_colores3 <- colores_categorias[names(tablamaracayo)]
pie3D(table(categT$MARACAYO), radius=1.5,
main="Maracayo (tipo de T)",
labels=names(tablamaracayo), labelcex=1,
explode=0.1,
col = mis_colores3,
border = "white")
legend("topright", legend = etiquetas, fill = mis_colores3, border = "white", cex = 0.6)
tablaelsalado= table(categT$`EL SALADO`)
porcentajes <- round(100 * prop.table(tablaelsalado), 1)
etiquetas <- paste(names(tablaelsalado), "-", porcentajes, "%")
mis_colores4 <- colores_categorias[names(tablaelsalado)]
pie3D(table(categT$`EL SALADO`), radius=1.5,
main="El Salado (tipo de T)",
labels=names(tablaelsalado), labelcex=1,
explode=0.1,
col = mis_colores4,
border = "white")
legend("topright", legend = etiquetas, fill = mis_colores4, border = "white", cex = 0.6)
tablacolomboy= table(categT$COLOMBOY)
porcentajes <- round(100 * prop.table(tablacolomboy), 1)
etiquetas <- paste(names(tablacolomboy), "-", porcentajes, "%")
mis_colores5 <- colores_categorias[names(tablacolomboy)]
pie3D(table(categT$COLOMBOY), radius=1.5,
main="Colomboy (tipo de T)",
labels=names(tablacolomboy), labelcex=1,
explode=0.1,
col = mis_colores5,
border = "white")
legend("topright", legend = etiquetas, fill = mis_colores5, border = "white", cex = 0.6)
#HUMEDAD RELATIVA - CÓRDOBA
par(mfrow=c(2,3))
colores_categorias2 <- c(
"Muy baja humedad" = "tomato",
"Poco húmedo" = "gold",
"Húmedo" = "skyblue",
"Muy húmedo" = "blue2")
tablaturipanaHR= table(categHR$TURIPANA)
porcentajes <- round(100 * prop.table(tablaturipanaHR), 1)
etiquetas <- paste(names(tablaturipanaHR), "-", porcentajes, "%")
mis_colores11 <- colores_categorias2[names(tablaturipanaHR)]
pie3D(table(categHR$TURIPANA), radius=1.5,
main="Turipaná (tipo de HR)",
labels=names(tablaturipanaHR), labelcex=0.6,
explode=0.1,
col = mis_colores11,
border = "white")
legend("topright", legend = etiquetas, fill = mis_colores11, border = "white", cex = 0.6)
tablaplanricHR= table(categHR$`PLANETA RICA`)
porcentajes <- round(100 * prop.table(tablaplanricHR), 1)
etiquetas <- paste(names(tablaplanricHR), "-", porcentajes, "%")
mis_colores22 <- colores_categorias2[names(tablaplanricHR)]
pie3D(table(categHR$`PLANETA RICA`), radius=1.5,
main="Planeta Rica (tipo de HR)",
labels=names(tablaplanricHR), labelcex=0.6,
explode=0.1,
col = mis_colores22,
border = "white")
legend("topright", legend = etiquetas, fill = mis_colores22, border = "white", cex = 0.6)
tablamaracayoHR= table(categHR$MARACAYO)
porcentajes <- round(100 * prop.table(tablamaracayoHR), 1)
etiquetas <- paste(names(tablamaracayoHR), "-", porcentajes, "%")
mis_colores33 <- colores_categorias2[names(tablamaracayoHR)]
pie3D(table(categHR$MARACAYO), radius=1.5,
main="Maracayo (tipo de HR)",
labels=names(tablamaracayoHR), labelcex=0.6,
explode=0.1,
col = mis_colores33,
border = "white")
legend("topright", legend = etiquetas, fill = mis_colores33, border = "white", cex = 0.6)
tablaelsaladoHR= table(categHR$`EL SALADO`)
porcentajes <- round(100 * prop.table(tablaelsaladoHR), 1)
etiquetas <- paste(names(tablaelsaladoHR), "-", porcentajes, "%")
mis_colores44 <- colores_categorias2[names(tablaelsaladoHR)]
pie3D(table(categHR$`EL SALADO`), radius=1.5,
main="El Salado (tipo de HR)",
labels=names(tablaelsaladoHR), labelcex=0.6,
explode=0.1,
col = mis_colores44,
border = "white")
legend("topright", legend = etiquetas, fill = mis_colores44, border = "white", cex = 0.6)
tablacolomboyHR= table(categHR$COLOMBOY)
porcentajes <- round(100 * prop.table(tablacolomboyHR), 1)
etiquetas <- paste(names(tablacolomboyHR), "-", porcentajes, "%")
mis_colores55 <- colores_categorias2[names(tablacolomboyHR)]
pie3D(table(categHR$COLOMBOY), radius=1.5,
main="Colomboy (tipo de HR)",
labels=names(tablacolomboyHR), labelcex=0.6,
explode=0.1,
col = mis_colores55,
border = "white")
legend("topright", legend = etiquetas, fill = mis_colores55, border = "white", cex = 0.6)
En en el departamento de Córdoba se observa para las cinco estaciones que las temperaturas medias predominantes son cálidas, lo cual corresponde con el tipo de clima que se registra en el departamento, teniendo el 100% de ocurrencia en las cinco estaciones durante todo el periodo.
En cuanto a la humedad relativa, se observa que para las cinco estaciones el mayor porcentaje de ocurrencia corresponde a un entorno húmedo, oscilando entre el 54.7% y el 85% entre las cinco zonas representativas. La estación con mayor porcentaje de humedad es Maracayo, lo cual se relaciona con la presencia de humedales y la presencia de la ciénaga de Betancí. En general, podemos asociar que esta zona al ser cálida, presenta altos niveles de evaporación lo que genera un contenido de humedad alto en la atmósfera.
#TEMPERATURA - BOLIVAR1
par(mfrow=c(2,2))
colores_categorias <- c(
"Cálido" = "gold",
"Templado" = "olivedrab2",
"Frío" = "skyblue",
"Muy frío" = "blue2")
tablaaerbarac= table(categT$`AEROPUERTO BARACOA`)
porcentajes <- round(100 * prop.table(tablaaerbarac), 1)
etiquetas <- paste(names(tablaaerbarac), "-", porcentajes, "%")
mis_colores <- colores_categorias[names(tablaaerbarac)]
pie3D(table(categT$`AEROPUERTO BARACOA`), radius=1.5,
main="Aeropuerto Baracoa (tipo de T)",
labels=names(tablaaerbarac), labelcex=1,
explode=0.1,
col = mis_colores,
border = "white")
legend("topright", legend = etiquetas, fill = mis_colores, border = "white", cex = 0.6)
tablaaerrafnu= table(categT$`AEROPUERTO RAFAEL NUNEZ`)
porcentajes <- round(100 * prop.table(tablaaerrafnu), 1)
etiquetas <- paste(names(tablaaerrafnu), "-", porcentajes, "%")
mis_colores2 <- colores_categorias[names(tablaaerrafnu)]
pie3D(table(categT$`PLANETA RICA`), radius=1.5,
main="Aeropuerto Rafael Nuñez (tipo de T)",
labels=names(tablaaerrafnu), labelcex=1,
explode=0.1,
col = mis_colores2,
border = "white")
legend("topright", legend = etiquetas, fill = mis_colores2, border = "white", cex = 0.6)
tablacarmbol= table(categT$`CARMEN DE BOLIVAR`)
porcentajes <- round(100 * prop.table(tablacarmbol), 1)
etiquetas <- paste(names(tablacarmbol), "-", porcentajes, "%")
mis_colores3 <- colores_categorias[names(tablacarmbol)]
pie3D(table(categT$`CARMEN DE BOLIVAR`), radius=1.5,
main="Carmen de Bolívar (tipo de T)",
labels=names(tablacarmbol), labelcex=1,
explode=0.1,
col = mis_colores3,
border = "white")
legend("topright", legend = etiquetas, fill = mis_colores3, border = "white", cex = 0.6)
tablacolcoop= table(categT$`COLEGIO COOPERATIVO`)
porcentajes <- round(100 * prop.table(tablacolcoop), 1)
etiquetas <- paste(names(tablacolcoop), "-", porcentajes, "%")
mis_colores4 <- colores_categorias[names(tablacolcoop)]
pie3D(table(categT$`COLEGIO COOPERATIVO`), radius=1.5,
main="Colegio Cooperativo (tipo de T)",
labels=names(tablacolcoop), labelcex=1,
explode=0.1,
col = mis_colores4,
border = "white")
legend("topright", legend = etiquetas, fill = mis_colores4, border = "white", cex = 0.6)
#TEMPERATURA - BOLIVAR2
par(mfrow=c(2,2))
colores_categorias <- c(
"Cálido" = "gold",
"Templado" = "olivedrab2",
"Frío" = "skyblue",
"Muy frío" = "blue2")
tablaelguamo= table(categT$`EL GUAMO`)
porcentajes <- round(100 * prop.table(tablaelguamo), 1)
etiquetas <- paste(names(tablaelguamo), "-", porcentajes, "%")
mis_colores <- colores_categorias[names(tablaelguamo)]
pie3D(table(categT$`EL GUAMO`), radius=1.5,
main="El Guamo (tipo de T)",
labels=names(tablaelguamo), labelcex=1,
explode=0.1,
col = mis_colores,
border = "white")
legend("topright", legend = etiquetas, fill = mis_colores, border = "white", cex = 0.6)
tablanuevaflor= table(categT$`NUEVA FLORIDA`)
porcentajes <- round(100 * prop.table(tablanuevaflor), 1)
etiquetas <- paste(names(tablanuevaflor), "-", porcentajes, "%")
mis_colores2 <- colores_categorias[names(tablanuevaflor)]
pie3D(table(categT$`NUEVA FLORIDA`), radius=1.5,
main="Nueva Florida (tipo de T)",
labels=names(tablanuevaflor), labelcex=1,
explode=0.1,
col = mis_colores2,
border = "white")
legend("topright", legend = etiquetas, fill = mis_colores2, border = "white", cex = 0.6)
tablasanpablo= table(categT$`SAN PABLO`)
porcentajes <- round(100 * prop.table(tablasanpablo), 1)
etiquetas <- paste(names(tablasanpablo), "-", porcentajes, "%")
mis_colores3 <- colores_categorias[names(tablasanpablo)]
pie3D(table(categT$`SAN PABLO`), radius=1.5,
main="San Pablo (tipo de T)",
labels=names(tablasanpablo), labelcex=1,
explode=0.1,
col = mis_colores3,
border = "white")
legend("topright", legend = etiquetas, fill = mis_colores3, border = "white", cex = 0.6)
tablasincerin= table(categT$SINCERIN)
porcentajes <- round(100 * prop.table(tablasincerin), 1)
etiquetas <- paste(names(tablasincerin), "-", porcentajes, "%")
mis_colores4 <- colores_categorias[names(tablasincerin)]
pie3D(table(categT$SINCERIN), radius=1.5,
main="Sincerín (tipo de T)",
labels=names(tablasincerin), labelcex=1,
explode=0.1,
col = mis_colores4,
border = "white")
legend("topright", legend = etiquetas, fill = mis_colores4, border = "white", cex = 0.6)
#HUMEDAD RELATIVA - BOLIVAR 1
par(mfrow=c(2,2))
colores_categorias <- c(
"Muy baja humedad" = "tomato",
"Poco húmedo" = "gold",
"Húmedo" = "skyblue",
"Muy húmedo" = "blue2")
tablaaerbaracHR= table(categHR$`AEROPUERTO BARACOA`)
porcentajes <- round(100 * prop.table(tablaaerbaracHR), 1)
etiquetas <- paste(names(tablaaerbaracHR), "-", porcentajes, "%")
mis_colores <- colores_categorias[names(tablaaerbaracHR)]
pie3D(table(categHR$`AEROPUERTO BARACOA`), radius=1.5,
main="Aeropuerto Baracoa (tipo de HR)",
labels=names(tablaaerbaracHR), labelcex=1,
explode=0.1,
col = mis_colores,
border = "white")
legend("topright", legend = etiquetas, fill = mis_colores, border = "white", cex = 0.5)
tablaaerrafnuHR= table(categHR$`AEROPUERTO RAFAEL NUNEZ`)
porcentajes <- round(100 * prop.table(tablaaerrafnuHR), 1)
etiquetas <- paste(names(tablaaerrafnuHR), "-", porcentajes, "%")
mis_colores2 <- colores_categorias[names(tablaaerrafnuHR)]
pie3D(table(categHR$`AEROPUERTO RAFAEL NUNEZ`), radius=1.5,
main="Aeropuerto Rafael Nuñez (tipo de HR)",
labels=names(tablaaerrafnuHR), labelcex=1,
explode=0.1,
col = mis_colores2,
border = "white")
legend("topright", legend = etiquetas, fill = mis_colores2, border = "white", cex = 0.5)
tablacarmbolHR= table(categHR$`CARMEN DE BOLIVAR`)
porcentajes <- round(100 * prop.table(tablacarmbolHR), 1)
etiquetas <- paste(names(tablacarmbolHR), "-", porcentajes, "%")
mis_colores3 <- colores_categorias[names(tablacarmbolHR)]
pie3D(table(categHR$`CARMEN DE BOLIVAR`), radius=1.5,
main="Carmen de Bolívar (tipo de HR)",
labels=names(tablacarmbolHR), labelcex=1,
explode=0.1,
col = mis_colores3,
border = "white")
legend("topright", legend = etiquetas, fill = mis_colores3, border = "white", cex = 0.4)
tablacolcoopHR= table(categHR$`COLEGIO COOPERATIVO`)
porcentajes <- round(100 * prop.table(tablacolcoopHR), 1)
etiquetas <- paste(names(tablacolcoopHR), "-", porcentajes, "%")
mis_colores4 <- colores_categorias[names(tablacolcoopHR)]
pie3D(table(categHR$`COLEGIO COOPERATIVO`), radius=1.5,
main="Colegio Cooperativo (tipo de HR)",
labels=names(tablacolcoopHR), labelcex=1,
explode=0.1,
col = mis_colores4,
border = "white")
legend("topright", legend = etiquetas, fill = mis_colores4, border = "white", cex = 0.4)
#HUMEDAD RELATIVA - BOLIVAR2
par(mfrow=c(2,2))
colores_categorias <- c(
"Muy baja humedad" = "tomato",
"Poco húmedo" = "gold",
"Húmedo" = "skyblue",
"Muy húmedo" = "blue2")
tablaelguamoHR= table(categHR$`EL GUAMO`)
porcentajes <- round(100 * prop.table(tablaelguamoHR), 1)
etiquetas <- paste(names(tablaelguamoHR), "-", porcentajes, "%")
mis_colores <- colores_categorias[names(tablaelguamoHR)]
pie3D(table(categHR$`EL GUAMO`), radius=1.5,
main="El Guamo (tipo de HR)",
labels=names(tablaelguamoHR), labelcex=1,
explode=0.1,
col = mis_colores,
border = "white")
legend("topright", legend = etiquetas, fill = mis_colores, border = "white", cex = 0.4)
tablanuevaflorHR= table(categHR$`NUEVA FLORIDA`)
porcentajes <- round(100 * prop.table(tablanuevaflorHR), 1)
etiquetas <- paste(names(tablanuevaflorHR), "-", porcentajes, "%")
mis_colores2 <- colores_categorias[names(tablanuevaflorHR)]
pie3D(table(categHR$`NUEVA FLORIDA`), radius=1.5,
main="Nueva Florida (tipo de HR)",
labels=names(tablanuevaflorHR), labelcex=1,
explode=0.1,
col = mis_colores2,
border = "white")
legend("topright", legend = etiquetas, fill = mis_colores2, border = "white", cex = 0.5)
tablasanpabloHR= table(categHR$`SAN PABLO`)
porcentajes <- round(100 * prop.table(tablasanpabloHR), 1)
etiquetas <- paste(names(tablasanpabloHR), "-", porcentajes, "%")
mis_colores3 <- colores_categorias[names(tablasanpabloHR)]
pie3D(table(categHR$`SAN PABLO`), radius=1.5,
main="San Pablo (tipo de HR)",
labels=names(tablasanpabloHR), labelcex=1,
explode=0.1,
col = mis_colores3,
border = "white")
legend("topright", legend = etiquetas, fill = mis_colores3, border = "white", cex = 0.5)
tablasincerinHR= table(categHR$SINCERIN)
porcentajes <- round(100 * prop.table(tablasincerinHR), 1)
etiquetas <- paste(names(tablasincerinHR), "-", porcentajes, "%")
mis_colores4 <- colores_categorias[names(tablasincerinHR)]
pie3D(table(categHR$SINCERIN), radius=1.5,
main="Sincerín (tipo de HR)",
labels=names(tablasincerinHR), labelcex=1,
explode=0.1,
col = mis_colores4,
border = "white")
legend("topright", legend = etiquetas, fill = mis_colores4, border = "white", cex = 0.5)
Para el departamento de Bolívar se observa que en las 8 estaciones seleccionadas el tipo de temperatura que se presenta al 100% es cálida, lo cual corresponde al tipo de clima del departamento (cálido). Esto implica que el clima de la región es uniforme y hay poca variación de temperatura a través del tiempo.
Finalmente, para la humedad relativa se presenta en mayor porcentaje unas condiciones de poca humedad para todas las estaciones, oscilando entre el 81.5 y 99.8% de ocurrencia. Esto puede estar relacionado con el hecho de que estas zonas se encuentran bajo la influencia de clima costero, por lo que la circulación del viento puede ser un factor que determina la humedad contenida en el ambiente.
#TOTAL DE T
par(mfrow=c(1,1))
colores_categoriasT <- c(
"Cálido" = "gold",
"Templado" = "olivedrab2",
"Frío" = "skyblue",
"Muy frío" = "blue2")
niveles_temp <- c("Cálido", "Templado", "Frío", "Muy frío")
tabla_total= table(factor(unlist(categT), levels = niveles_temp))
porcentajes <- round(100 * prop.table(tabla_total), 1)
etiquetas <- paste(names(tabla_total), "-", porcentajes, "%")
mis_colores <- colores_categoriasT[names(tabla_total)]
pie3D(tabla_total, radius=1.5,
main="Temperatura (categoría)",
labels=names(tabla_total), labelcex=1,
explode=0.1,
col = mis_colores,
border = "white")
legend("topright", legend = etiquetas, fill = mis_colores, border = "white", cex = 0.4)
De manera general, para la variable temperatura se presente en mayor porcentaje condiciones cálidas (72.6%), esto se relaciona con el hecho de seleccionar dos departamento de zonas con baja altitud y de clima cálido y sólo una estación ubicada a mayor altitud, por lo que el porcentaje de temperaturas templadas también tiene un porcentaje considerable en el diagrama circular del 21.3% y bajos porcentajes entre frío y muy frío que se presenta en algunas estaciones del Valle del Cauca. Con esto podríamos mencionar que al utilizar estaciones de diferentes altitudes, se esperaría una distribución más equilibrada entre las cuatro categorías.
#TOTAL DE HR
par(mfrow=c(1,1))
colores_categoriasHR <- c(
"Muy baja humedad" = "tomato",
"Poco húmedo" = "gold",
"Húmedo" = "skyblue",
"Muy húmedo" = "blue2")
niveles_temp <- c("Muy baja humedad", "Poco húmedo", "Húmedo", "Muy húmedo")
tabla_totalHR= table(factor(unlist(categHR), levels = niveles_temp))
porcentajes <- round(100 * prop.table(tabla_totalHR), 1)
etiquetas <- paste(names(tabla_totalHR), "-", porcentajes, "%")
mis_colores <- colores_categoriasHR[names(tabla_totalHR)]
pie3D(tabla_totalHR, radius=1.5,
main="Humedad relativa (categoría)",
labels=names(tabla_totalHR), labelcex=1,
explode=0.1,
col = mis_colores,
border = "white")
legend("topright", legend = etiquetas, fill = mis_colores, border = "white", cex = 0.35)
Para el análisis categórico general de la humedad relativa se obtuvo una mayor ocurrencia de condiciones poco húmedas relacionadas con el clima de Bolívar y en parte de Córdoba, lo cual también se relaciona con el tipo de zonas escogidas para el análisis. Se presenta un 34% de condiciones húmedad, las cuales se relacionan con el clima de Córdoba y Valle del Cauca.
#TABLAS CRUZADAS T
datos_temp <- stack(temperatura)
## Warning in stack.data.frame(temperatura): non-vector columns will be ignored
datos_cat <- stack(categT)
## Warning in stack.data.frame(categT): non-vector columns will be ignored
all.equal(datos_temp$ind, datos_cat$ind)
## [1] "Attributes: < Component \"levels\": 2 string mismatches >"
## [2] "888 string mismatches"
TablaCruzada <- table(Estacion = datos_temp$ind,
Categoria = datos_cat$values)
TablaCruzada
## Categoria
## Estacion Cálido Frío Muy frío Templado
## PALMIRA 17 0 0 427
## BARRAGAN 0 209 235 0
## SAN MARCOS 9 0 0 435
## MATEGUADUA 6 0 0 438
## CUMBARCO 0 44 0 400
## TURIPANA 444 0 0 0
## PLANETA RICA 444 0 0 0
## MARACAYO 444 0 0 0
## EL SALADO 444 0 0 0
## COLOMBOY 444 0 0 0
## AEPTO BARACOA 444 0 0 0
## AEPTO RAFAEL NUNEZ 444 0 0 0
## CARMEN DE BOLIVAR 444 0 0 0
## COLEGIO COOPERATIVO 444 0 0 0
## EL GUAMO 444 0 0 0
## NUEVA FLORIDA 444 0 0 0
## SAN PABLO 444 0 0 0
## SINCERIN 444 0 0 0
colores_categoriasT <- c(
"Cálido" = "gold",
"Templado" = "olivedrab2",
"Frío" = "skyblue",
"Muy frío" = "blue2")
TablaCruzada_propFilas=prop.table(TablaCruzada, margin = 1)
TablaCruzada_propColumnas=prop.table(TablaCruzada, margin = 2)
TablaCruzada100 <- addmargins(TablaCruzada * 100)
par(mfrow = c(1, 2))
totales_por_categoria <- colSums(TablaCruzada)
mis_colores <- colores_categoriasT[names(totales_por_categoria)]
barplot(totales_por_categoria, col = mis_colores, ylim= c(0,6000), main="Temperatura (categorías)", cex.names = 0.5)
par(mfrow = c(1, 2))
#TABLAS CRUZADAS HR
datos_humd <- stack(humedad)
## Warning in stack.data.frame(humedad): non-vector columns will be ignored
datos_cathr <- stack(categHR)
## Warning in stack.data.frame(categHR): non-vector columns will be ignored
all.equal(datos_humd$ind, datos_cathr$ind)
## [1] "Attributes: < Component \"levels\": 2 string mismatches >"
## [2] "888 string mismatches"
TablaCruzada2 <- table(Estacion = datos_humd$ind,
Categoria = datos_cathr$values)
TablaCruzada2
## Categoria
## Estacion Húmedo Muy baja humedad Muy húmedo Poco húmedo
## PALMIRA 26 0 0 418
## BARRAGAN 215 3 21 205
## SAN MARCOS 161 0 8 275
## MATEGUADUA 270 0 4 170
## CUMBARCO 363 0 22 59
## TURIPANA 288 0 0 156
## PLANETA RICA 243 0 0 201
## MARACAYO 378 0 32 34
## EL SALADO 325 0 17 102
## COLOMBOY 262 0 0 182
## AEPTO BARACOA 35 0 0 409
## AEPTO RAFAEL NUNEZ 82 0 0 362
## CARMEN DE BOLIVAR 8 3 0 433
## COLEGIO COOPERATIVO 13 5 0 426
## EL GUAMO 1 4 0 439
## NUEVA FLORIDA 2 0 0 442
## SAN PABLO 1 0 0 443
## SINCERIN 44 0 0 400
colores_categoriasHR <- c(
"Muy baja humedad" = "tomato",
"Poco húmedo" = "gold",
"Húmedo" = "skyblue",
"Muy húmedo" = "blue2")
TablaCruzada_propFilas=prop.table(TablaCruzada, margin = 1)
TablaCruzada_propColumnas=prop.table(TablaCruzada, margin = 2)
TablaCruzada100 <- addmargins(TablaCruzada * 100)
par(mfrow = c(1, 2))
totales_por_categoria2 <- colSums(TablaCruzada2)
mis_colores <- colores_categoriasHR[names(totales_por_categoria2)]
barplot(totales_por_categoria2, col = mis_colores, ylim= c(0,6000), main="Humedad relativa (categorías)", cex.names = 0.4)
par(mfrow = c(1, 2))
Para el análisis de las tablas cruzadas para temperatura y humedad relativa de todas las estaciones seleccionadas, se observa una correspondencia con el análisis de diagramas circulares. Para el caso de la temperatura, la mayor frecuencia en los datos corresponde a las condiciones cálidas, relacionadas con las estaciones de Bolívar y Córdoba, caracterizadas por este tipo de clima, los cual también se observa en la tabla generada, donde la frecuencia de los datos corresponde a temperatura cálida al 100% en 13 de las 18 estaciones seleccionadas. Los tipos de temperaturas más variados se presentan en las estaciones seleccionadas para el análisis del departamento del Valle del Cauca.
En cuanto a la variable humedad relativa, las mayores frecuencias se distribuyen entre condiciones húmedas y poco húmedas, lo cual está distribuido de manera menos uniforme en los datos, como se observa en la tabla generada. Con esto podemos decir que la variable humedad relativa tiene un comportamiento más variable que la temperatura, al depender de otros factores mencionados en los análisis realizados anteriormente.
#TABLA CRUZADA2 T TOTAL
colores_categoriasT <- c(
"Cálido" = "gold",
"Templado" = "olivedrab2",
"Frío" = "skyblue",
"Muy frío" = "blue2")
mosaicplot(TablaCruzada,
main = "Mosaico: frecuencias absolutas (Temperatura)",
color = colores_categoriasT[colnames(TablaCruzada)],
las = 2, # etiquetas verticales
cex.axis = 0.35) # tamaño de letra eje
TablaCruzada_propFilas <- prop.table(TablaCruzada, margin = 1)
#TABLA CRUZADA2 HR TOTAL
colores_categoriasHR <- c(
"Muy baja humedad" = "tomato",
"Poco húmedo" = "gold",
"Húmedo" = "skyblue",
"Muy húmedo" = "blue2")
mosaicplot(TablaCruzada2,
main = "Mosaico: frecuencias absolutas",
color = colores_categoriasHR[colnames(TablaCruzada2)],
las = 2, # etiquetas verticales
cex.axis = 0.35) # tamaño de letra eje
TablaCruzada2_propFilas <- prop.table(TablaCruzada2, margin = 1)
Lo analizado anteriormente para las categorías de temperatura y humedad también se observa en los dos últimos gráficos de frecuencias absolutas, aquí podemos discernir para cada estación cómo se distribuyen los tipos de temperatura y humedad, si queremos realizar un análisis particular para cada categoría por estación. Por ejemplo, si queremos analizar para la estación Cumbarco la ocurrencia de temperatura “Frío”, podemos observar que su ocurrencia es menor respecto a temperatura “Templada”, pero mayor respecto a temperatuas “Cálida” y “Muy frío”. Lo mismo se puede realizar en cuanto a la humedad relativa, tomando el ejemplo de la estación Colegio Cooperativo, donde observamos una mayor ocurrencia de condiciones poco húmedas, seguidas de condiciones húmedas, muy baja humedad y sin ninguna ocurrencia de condiciones muy húmedas.
Ahora revisamos los primeros estadisticos descriptivos univariados por estación. En primer lugar la temperatura:
medidas = c("Media", "Mínimo", "Máximo", "Rango", "Varianza", "Desviación estandar", "CV.", "MDA")
descriptivos_temperatura = data.frame(Medidas=medidas)
for (estacion in colnames(temperatura)){
if (estacion != "FECHA"){
datos_estacion = temperatura[[estacion]]
valores = c(
mean(datos_estacion),
min(datos_estacion),
max(datos_estacion),
max(datos_estacion)-min(datos_estacion),
var(datos_estacion),
sd(datos_estacion),
(100*sd(datos_estacion)/mean(datos_estacion)),
mad(datos_estacion)
)
descriptivos_temperatura[[estacion]]=valores
}
}
descriptivos_temperatura_str=format(descriptivos_temperatura, digits=2, nsmall=2)
descriptivos_temperatura_str=t(descriptivos_temperatura_str)
descriptivos_temperatura_str <- as.data.frame(descriptivos_temperatura_str)
colnames(descriptivos_temperatura_str) = descriptivos_temperatura_str[1, ]
descriptivos_temperatura_str <- descriptivos_temperatura_str[-1, ]
descriptivos_temperatura_str <- tibble::rownames_to_column(descriptivos_temperatura_str, "Estacion")
datatable(descriptivos_temperatura_str,
options = list(pageLength = 20, searching=F),
caption = "Estadísticos descriptivos de la temperatura")
Como se puede observar a grosso modo en la anterior tabla, la media de las temperaturas medias mensuales registradas en las diferentes estaciones oscila entre 27ºC a 28ºC a excepción de 5 estaciones, las cuales son: Barragán, Cumbarco, Mateguadua, San Marcos y Palmira.
La estación con mayor temperatura media mensual es Colegio Cooperativo en Bolívar. Mientras que Barragán en el departamento de Valle del Cauca es la que menor temperatura media mensual registró. Por otro lado, la variación en los datos registrados, evaluada en la desviación estándar, muestra que los valores son menores a 1ºC en todas las estaciones, es decir, en la mayoría de los casos la temperatura se aleja en más o menos 1ºC del valor promedio. Se puede resaltar a estaciones como Colomboy, Maracayo y Sincerín debido a su relativa baja variabilidad en temperatura media mensual.
Se conoce que por las condiciones atmosoféricas ecuatoriales, la temperatura en estas latitudes depende casi por completo de la presión y esta última depende de la altura sobre el nivel del mar. Es por ello que estaciones con baja temperatura se encuentren en zonas altas del país. Asimismo, es lógico observar los patrones de baja variabilidad en la temperatura media mensual anteriormente descritos.
En relación a lo anterior y por la forma en que se construye el Coeficiente de Variación (CV), se identifican altos valores de CV en las estaciones de Barragán, Cumbarco y Mateguadua dado que la desviación estandar es cuasi-similar entre todas las estaciones más no el promedio
Además, por la naturaleza de los datos, que son promedios mensuales de la temperatura, no es probable encontrarse con datos atípicos, así que comparando entre estaciones la Mediana de las Desviaciones Absolutas (MDA) y la desviación estandar tienen un comportamiento similar a pesar de la influencia que tienen dichos valores atípicos en la desviación estandar y no en la MDA.
Ahora revisamos los estadísticos univariados descriptivos por estación de la humedad relativa media mensual:
descriptivos_humedad = data.frame(Medidas=medidas)
for (estacion in colnames(humedad)){
if (estacion != "FECHA"){
datos_estacion = humedad[[estacion]]
valores = c(
mean(datos_estacion),
min(datos_estacion),
max(datos_estacion),
max(datos_estacion)-min(datos_estacion),
var(datos_estacion),
sd(datos_estacion),
(100*sd(datos_estacion)/mean(datos_estacion)),
mad(datos_estacion)
)
descriptivos_humedad[[estacion]]=valores
}
}
descriptivos_humedad_str=format(descriptivos_humedad, digits=2, nsmall=2)
descriptivos_humedad_str=t(descriptivos_humedad_str)
descriptivos_humedad_str <- as.data.frame(descriptivos_humedad_str)
colnames(descriptivos_humedad_str) = descriptivos_humedad_str[1, ]
descriptivos_humedad_str <- descriptivos_humedad_str[-1, ]
descriptivos_humedad_str <- tibble::rownames_to_column(descriptivos_humedad_str, "Estacion")
datatable(descriptivos_humedad_str,
options = list(pageLength = 20, searching=F),
caption = "Estadísticos descriptivos de la humedad relativa")
En primer lugar, se puede identificar que la media de la humedad relativa media mensual en las diferentes estaciones oscila entre 69% y 84% sin una tendencia de agrupación hacia algún valor. La estacion de Cumbarco en Valle del Cauca es la que mayor media de humedad relativa media mensual tiene y El Guamo en Bolívar la que menor media posee.
Se puede observar que la variabilidad de la humedad relativa media en las estaciones no es tan homogénea como en la temperatura con valores que varían desde el 7% en Barragan (Valle del Cauca) hasta el 3% en Aeropuerto Rafael Nuñez (Bolívar).
Los patrones anteriormente descritos se deben a la dependencia de la humedad relativa con la temperatura, la evapotranspiración y la advección de humedad; los dos últimos fenómenos estan heterogéneamente distribuidos tanto espacial como temporalmente en el país.
Gracias a la adimensionalidad del CV se puede comparar y generalizar que la humedad relativa media mensual varía ligeramente más que la temperatura media mensual, este hecho también se relaciona a las dependencias anteriormente descritas.
Por su parte, la disimilitud del patrón entre la MDA y la desviación estandar en las diferentes estaciones indica que los valores atípicos son más comunes en la humedad relativa media mensual que en la temperatura media mensual.
Ahora procedemos a calcular algunas medidas posicionales de cada conjunto de datos. En primer lugar la temperatura:
medidas = c("Min", "Max", "Rango", "Q1", "Q2", "Q3", "IQR")
posicion_temperatura = data.frame(Medidas=medidas)
for (estacion in colnames(temperatura)){
if (estacion != "FECHA"){
datos_estacion = temperatura[[estacion]]
valores = c(
min(datos_estacion),
max(datos_estacion),
max(datos_estacion)-min(datos_estacion),
quantile(datos_estacion, probs = seq(0.25,0.75,by=0.25)),
IQR(datos_estacion)
)
posicion_temperatura[[estacion]]=valores
}
}
posicion_temperatura=format(posicion_temperatura, digits=2, nsmall=2)
posicion_temperatura=t(posicion_temperatura)
posicion_temperatura <- as.data.frame(posicion_temperatura)
colnames(posicion_temperatura) = posicion_temperatura[1, ]
posicion_temperatura <- posicion_temperatura[-1, ]
posicion_temperatura <- tibble::rownames_to_column(posicion_temperatura, "Estacion")
datatable(posicion_temperatura,
options = list(pageLength = 20, searching=F),
caption = "Medidas de posición de la temperatura")
Para interpretar eficazmente estos datos es apropiado construir gráficos del tipo Caja de bigotes ubicados de menor a mayor mediana de izquierda a derecha, como se verá a continuación.
temperatura_largo <- temperatura %>%
pivot_longer(cols = -FECHA, names_to = "estacion", values_to = "valor_temp")
ggplot(temperatura_largo, aes(x = fct_reorder(estacion, valor_temp, .fun = median), y = valor_temp, fill = estacion)) +
geom_boxplot(show.legend = FALSE) +
labs(
title = "Temperatura mensual por estación",
y = "Temperatura (°C)",
x = ""
) +
theme_minimal() +
theme(axis.text.x = element_text(
angle = 45,
hjust = 1,
size = 6
))
De la mano de la tabla y el gráfico anteriormente presentados, se observa lo que se describió con los primeros estadísticos descriptivos sobre la agrupación de la temperatura media mensual en las diferentes estaciones hacia los valores 27°C a 28°C.
Existen algunas particularidades que se identifican en el gráfico cómo que los valores máximos de temperatura se presentan en Carmen de Bolívar y Aeropuerto Baracoa aún cuando la media de la temperatura media mensual es mayor en Colegio Cooperativo. Por otro lado, la mediana de San Marcos y Palmira es idéntica, sin embargo el rango intercuartil de la primera se ubica hacia abajo (detrás de la mediana) y de la segunda hacia arriba (delante de la mediana).
En general, a partir del análisis visual se observa como la temperatura media mensual en la mayoría de estaciones es simétrica, es decir, la media es cercana a la mediana. No obstante, lo observado en estaciones como Barragán, Cumbarco, Mateguadua, Palmira y San Marcos indican una fuerte asimetría. Por otro lado, los valores atípicos parecen ubicarse homogéneamente hacia valores mayores y menores de la mediana en las diferentes estaciones.
Posteriormente, se procede a calcular los estadísticos de posición para la humedad relativa media mensual.
medidas = c("Min", "Max", "Rango", "Q1", "Q2", "Q3", "IQR")
posicion_humedad = data.frame(Medidas=medidas)
for (estacion in colnames(humedad)){
if (estacion != "FECHA"){
datos_estacion = humedad[[estacion]]
valores = c(
min(datos_estacion),
max(datos_estacion),
max(datos_estacion)-min(datos_estacion),
quantile(datos_estacion, probs = seq(0.25,0.75,by=0.25)),
IQR(datos_estacion)
)
posicion_humedad[[estacion]]=valores
}
}
posicion_humedad=format(posicion_humedad, digits=2, nsmall=2)
posicion_humedad=t(posicion_humedad)
posicion_humedad <- as.data.frame(posicion_humedad)
colnames(posicion_humedad) = posicion_humedad[1, ]
posicion_humedad <- posicion_humedad[-1, ]
posicion_humedad <- tibble::rownames_to_column(posicion_humedad, "Estacion")
datatable(posicion_humedad,
options = list(pageLength = 20, searching=F),
caption = "Medidas de posición de la humedad relativa")
De igual manera que con la temperatura, se continua con la graficación de la humedad relativa media mensual por estación en caja de bigotes ubicadas de menor a mayor mediana de izquierda a derecha.
humedad_largo <- humedad %>%
pivot_longer(cols = -FECHA, names_to = "estacion", values_to = "valor_temp")
ggplot(humedad_largo, aes(x = fct_reorder(estacion, valor_temp, .fun = median), y = valor_temp, fill = estacion)) +
geom_boxplot(show.legend = FALSE) +
labs(
title = "Humedad relativa mensual por estación",
y = "Humedad relativa (%)",
x = ""
) +
theme_minimal() +
theme(axis.text.x = element_text(
angle = 45,
hjust = 1,
size = 6
))
Del gráfico anterior se puede corroborar que la humedad se encuentra disgregada entre las estaciones, en contraparte a la tendencia agrupada de la temperatura. Se puede identificar que Cumbarco posee los mayores valores de media y de mediana, mientras que El Guamo tiene la menor media pero Carmen de Bolívar menor mediana. Se destaca que la humedad relativa media mensual tiende a estar heterogeneamente dispersa, característica que se observa en el tamaño de las cajas y en la variación de los valores de la MDA.
}Se resalta del gráfico cómo los datos atípicos son relativamente más comunes en la humedad que en la temperatura y sobresale la amplia distancia entre la mediana y los datos atípicos menores a la misma en Colegio Cooperativo. El rasgo anterior concuerda con lo comparado entre la temperatura y la humedad en relación a la tendencia entre la MDA y la desviación estandar en las diferentes estaciones.
A grandes rasgos la asimetría estación a estación cambia aunque se observa una leve preferencia hacia la simetría sin que existan situaciones extremas como el caso de la temperatura en estaciones como Barragán, Cumbarco, Mateguadua, Palmira y San Marcos.
A continuación se procede a elaborar una matriz de diagramas de dispersión por variable en las diferentes estaciones agrupadas por el departamento en el que se emplazan, esto para reducir el tamaño de una matriz que contendría la información de las 18 estaciones.
Bolivar = c("AEPTO BARACOA", "AEPTO RAFAEL NUNEZ", "CARMEN DE BOLIVAR", "COLEGIO COOPERATIVO", "EL GUAMO", "NUEVA FLORIDA", "SAN PABLO", "SINCERIN")
Cordoba = c("TURIPANA", "PLANETA RICA", "MARACAYO", "EL SALADO", "COLOMBOY")
Valle_del_Cauca = c("PALMIRA", "BARRAGAN", "SAN MARCOS", "MATEGUADUA", "CUMBARCO")
for (variable in c("temperatura", "humedad")) {
for (departamento in c("Bolivar", "Cordoba", "Valle_del_Cauca")) {
tabla_actual <- get(variable)
departamento_actual <- get(departamento)
if (variable == "temperatura") {
color_actual <- "darkred"
} else {
color_actual <- "darkgreen"
}
titulo_del_grafico <- paste("Matriz de diagramas de dispersión y correlación de Pearson de", variable, "en", departamento)
pairs.panels(
tabla_actual[, departamento_actual],
main = titulo_del_grafico,
pch=20,
smooth=FALSE,
lm=TRUE,
cex=0.2,
method="pearson",
col = color_actual,
bg = color_actual,
ellipses = FALSE,
cex.cor=0.8,
hist.col=color_actual,
density=FALSE,
cex.labels=0.7
)
}
}
A partir de las matrices de dispersión, se analiza la correlación entre los datos de tamperatura y las estaciones por departamento. Inicialmente tenemos el diagrama de dispersión para las estaciones pertenecientes al departamento de Bolívar, en el cual se observa que para la mayoría de estaciones hay una correlación positiva y alta, siendo mayor el coeficiente entre la estación El Guamo y San Pablo (0.76),y la menor correlación se presente entre la estación Aeropuerto Rafael Nuñez y Colegio Cooperativo (-0.05). Esto lo podemos asociar con el hecho de que algunas estaciones se encuentras cercanas entre sí, por lo que el comportamiento de la temperatura es similar en esta zonas. También se debe tener en cuenta el factor de la orografía de los suelos y la circulación, que permite que varias zonas del departamento se presenten comportamiento diferentes de esta variable. Los gráficos de dispersión corresponden con los valores del coeficiente de correlación, ya que para los casos donde este valor es alto y positivo, tenemos una distribución de los datos más unida y con una línea de tendencia positiva (línea roja) inclinada hacia arriba. Con estos resultados, se puede decir a modo general que las estaciones seleccionadas para el departamento de Bolívar muestran que existe una regionalización climática en la mayor parte del departamento. En la diagonal se observa el histograma de cada una de las estaciones, lo que nos muestra para las estaciones como Colegio Cooperativo, El Guamo, San Pablo y Sincerín una simetría en la distribución de los datos, ya que hay una distribución igual para ambos lados respecto a la mediana. Para las demás estaciones, el histograma nos muestra una distribución sesgada hacia la izquierda o la derecha, lo que indica que las temperaturas tienden a tomar valores más bajos o más altos de acuerdo al rango del periodo de tiempo seleccionado.
En el segundo diagrama de dispersión tenemos la correlación de la temperatura en las estaciones representativas del departamento de Córdoba. Se observa que la correlación entre todas las estaciones es positiva, esto indica que cuando la temperatura aumenta en una estación, se espera que aumente en las demás estaciones, teniendo en cuenta que la mayor correlación se presente entre las estaciones Turipaná y El Salado (0.95), Planeta Rica y El Salado (0.92), Turipaná y Planeta Rica (0.82), y El Salado y Colomboy (0.82). Las estaciones Turipaná, El Salado y Colomboy se encuentra espacialmente cercanas entre sí (cuenca media), por lo que tiene sentido que estén altamente correlacionadas. En cuanto a Planeta Rica, la orografía de la zona es similar a las estaciones anteriormente mencionadas, lo que explica que el comportamiento de la temperatura se relacione con con las demás estaciones. Estas correlaciones también muestran una regionalización climática en la zona, con diferencias que se deben a otros factores meteorológicos que disminuyen o aumentan su correlación. En cuanto a los histogramas, se observa para las estaciones de Turipaná, Planeta Rica y El Salado una distribución simétrica en los datos mensuales, mientras que para la estación de Maracayo los valores tienden a ser más bajo, y en la estación Colomboy los valores tienden a ser más altos, respecto al rango presentado en el periodo.
Finalmente, en el departamento de Valle del Cauca, se observan coeficiente de correlación bajos entre las estaciones, esto puede estar relacionado con la calidad de los datos utilizados, ya que son datos redondeados a enteros, que impiden ver la variación a detalle de la temperatura en esta zona. Sin embargo, se puede considerar para las estaciones Mateguadua y Barragán la correlación más alta, lo cual corresponde con el gráfico, donde la tendencia es inclinada hacia arriba, lo que corresponde con el valor más alto respecto a los demás. En este sentido, no se puede considerar una regionalización en esta zona, al tener valores de correlación muy pequeños. En cuanto a los histogramas, no se presenta simetría en las estaciones seleccionadas, se observa que el valor más presentado oscila entre 11 y 23°C.
Este mismo análisis se realiza en las 18 estaciones para la variable de humedad relativa. Inicialmente tenemos la matriz de correlación para las estaciones del departamento de Bolívar, se observa en los diagramas de dispersión que la mayor correlación se presenta entre las estaciones Aeropuerto Baracoa y El Guamo, El Guamo y San Pablo, y Aeropuerto Baracoa y San Pablo, esto quiere decir que las tres estaciones están altamente correlacionadas entre sí. En algunas estaciones la correlación es baja, mientras que, entre las estaciones Aeropuerto Rafael Nuñez y Colegio Cooperativo la correlación es baja negativa. Estas diferencias entre los valores de correlación se deben a que la humedad relativa es una variable que no sólo depende de la temperatura, sino también de la capacidad evaporativa de los suelos y el viento que circula en la zona, los cual se observa también en los histogramas, ya que la distribución en los datos es muy variable entre las estaciones representativas de Bolívar, al igual que en la dispersión de los datos, vemos que en comparación con la temperatura, estos se encuentran mayormente dispersión respecto a la línea de tendencia.
En la misma línea de análisis, tenemos el diagrama de dispersión para las estaciones representativas del departamento de Córdoba para la variable HR. Se observa que, aunque las estaciones estén altamente correlacionadas en cuanto a temperatura, la correlación para esta variable es menor, la dispersión de los datos es más dispersa entre estaciones, lo cual corresponde con los valores positivos, donde el mayor se presenta entre las estaciones Turipaná y Planeta Rica y el menor entre Maracayo y El Salado. Aunque los valores siguen siendo altos en su mayoría, también se refleja que el análisis de HR es más complejo y depende de otros factores además de T. En los histogramas también se observa que hay una distribución variable en los datos del periodo.
Finalmente, para el departamento de Valle del Cauca la correlación de HR entre las estaciones es más variado, teniendo una mayor contidad de correlaciones negativas y correlaciones positivas bajas. Teniendo en cuenta de base que la correlación entre la temperatura es baja, tiene sentido que estas correlaciones para HR también lo sean entre estaciones. En cuanto al histograma, se observa que para estas últimas estaciones, la distribución guarda un poco más de simetría.
tabla_unida = inner_join(temperatura_largo, humedad_largo, by = c("FECHA", "estacion"))
colnames(tabla_unida)[3]="Temperatura"
colnames(tabla_unida)[4]="Humedad"
pairs.panels(
tabla_unida[, c("Temperatura", "Humedad")],
main = "Diagrama de dispersión entre temperatura y humedad",
pch=20,
smooth=FALSE,
lm=TRUE,
cex=0.2,
method="pearson",
col = "red",
ellipses = FALSE,
cex.cor=0.8,
hist.col="orange",
density=FALSE,
cex.labels=0.7
)
El análisis del diagrama de dispersión entre temperatura y humedad relativa, construido a partir de los datos del periodo seleccionado, permite identificar varios aspectos relevantes en cuanto a la relación o dependencia de estas dos variables. En primer lugar, los histogramas muestran que la temperatura se concentra principalmente entre los 25 y 30 °C, con menos frecuencia de valores más bajos, lo que evidencia un régimen predominantemente cálido, los cuales están representados por los municipios de Córdoba y Bolívar. Por su parte, la humedad relativa se distribuye mayormente entre el 70 y el 90 %, con un pico alrededor del 80 %, lo cual refleja un ambiente húmedo característico de zonas tropicales. El diagrama de dispersión indica que la mayor densidad de datos se ubica en el rango de temperaturas cálidas y humedades altas, mientras que la regresión lineal señala una tendencia negativa. El coeficiente de correlación obtenido (-0.27) confirma esta relación débilmente inversa: a medida que la temperatura aumenta, la humedad relativa tiende a disminuir, aunque la asociación no es fuerte. Esta relación se explica porque la humedad relativa depende no solo de la cantidad de vapor de agua en el aire, sino también de la temperatura, ya que al incrementarse esta última, el aire puede retener más vapor antes de saturarse, reduciendo así el porcentaje de humedad relativa. En términos climáticos, este comportamiento es coherente con las dinámicas propias de regiones cálidas y húmedas, donde las variaciones estacionales, la ocurrencia de lluvias y otros factores atmosféricos modulan el vínculo entre temperatura y humedad. Con base en lo anterior, se puede decir que los resultados muestran un clima establemente cálido y húmedo, con una ligera tendencia a la disminución de la humedad relativa cuando aumentan las temperaturas, sin embargo hay que tener en cuenta que se está realizando una comparación entre zonas que se encuentran a alturas diferentes respecto al nivel del mar, lo que influye también en la baja correlación entre los datos utilizados.