Nothing
## ----include = FALSE----------------------------------------------------------
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>"
)
## ----setup--------------------------------------------------------------------
library(WhiteLabRt)
## -----------------------------------------------------------------------------
data("sample_multi_site")
data("transfer_matrix")
## -----------------------------------------------------------------------------
site_names <- colnames(sample_multi_site)[c(2, 3)]
Y <- matrix(integer(1), nrow = nrow(sample_multi_site), ncol = 2)
for(i in 1:nrow(Y)) {
for(j in c(2, 3)) {
Y[i,j-1] <- as.integer(sample_multi_site[i,j])
}
}
all(is.integer(Y))
## -----------------------------------------------------------------------------
sip <- si(14, 4.29, 1.18, leading0 = FALSE)
## ----runspatialrt,eval=F------------------------------------------------------
# sample_m_hier <- spatialRt(report_dates = sample_multi_site$date,
# case_matrix = Y,
# transfer_matrix = transfer_matrix,
# v2 = FALSE,
# sip = sip, chains = 1)
## -----------------------------------------------------------------------------
data("sample_m_hier")
rstan::check_divergences(sample_m_hier)
rstan::check_hmc_diagnostics(sample_m_hier)
out <- rstan::extract(sample_m_hier)
# QC
# launch_shinystan(m_hier)
## -----------------------------------------------------------------------------
dim(out$M)
dim(out$xsigma)
data_l <- lapply(1:dim(out$M)[3], function(i) {
data.frame(
x = 1:dim(out$M)[2],
y_real = Y[, i],
y = apply(out$M[, , i], 2, mean),
yl = apply(out$M[, , i], 2, quantile, probs = 0.025),
yh = apply(out$M[, , i], 2, quantile, probs = 0.975),
Rt = apply(out$R[, , i], 2, mean),
Rtl = apply(out$R[, , i], 2, quantile, probs = 0.025),
Rth = apply(out$R[, , i], 2, quantile, probs = 0.975),
region = site_names[i] # must be a string
)
})
data_all <- do.call(rbind, data_l)
head(data_all)
# Summarise data
data_all_summarise <- aggregate(
cbind(y, y_real, yl, yh, Rt, Rtl, Rth) ~ x + region,
data = data_all,
FUN = mean
)
head(data_all_summarise)
## -----------------------------------------------------------------------------
# Generate a color palette
regions <- unique(data_all_summarise$region)
# Define a set of distinct colors
colors <- c("red", "blue", "green", "purple", "orange", "brown",
"pink", "yellow", "cyan", "magenta")
colors <- colors[1:length(regions)]
names(colors) <- regions
## ----fig.width=6.75,dev='png'-------------------------------------------------
# Plot expected cases
plot(
x = as.integer(data_all_summarise$x),
y = as.numeric(data_all_summarise$y),
type = "n",
xlab = "Days",
ylab = "Cases",
main = "Expected Cases"
)
for (region_i in regions) {
region_data <- subset(data_all_summarise, region == region_i)
points(x = region_data$x, region_data$y_real, col = colors[region_i])
polygon(
c(region_data$x, rev(region_data$x)),
c(region_data$yl, rev(region_data$yh)),
col = adjustcolor(colors[region_i], alpha.f = 0.3), border = NA
)
lines(region_data$x, region_data$y, col = colors[region_i], lwd = 0.5)
}
legend("topright",
legend = regions,
col = colors,
lty = rep(1, length(regions)),
cex = 0.8,
pt.cex = 1.5 ) # Text size
## ----fig.width=6.75, dev='png'------------------------------------------------
# Plot R(t)
plot(
data_all_summarise$x, data_all_summarise$Rt,
xlab = "Days", ylab = "Reproduction Number",
type = "n",
main = "R(t)",
ylim = c(0, 5)
)
for (region_i in regions) {
region_data <- subset(data_all_summarise, region == region_i)
polygon(
c(region_data$x, rev(region_data$x)),
c(region_data$Rtl, rev(region_data$Rth)),
col = adjustcolor(colors[region_i], alpha.f = 0.3), border = NA
)
lines(region_data$x, region_data$Rt, col = colors[region_i], lwd = 0.5)
}
abline(h = 1, col = "black", lwd = 1, lty = 1)
legend("topright",
legend = regions,
col = colors,
lty = c(1, 1),
cex = 0.8,
pt.cex = 1.5 ) # Text size
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.