# knitr::spin("acumula22_hist.R", knit = FALSE) # Crea .Rmd
# knitr::purl("acumula22_hist.Rmd", documentation = 2) # Crea .R spin

# PENDIENTE:
#   Generar un fichero de cambios:
#         Bucle last:2 / Empezar solo con last
#         AƱadir ficheros 2:(last - 1) a files[last] y calcular diferencia/error y lag/horizonte
#   AnÔlisis descriptivo: dispersión/boxplot error|lag

library(dplyr, warn.conflicts = FALSE)
library(tidyr)
files <- dir(pattern = paste0('^acumula22_\\d{2}_\\d{2}_\\d{2}\\.RData'))
# Los nombres de los archivos contienen las fechas de reporte (datos del dĆ­a anterior)
fechas.txt <- substr(files, 11, 18)
fechas <- as.Date(fechas.txt, format = "%y_%m_%d") 
last <- length(files)
semanas <- 6
fechas.semanas <- fechas[last] - 7*(semanas:1) - 1
fecha.ini <- fechas.semanas[1]
colors <- gray((last - seq_along(files))/last)


# Cargar datos
datos <- lapply(files, function(f) {
  load(f)
  return(acumula22)
})
names(datos) <- fechas

# Obtener niveles
load("../ccaas.RData")
iso <- names(datos[[1]]) # names(ccaas) 
respuestas <- c("confirmados", "hospitalizados", "uci", "fallecidos") # names(datos[[1]][[1]])

En la web https://covid19.citic.udc.es/ se pueden consultar grÔficos dinÔmicos seleccionando Cambios en los valores reportados:2021 en la pestaña Predicción cooperativa: Información.

A continuación se muestra un grÔfico, para cada combinación de CCAA y variable, con toda la serie hasta 2022-01-11 y otro de las últimas 6 semanas (desde 2021-11-30).

El color de las lƭneas se corresponde con la fecha en la que se reportaron los datos (se muestra tambiƩn el dƭa del mes en el segundo grƔfico).

xlim2 <- c(fecha.ini, max(fechas) + 1)
plot(NULL ,xaxt='n', yaxt='n', bty='n', ylab='', xlab='', xlim=0:1, ylim=0:1)
legend("top", rev(substr(names(datos),3, 10)), lty = 1, lwd = 5, col = rev(colors), ncol = 8)

for (ca in iso) { # ca <- "ES"
  cat("\n\n# ",  ccaas[ca], "\n\n")

  for (r in respuestas) {  # r <- "confirmados"
    cat("\n\n## ", r, "\n\n") 
    
    ymax <- max(sapply(datos, function(d) max(d[[ca]][[r]]$observado)))
    
    old.par <- par(mfrow = c(1, 2))

    plot(observado ~ fecha, data = datos[[last]][[ca]][[r]], 
         type = "l", main = paste(ccaas[ca], r), xlab = "Fecha", ylab = r,
         col = colors[last], ylim = c(0, ymax))
    lapply(1:(last-1), function(i) 
         lines(observado ~ fecha, data = datos[[i]][[ca]][[r]], 
               col = colors[i]))     
    # legend("topleft", rev(names(datos)), lty = 1, col = rev(colors))
    

    d <- filter(datos[[last]][[ca]][[r]], fecha > fecha.ini - 1)
    ymin <- min(d$observado) * 0.95
    plot(observado ~ fecha, data = d, 
         type = "l", main = paste(ccaas[ca], r), xlab = "Fecha", ylab = r,
         lwd = 2, col = colors[last], 
         xlim = xlim2, ylim = c(ymin, ymax))
    abline(v = fechas.semanas, lty = 3, col = "lightgray")
    lapply(1:(last-1), function(i) 
         lines(observado ~ fecha, data = datos[[i]][[ca]][[r]], 
               col = colors[i], subset = fecha > fecha.ini - 1))
    # legend("topleft", rev(names(datos)), lty = 1, col = rev(colors))
    lapply(1:last, function(i) {
        d <- datos[[i]][[ca]][[r]]
        text(d[nrow(d), c("fecha", "observado")], 
             labels = format(fechas[i], "%d"), pos = 4)
    })
    
    par(old.par)
    
  } # for (r in respuestas)  
} # for (ca in iso)

EspaƱa

confirmados

hospitalizados

uci

fallecidos

AndalucĆ­a

confirmados

hospitalizados

uci

fallecidos

Aragón

confirmados

hospitalizados

uci

fallecidos

Asturias

confirmados

hospitalizados

uci

fallecidos

Canarias

confirmados

hospitalizados

uci

fallecidos

Cantabria

confirmados

hospitalizados

uci

fallecidos

Castilla y León

confirmados

hospitalizados

uci

fallecidos

Castilla-La Mancha

confirmados

hospitalizados

uci

fallecidos

CataluƱa

confirmados

hospitalizados

uci

fallecidos

Ceuta y Melilla

confirmados

hospitalizados

uci

fallecidos

Comunidad Valenciana

confirmados

hospitalizados

uci

fallecidos

Extremadura

confirmados

hospitalizados

uci

fallecidos

Galicia

confirmados

hospitalizados

uci

fallecidos

Islas Baleares

confirmados

hospitalizados

uci

fallecidos

La Rioja

confirmados

hospitalizados

uci

fallecidos

Madrid

confirmados

hospitalizados

uci

fallecidos

Murcia

confirmados

hospitalizados

uci

fallecidos

PaĆ­s Vasco

confirmados

hospitalizados

uci

fallecidos