R Markdown
# CÓDIGO R PARA REPLICAR ANÁLISIS DEL INFORME
# Análisis fluctuación temperatura Riobamba 2022-2024 (datos INAMHI)
# Autores: Diana Ante et al. (replicado)
# 1. CARGAR LIBRERÍAS
library(dplyr)
##
## Adjuntando el paquete: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
library(ggplot2)
# 2. DATOS DE TABLA 1 (Temperaturas mensuales °C)
datos <- data.frame(
Mes = rep(month.name[1:12], 3),
Anio = rep(c(2022, 2023, 2024), each=12),
T = c(20,12,13.6,16,18,15,17,14,18,19,19,19, # 2022
20,16,16,18,16,16,19,19,22,19,18,15, # 2023
16,19,21,19,20,17,17,18,18,21,19,13) # 2024
)
print("Tabla 1: Datos crudos")
## [1] "Tabla 1: Datos crudos"
print(datos)
## Mes Anio T
## 1 January 2022 20.0
## 2 February 2022 12.0
## 3 March 2022 13.6
## 4 April 2022 16.0
## 5 May 2022 18.0
## 6 June 2022 15.0
## 7 July 2022 17.0
## 8 August 2022 14.0
## 9 September 2022 18.0
## 10 October 2022 19.0
## 11 November 2022 19.0
## 12 December 2022 19.0
## 13 January 2023 20.0
## 14 February 2023 16.0
## 15 March 2023 16.0
## 16 April 2023 18.0
## 17 May 2023 16.0
## 18 June 2023 16.0
## 19 July 2023 19.0
## 20 August 2023 19.0
## 21 September 2023 22.0
## 22 October 2023 19.0
## 23 November 2023 18.0
## 24 December 2023 15.0
## 25 January 2024 16.0
## 26 February 2024 19.0
## 27 March 2024 21.0
## 28 April 2024 19.0
## 29 May 2024 20.0
## 30 June 2024 17.0
## 31 July 2024 17.0
## 32 August 2024 18.0
## 33 September 2024 18.0
## 34 October 2024 21.0
## 35 November 2024 19.0
## 36 December 2024 13.0
# 3. ESTADÍSTICOS DESCRIPTIVOS POR AÑO (Tabla 2)
estadisticos <- datos %>%
group_by(Anio) %>%
summarise(
Media = round(mean(T), 2),
Mediana = round(median(T), 2),
Moda = names(sort(table(T), decreasing=TRUE))[1], # Moda simple
.groups = 'drop'
)
print("Tabla 2: Media, Mediana, Moda por Año")
## [1] "Tabla 2: Media, Mediana, Moda por Año"
print(estadisticos)
## # A tibble: 3 × 4
## Anio Media Mediana Moda
## <dbl> <dbl> <dbl> <chr>
## 1 2022 16.7 17.5 19
## 2 2023 17.8 18 16
## 3 2024 18.2 18.5 19
# 4. TABLA DE FRECUENCIAS (Tabla 3, datos totales)
freq_tabla <- datos %>%
count(T, name="Frec_abs") %>%
mutate(
Frec_abs_acum = cumsum(Frec_abs),
Frec_rel = round(Frec_abs / nrow(datos), 2),
Frec_rel_acum = round(Frec_abs_acum / nrow(datos), 2)
) %>%
arrange(T)
print("Tabla 3: Frecuencias")
## [1] "Tabla 3: Frecuencias"
print(freq_tabla)
## T Frec_abs Frec_abs_acum Frec_rel Frec_rel_acum
## 1 12.0 1 1 0.03 0.03
## 2 13.0 1 2 0.03 0.06
## 3 13.6 1 3 0.03 0.08
## 4 14.0 1 4 0.03 0.11
## 5 15.0 2 6 0.06 0.17
## 6 16.0 6 12 0.17 0.33
## 7 17.0 3 15 0.08 0.42
## 8 18.0 6 21 0.17 0.58
## 9 19.0 9 30 0.25 0.83
## 10 20.0 3 33 0.08 0.92
## 11 21.0 2 35 0.06 0.97
## 12 22.0 1 36 0.03 1.00
# 5. GRÁFICO 2: Temperatura promedio por mes/año
ggplot(datos, aes(x=Mes, y=T, color=factor(Anio))) +
geom_point(size=3) + geom_line(aes(group=Anio)) +
labs(title="Gráfico 2: Temperatura por Mes y Año",
x="Mes", y="Temperatura (°C)", color="Año") +
theme_minimal()

ggsave("grafico2_temp_promedio.png")
## Saving 7 x 5 in image
# 6. FIGURA 3: Diagrama de Cajas por Año
ggplot(datos, aes(x=factor(Anio), y=T)) +
geom_boxplot(fill="lightblue") +
labs(title="Figura 3: Diagrama de Cajas Temperatura por Año",
x="Año", y="Temperatura (°C)") +
theme_minimal()

ggsave("figura3_boxplot.png")
## Saving 7 x 5 in image
# 7. TEST MANN-KENDALL (Tendencia, metodología)
library(trend) # Instalar si necesario: install.packages("trend")
datos_ts <- ts(datos$T, frequency=12) # Serie temporal mensual
mk_test <- mk.test(datos_ts)
print("Test Mann-Kendall:")
## [1] "Test Mann-Kendall:"
print(mk_test) # p-value >0.05: tendencia no significativa
##
## Mann-Kendall trend test
##
## data: datos_ts
## z = 1.6728, n = 36, p-value = 0.09436
## alternative hypothesis: true S is not equal to 0
## sample estimates:
## S varS tau
## 122.0000000 5232.0000000 0.2061352
# 8. TEMPORADA MENSUAL PROMEDIO (mencionado en texto)
prom_mes <- datos %>%
mutate(Mes_num = match(Mes, month.name)) %>%
group_by(Mes_num, Mes) %>%
summarise(Media_mes = round(mean(T), 2), .groups='drop') %>%
arrange(Mes_num)
print("Promedios mensuales (2022-2024):")
## [1] "Promedios mensuales (2022-2024):"
print(prom_mes)
## # A tibble: 12 × 3
## Mes_num Mes Media_mes
## <int> <chr> <dbl>
## 1 1 January 18.7
## 2 2 February 15.7
## 3 3 March 16.9
## 4 4 April 17.7
## 5 5 May 18
## 6 6 June 16
## 7 7 July 17.7
## 8 8 August 17
## 9 9 September 19.3
## 10 10 October 19.7
## 11 11 November 18.7
## 12 12 December 15.7
# RESULTADOS COINCIDEN CON INFORME:
# - 2024: Media 18.17, Mediana 18.5, Moda 19
# - Mayor variabilidad 2022 (boxplot rango amplio)
# - Moda global: 19°C (9 veces)