зеркало из https://github.com/Azure/covid19model.git
Version 2
This commit is contained in:
Родитель
5c756a69f9
Коммит
25ef22e68f
181
base.r
181
base.r
|
@ -2,6 +2,8 @@ library(rstan)
|
|||
library(data.table)
|
||||
library(lubridate)
|
||||
library(gdata)
|
||||
library(dplyr)
|
||||
library(tidyr)
|
||||
library(EnvStats)
|
||||
|
||||
countries <- c(
|
||||
|
@ -15,7 +17,10 @@ countries <- c(
|
|||
"Belgium",
|
||||
"Austria",
|
||||
"Sweden",
|
||||
"Switzerland"
|
||||
"Switzerland",
|
||||
"Greece",
|
||||
"Portugal",
|
||||
"Netherlands"
|
||||
)
|
||||
|
||||
args = commandArgs(trailingOnly=TRUE)
|
||||
|
@ -29,67 +34,85 @@ print(sprintf("Running %s",StanModel))
|
|||
## Reading all data
|
||||
d=readRDS('data/COVID-19-up-to-date.rds')
|
||||
|
||||
## get IFR
|
||||
ifr.by.country = read.csv("data/weighted_fatality.csv")
|
||||
## get IFR and population from same file
|
||||
ifr.by.country = read.csv("data/popt_ifr.csv")
|
||||
ifr.by.country$country = as.character(ifr.by.country[,2])
|
||||
ifr.by.country$country[ifr.by.country$country == "United Kingdom"] = "United_Kingdom"
|
||||
|
||||
serial.interval = read.csv("data/serial_interval.csv")
|
||||
covariates = read.csv('data/interventions.csv', stringsAsFactors = FALSE)
|
||||
covariates <- covariates[1:11, c(1,2,3,4,5,6, 7, 8)]
|
||||
|
||||
## making all covariates that happen after lockdown to have same date as lockdown
|
||||
names_covariates = c('Schools + Universities','Self-isolating if ill', 'Public events', 'Lockdown', 'Social distancing encouraged')
|
||||
covariates <- covariates %>%
|
||||
filter((Type %in% names_covariates))
|
||||
covariates <- covariates[,c(1,2,4)]
|
||||
covariates <- spread(covariates, Type, Date.effective)
|
||||
names(covariates) <- c('Country','lockdown', 'public_events', 'schools_universities','self_isolating_if_ill', 'social_distancing_encouraged')
|
||||
covariates <- covariates[c('Country','schools_universities', 'self_isolating_if_ill', 'public_events', 'lockdown', 'social_distancing_encouraged')]
|
||||
covariates$schools_universities <- as.Date(covariates$schools_universities, format = "%d.%m.%Y")
|
||||
covariates$lockdown <- as.Date(covariates$lockdown, format = "%d.%m.%Y")
|
||||
covariates$public_events <- as.Date(covariates$public_events, format = "%d.%m.%Y")
|
||||
covariates$self_isolating_if_ill <- as.Date(covariates$self_isolating_if_ill, format = "%d.%m.%Y")
|
||||
covariates$social_distancing_encouraged <- as.Date(covariates$social_distancing_encouraged, format = "%d.%m.%Y")
|
||||
## using covariates as dates we want
|
||||
covariates$schools_universities[covariates$schools_universities > covariates$lockdown] <- covariates$lockdown[covariates$schools_universities > covariates$lockdown]
|
||||
covariates$travel_restrictions[covariates$travel_restrictions > covariates$lockdown] <- covariates$lockdown[covariates$travel_restrictions > covariates$lockdown]
|
||||
covariates$public_events[covariates$public_events > covariates$lockdown] <- covariates$lockdown[covariates$public_events > covariates$lockdown]
|
||||
covariates$sport[covariates$sport > covariates$lockdown] <- covariates$lockdown[covariates$sport > covariates$lockdown]
|
||||
covariates$social_distancing_encouraged[covariates$social_distancing_encouraged > covariates$lockdown] <- covariates$lockdown[covariates$social_distancing_encouraged > covariates$lockdown]
|
||||
covariates$self_isolating_if_ill[covariates$self_isolating_if_ill > covariates$lockdown] <- covariates$lockdown[covariates$self_isolating_if_ill > covariates$lockdown]
|
||||
|
||||
p <- ncol(covariates) - 1
|
||||
forecast = 0
|
||||
|
||||
if (Sys.getenv("DEBUG") == "TRUE") {
|
||||
DEBUG = TRUE
|
||||
print("Performing a DEBUG run")
|
||||
} else {
|
||||
DEBUG = FALSE
|
||||
}
|
||||
|
||||
if(DEBUG == FALSE) {
|
||||
N2 = 75 # Increase this for a further forecast
|
||||
} else {
|
||||
### For faster runs:
|
||||
# countries = c("Austria","Belgium") #,Spain")
|
||||
N2 = 75
|
||||
}
|
||||
# countries = c("Italy","United_Kingdom","Spain","Norway","Austria","Switzerland")
|
||||
DEBUG = FALSE
|
||||
N2 = 90 # increase if you need more forecast
|
||||
|
||||
dates = list()
|
||||
reported_cases = list()
|
||||
stan_data = list(M=length(countries),N=NULL,p=p,x1=poly(1:N2,2)[,1],x2=poly(1:N2,2)[,2],
|
||||
y=NULL,covariate1=NULL,covariate2=NULL,covariate3=NULL,covariate4=NULL,covariate5=NULL,covariate6=NULL,covariate7=NULL,deaths=NULL,f=NULL,
|
||||
N0=6,cases=NULL,LENGTHSCALE=7,SI=serial.interval$fit[1:N2],
|
||||
EpidemicStart = NULL) # N0 = 6 to make it consistent with Rayleigh
|
||||
stan_data = list(M=length(countries),N=NULL,covariate1=NULL,covariate2=NULL,covariate3=NULL,covariate4=NULL,covariate5=NULL,covariate6=NULL,deaths=NULL,f=NULL,
|
||||
N0=6,cases=NULL,SI=serial.interval$fit[1:N2],
|
||||
EpidemicStart = NULL, pop = NULL) # N0 = 6 to make it consistent with Rayleigh
|
||||
deaths_by_country = list()
|
||||
|
||||
# various distributions required for modeling
|
||||
mean1 = 5.1; cv1 = 0.86; # infection to onset
|
||||
mean2 = 18.8; cv2 = 0.45 # onset to death
|
||||
x1 = rgammaAlt(1e7,mean1,cv1) # infection-to-onset distribution
|
||||
x2 = rgammaAlt(1e7,mean2,cv2) # onset-to-death distribution
|
||||
|
||||
ecdf.saved = ecdf(x1+x2)
|
||||
|
||||
for(Country in countries) {
|
||||
IFR=ifr.by.country$weighted_fatality[ifr.by.country$country == Country]
|
||||
IFR=ifr.by.country$ifr[ifr.by.country$country == Country]
|
||||
|
||||
covariates1 <- covariates[covariates$Country == Country, 2:8]
|
||||
covariates1 <- covariates[covariates$Country == Country, c(2,3,4,5,6)]
|
||||
|
||||
d1=d[d$Countries.and.territories==Country,]
|
||||
d1_pop = ifr.by.country[ifr.by.country$country==Country,]
|
||||
d1=d[d$Countries.and.territories==Country,c(1,5,6,7)]
|
||||
d1$date = as.Date(d1$DateRep,format='%d/%m/%Y')
|
||||
d1$t = decimal_date(d1$date)
|
||||
d1=d1[order(d1$t),]
|
||||
|
||||
date_min <- dmy('31/12/2019')
|
||||
if (as.Date(d1$DateRep[1], format='%d/%m/%Y') > as.Date(date_min, format='%d/%m/%Y')){
|
||||
print(paste(Country,'In padding'))
|
||||
pad_days <- as.Date(d1$DateRep[1], format='%d/%m/%Y') - date_min
|
||||
pad_dates <- date_min + days(1:pad_days[[1]]-1)
|
||||
padded_data <- data.frame("Countries.and.territories" = rep(Country, pad_days),
|
||||
"DateRep" = format(pad_dates, '%d/%m/%Y'),
|
||||
"t" = decimal_date(as.Date(pad_dates,format='%d/%m/%Y')),
|
||||
"date" = as.Date(pad_dates,format='%d/%m/%Y'),
|
||||
"Cases" = as.integer(rep(0, pad_days)),
|
||||
"Deaths" = as.integer(rep(0, pad_days)),
|
||||
stringsAsFactors=F)
|
||||
|
||||
d1 <- bind_rows(padded_data, d1)
|
||||
}
|
||||
index = which(d1$Cases>0)[1]
|
||||
index1 = which(cumsum(d1$Deaths)>=10)[1] # also 5
|
||||
index2 = index1-30
|
||||
|
||||
print(sprintf("First non-zero cases is on day %d, and 30 days before 5 days is day %d",index,index2))
|
||||
|
||||
print(sprintf("First non-zero cases is on day %d, and 30 days before 10 deaths is day %d",index,index2))
|
||||
d1=d1[index2:nrow(d1),]
|
||||
stan_data$EpidemicStart = c(stan_data$EpidemicStart,index1+1-index2)
|
||||
stan_data$pop = c(stan_data$pop, d1_pop$popt)
|
||||
|
||||
|
||||
for (ii in 1:ncol(covariates1)) {
|
||||
|
@ -109,38 +132,15 @@ for(Country in countries) {
|
|||
forecast = N2 - N
|
||||
}
|
||||
|
||||
h = rep(0,forecast+N) # discrete hazard rate from time t = 1, ..., 100
|
||||
if(DEBUG) { # OLD -- but faster for testing this part of the code
|
||||
mean = 18.8
|
||||
cv = 0.45
|
||||
|
||||
for(i in 1:length(h))
|
||||
h[i] = (IFR*pgammaAlt(i,mean = mean,cv=cv) - IFR*pgammaAlt(i-1,mean = mean,cv=cv)) / (1-IFR*pgammaAlt(i-1,mean = mean,cv=cv))
|
||||
} else { # NEW
|
||||
mean1 = 5.1; cv1 = 0.86; # infection to onset
|
||||
mean2 = 18.8; cv2 = 0.45 # onset to death
|
||||
## assume that IFR is probability of dying given infection
|
||||
x1 = rgammaAlt(5e6,mean1,cv1) # infection-to-onset ----> do all people who are infected get to onset?
|
||||
x2 = rgammaAlt(5e6,mean2,cv2) # onset-to-death
|
||||
f = ecdf(x1+x2)
|
||||
convolution = function(u) (IFR * f(u))
|
||||
|
||||
h[1] = (convolution(1.5) - convolution(0))
|
||||
for(i in 2:length(h)) {
|
||||
h[i] = (convolution(i+.5) - convolution(i-.5)) / (1-convolution(i-.5))
|
||||
}
|
||||
}
|
||||
s = rep(0,N2)
|
||||
s[1] = 1
|
||||
# IFR is the overall probability of dying given infection
|
||||
convolution = function(u) (IFR * ecdf.saved(u))
|
||||
|
||||
f = rep(0,N2) # f is the probability of dying on day i given infection
|
||||
f[1] = (convolution(1.5) - convolution(0))
|
||||
for(i in 2:N2) {
|
||||
s[i] = s[i-1]*(1-h[i-1])
|
||||
f[i] = (convolution(i+.5) - convolution(i-.5))
|
||||
}
|
||||
f = s * h
|
||||
|
||||
|
||||
|
||||
|
||||
y=c(as.vector(as.numeric(d1$Cases)),rep(-1,forecast))
|
||||
reported_cases[[Country]] = as.vector(as.numeric(d1$Cases))
|
||||
deaths=c(as.vector(as.numeric(d1$Deaths)),rep(-1,forecast))
|
||||
cases=c(as.vector(as.numeric(d1$Cases)),rep(-1,forecast))
|
||||
|
@ -151,15 +151,13 @@ for(Country in countries) {
|
|||
|
||||
## append data
|
||||
stan_data$N = c(stan_data$N,N)
|
||||
stan_data$y = c(stan_data$y,y[1]) # just the index case!
|
||||
# stan_data$x = cbind(stan_data$x,x)
|
||||
stan_data$covariate1 = cbind(stan_data$covariate1,covariates2[,1])
|
||||
stan_data$covariate2 = cbind(stan_data$covariate2,covariates2[,2])
|
||||
stan_data$covariate3 = cbind(stan_data$covariate3,covariates2[,3])
|
||||
stan_data$covariate4 = cbind(stan_data$covariate4,covariates2[,4])
|
||||
stan_data$covariate5 = cbind(stan_data$covariate5,covariates2[,5])
|
||||
stan_data$covariate6 = cbind(stan_data$covariate6,covariates2[,6])
|
||||
stan_data$covariate7 = cbind(stan_data$covariate7,covariates2[,7])
|
||||
stan_data$covariate5 = cbind(stan_data$covariate5,covariates2[,4])
|
||||
stan_data$covariate6 = cbind(stan_data$covariate6,covariates2[,5])
|
||||
stan_data$f = cbind(stan_data$f,f)
|
||||
stan_data$deaths = cbind(stan_data$deaths,deaths)
|
||||
stan_data$cases = cbind(stan_data$cases,cases)
|
||||
|
@ -171,21 +169,12 @@ for(Country in countries) {
|
|||
}
|
||||
}
|
||||
|
||||
stan_data$covariate2 = 0 * stan_data$covariate2 # remove travel bans
|
||||
stan_data$covariate4 = 0 * stan_data$covariate5 # remove sport
|
||||
|
||||
#stan_data$covariate1 = stan_data$covariate1 # school closure
|
||||
stan_data$covariate2 = stan_data$covariate7 # self-isolating if ill
|
||||
#stan_data$covariate3 = stan_data$covariate3 # public events
|
||||
# create the `any intervention` covariate
|
||||
stan_data$covariate4 = 1*as.data.frame((stan_data$covariate1+
|
||||
stan_data$covariate2+
|
||||
stan_data$covariate3+
|
||||
stan_data$covariate5+
|
||||
stan_data$covariate6+
|
||||
stan_data$covariate7) >= 1)
|
||||
stan_data$covariate5 = stan_data$covariate5 # lockdown
|
||||
stan_data$covariate6 = stan_data$covariate6 # social distancing encouraged
|
||||
stan_data$covariate7 = 0 # models should only take 6 covariates
|
||||
stan_data$covariate6) >= 1)
|
||||
|
||||
if(DEBUG) {
|
||||
for(i in 1:length(countries)) {
|
||||
|
@ -201,16 +190,17 @@ if(DEBUG) {
|
|||
}
|
||||
}
|
||||
|
||||
stan_data$y = t(stan_data$y)
|
||||
options(mc.cores = parallel::detectCores())
|
||||
rstan_options(auto_write = TRUE)
|
||||
m = stan_model(paste0('stan-models/',StanModel,'.stan'))
|
||||
|
||||
|
||||
if(DEBUG) {
|
||||
fit = sampling(m,data=stan_data,iter=40,warmup=20,chains=2)
|
||||
} else {
|
||||
# fit = sampling(m,data=stan_data,iter=4000,warmup=2000,chains=8,thin=4,control = list(adapt_delta = 0.90, max_treedepth = 10))
|
||||
fit = sampling(m,data=stan_data,iter=200,warmup=100,chains=4,thin=4,control = list(adapt_delta = 0.90, max_treedepth = 10))
|
||||
# uncomment the line below for a full run to replicate results and comment the second line below
|
||||
# fit = sampling(m,data=stan_data,iter=4000,warmup=2000,chains=4,thin=4,control = list(adapt_delta = 0.95, max_treedepth = 10))
|
||||
fit = sampling(m,data=stan_data,iter=200,warmup=100,chains=4,thin=4,control = list(adapt_delta = 0.95, max_treedepth = 10))
|
||||
}
|
||||
|
||||
out = rstan::extract(fit)
|
||||
|
@ -227,28 +217,17 @@ save.image(paste0('results/',StanModel,'-',JOBID,'.Rdata'))
|
|||
|
||||
save(fit,prediction,dates,reported_cases,deaths_by_country,countries,estimated.deaths,estimated.deaths.cf,out,covariates,file=paste0('results/',StanModel,'-',JOBID,'-stanfit.Rdata'))
|
||||
|
||||
# to visualize results
|
||||
library(bayesplot)
|
||||
filename <- paste0('base-',JOBID)
|
||||
plot_labels <- c("School Closure",
|
||||
"Self Isolation",
|
||||
"Public Events",
|
||||
"First Intervention",
|
||||
"Lockdown", 'Social distancing')
|
||||
alpha = (as.matrix(out$alpha))
|
||||
colnames(alpha) = plot_labels
|
||||
g = (mcmc_intervals(alpha, prob = .9))
|
||||
ggsave(sprintf("results/%s-covars-alpha-log.pdf",filename),g,width=4,height=6)
|
||||
g = (mcmc_intervals(alpha, prob = .9,transformations = function(x) exp(-x)))
|
||||
ggsave(sprintf("results/%s-covars-alpha.pdf",filename),g,width=4,height=6)
|
||||
filename <- paste0(StanModel,'-',JOBID)
|
||||
system(paste0("Rscript covariate-size-effects.r ", filename,'-stanfit.Rdata'))
|
||||
mu = (as.matrix(out$mu))
|
||||
colnames(mu) = countries
|
||||
g = (mcmc_intervals(mu,prob = .9))
|
||||
ggsave(sprintf("results/%s-covars-mu.pdf",filename),g,width=4,height=6)
|
||||
dimensions <- dim(out$Rt)
|
||||
Rt = (as.matrix(out$Rt[,dimensions[2],]))
|
||||
colnames(Rt) = countries
|
||||
g = (mcmc_intervals(Rt,prob = .9))
|
||||
ggsave(sprintf("results/%s-covars-final-rt.pdf",filename),g,width=4,height=6)
|
||||
system(paste0("Rscript plot-3-panel.r ", filename,'.Rdata'))
|
||||
system(paste0("Rscript plot-forecast.r ",filename,'.Rdata')) ## to run this code you will need to adjust manual values of forecast required
|
||||
ggsave(sprintf("results/%s-mu.pdf",filename),g,width=4,height=6)
|
||||
tmp = lapply(1:length(countries), function(i) (out$Rt_adj[,stan_data$N[i],i]))
|
||||
Rt_adj = do.call(cbind,tmp)
|
||||
colnames(Rt_adj) = countries
|
||||
g = (mcmc_intervals(Rt_adj,prob = .9))
|
||||
ggsave(sprintf("results/%s-final-rt.pdf",filename),g,width=4,height=6)
|
||||
system(paste0("Rscript plot-3-panel.r ", filename,'-stanfit.Rdata'))
|
||||
system(paste0("Rscript plot-forecast.r ",filename,'-stanfit.Rdata'))
|
||||
|
|
|
@ -0,0 +1,76 @@
|
|||
library(ggplot2)
|
||||
library(scales)
|
||||
library(ggpubr)
|
||||
library(bayesplot)
|
||||
library(matrixStats)
|
||||
args <- commandArgs(trailingOnly = TRUE)
|
||||
filename <- args[1]
|
||||
|
||||
load(paste0("results/", filename))
|
||||
|
||||
alpha = data.frame(as.matrix(out$alpha))
|
||||
plot_labels <- c("School Closure",
|
||||
"Self Isolation",
|
||||
"Public Events",
|
||||
"First Intervention",
|
||||
"Lockdown", 'Social distancing')
|
||||
colnames(alpha) = plot_labels
|
||||
first.intervention = alpha[,c(1,2,3,5,6)] + alpha[,4]
|
||||
data1 = mcmc_intervals_data(first.intervention,prob=.95,transformation=function(x) 1-exp(-x),point_est="mean")
|
||||
data1$type = "First Intervention"
|
||||
|
||||
data2 = mcmc_intervals_data(alpha[,c(1,2,3,5,6)], prob = .95,transformation=function(x) 1-exp(-x),point_est="mean")
|
||||
data2$type = "Later Intervention"
|
||||
# data = rbind(rbind(data2[6,],data1),data2[1:5,])
|
||||
data = rbind(data1,data2[1:5,])
|
||||
colQuantiles(data.matrix(first.intervention),probs=c(.025,.975))
|
||||
|
||||
#data$type[1] = "First Intervention"
|
||||
|
||||
levels(data$parameter) = gsub("t(", "", levels(data$parameter), fixed=TRUE)
|
||||
levels(data$parameter) = gsub(")", "", levels(data$parameter), fixed=TRUE)
|
||||
data$parameter = (as.character(data$parameter))
|
||||
|
||||
no_point_est <- all(data$point_est == "none")
|
||||
x_lim <- range(c(data$ll, data$hh))
|
||||
x_range <- diff(x_lim)
|
||||
x_lim[1] <- x_lim[1] - 0.05 * x_range
|
||||
x_lim[2] <- x_lim[2] + 0.05 * x_range
|
||||
layer_vertical_line <- if (0 > x_lim[1] && 0 < x_lim[2]) {
|
||||
vline_0(color = "gray90", size = 0.5)
|
||||
} else {
|
||||
geom_ignore()
|
||||
}
|
||||
args_outer <- list(mapping = aes_(x = ~ll, xend = ~hh, y = ~parameter,
|
||||
yend = ~parameter)) #, color = bayesplot::get_color("mid"))
|
||||
args_inner <- list(mapping = aes_(x = ~l, xend = ~h, y = ~parameter,
|
||||
yend = ~parameter), size = 2, show.legend = FALSE)
|
||||
args_point <- list(mapping = aes_(x = ~m, y = ~parameter),
|
||||
data = data, size = 4, shape = 21)
|
||||
|
||||
args_point$color <- "blue" #get_color("dark_highlight")
|
||||
|
||||
point_func <- geom_point
|
||||
layer_outer <- do.call(geom_segment, args_outer)
|
||||
layer_inner <- do.call(geom_segment, args_inner)
|
||||
layer_point <- do.call(point_func, args_point)
|
||||
|
||||
data$parameter = factor(as.character(data$parameter),levels=plot_labels[order(plot_labels)[6:1]])
|
||||
# data = data[order(-data$m),]
|
||||
p = ggplot(data) +theme_pubr() + geom_point(aes(x=m,y=parameter,colour=type),position = position_dodge(-.5)) +
|
||||
geom_linerange(aes(xmin=ll,xmax=hh,y=parameter,colour=type),
|
||||
position = position_dodge(-.5)) +
|
||||
scale_x_continuous(breaks=seq(0,1,.25),labels = c("0%\n(no effect on transmissibility)",
|
||||
"25%","50%","75%","100%\n(ends transmissibility)"),
|
||||
expand=c(0.005,0.005),expression(paste("Relative % reduction in ",R[t]))) +
|
||||
scale_colour_manual(name = "", #labels = c("50%", "95%"),
|
||||
values = c(("coral4"), ("seagreen"))) +
|
||||
|
||||
geom_vline(xintercept=1,colour="darkgray") +
|
||||
scale_y_discrete("Governmental intervention\n") +
|
||||
#geom_vline(xintercept=0,colour="darkgray") +
|
||||
theme(plot.margin = margin(0, 2, 0, .5, "cm"))
|
||||
#+ guides(fill=guide_legend(nrow=2))
|
||||
p
|
||||
ggsave(filename = "results/covars-alpha-reduction.pdf",
|
||||
p,height=4,width=8)
|
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
Двоичные данные
data/COVID-19-up-to-date.rds
Двоичные данные
data/COVID-19-up-to-date.rds
Двоичный файл не отображается.
|
@ -1,79 +1,84 @@
|
|||
Country,schools_universities,travel_restrictions,public_events,sport,lockdown,social_distancing_encouraged,self_isolating_if_ill,,Data inputted by,"note: enter the date on which the closing occurred, e.g. as the last day of UK schools will be 2020-03-20, I entered 2020-03-21",comments,Enter your github username below,,,,,,,,,startdate
|
||||
Austria,2020-03-14,2020-03-13,2020-03-10,2020-03-15,2020-03-16,2020-03-16,2020-03-16,,Michaela,,,ettieunwin,,,,,,,,,2020-03-15
|
||||
Belgium,2020-03-14,2020-03-19,2020-03-12,2020-03-14,2020-03-18,2020-03-14,2020-03-10,,Tresnia,,Belgium closed border for non essential travel https://en.wikipedia.org/wiki/2020_coronavirus_pandemic_in_Belgium#cite_note-101,,,,,,,,,,2020-03-14
|
||||
Denmark,2020-03-13,2020-03-13,2020-03-12,2020-03-12,2020-03-18,2020-03-13,2020-03-12,,Michaela + Helen,,Denmark closed borders entirely on the 14th see https://en.wikipedia.org/wiki/2020_coronavirus_pandemic_in_Denmark#cite_note-90,hcoupland,,,,,,,,,2020-03-16
|
||||
France,2020-03-14,2020-03-17,2020-03-13,2020-02-13,2020-03-17,2020-03-16,2020-03-16,,Ettie,,,harrisonzhu508,,,,,,,,,2020-03-13
|
||||
Germany,2020-03-14,2020-03-16,2020-03-22,2020-03-13,2020-03-22,2020-03-12,2020-03-06,,Ettie,https://drive.google.com/file/d/1J2WMTz33nvyIH8jwKTR1RWRz0iWx1MOj/view?usp=sharing,,Tresnia,,,,,,,,,2020-03-15
|
||||
Italy,2020-03-05,2020-03-09,2020-03-09,2020-03-09,2020-03-11,2020-03-09,2020-03-09,,Harrison,,,,,,,,,,,,2020-03-14
|
||||
Norway,2020-03-13,2020-03-13,2020-03-12,2020-03-13,2020-03-24,2020-03-16,2020-03-15,,Seth + Helen,,,tmellan,,,,,,,,,2020-03-13
|
||||
Spain,2020-03-13,2020-03-12,2020-03-14,2020-03-13,2020-03-14,2020-03-09,2020-03-17,,Ettie + Pablo,,,MonkeyfaceMx,,,,,,,,,2020-03-18
|
||||
Sweden,2020-3-18,2020-03-19,2020-03-12,2020-03-12,2090-03-21,2020-03-16,2020-03-10,,Michaela + Isak,,,isakfalk,,,,,,,,,2020-03-14
|
||||
Switzerland,2020-03-14,2020-03-18,2020-03-13,2020-03-16,2020-03-20,2020-03-16,2020-03-02,,Harrison,,,sarahfilippi,,,,,,,,,2020-03-14
|
||||
United_Kingdom,2020-03-21,2020-03-24,2020-03-24,2020-03-13,2020-03-24,2020-03-16,2020-03-12,,Seth,,,flaxter,,,,,,,,,2020-03-16
|
||||
,,,,,,,,,,,,,,,,,,,,,2020-03-18
|
||||
Partial lockdowns,,,,,,,,,,,,,,,,,,,,,2020-03-30
|
||||
Country,Type of intervention,,Date,Effected population,,,,,,,,,,,,,,,,,2020-03-12
|
||||
Italy,Lockdown of Lombardy region and 14 other provinces,,2020-03-08,26%,,,,,,,,,,,,,,,,,2020-03-13
|
||||
Italy,self-isolate if ill and quarantine if tested positive,,2020-03-08,extended to whole country on 9/03,,,,,,,,,,,,,,,,,2020-03-13
|
||||
Italy,Extended lockdown (non-essential shops + restaurants + caffee still open),,2020-03-09,,,,,,,,,,,,,,,,,,2020-03-12
|
||||
Italy,Extended lockdown + closure of non-essential shops,,2020-03-11,,,,,,,,,,,,,,,,,,2020-03-14
|
||||
Italy,Extended lockdown + further closure of non-essential businesses and activities,,2020-03-22,,,,,,,,,,,,,,,,,,2020-03-16
|
||||
Spain,"Bans events > 1000 people in Basque Country and La Rioja, Madrid",,2020-03-10,,,,,,,,,,,,,,,,,,17/03/2020
|
||||
Spain,"La Rioja, Haro was put on lockdown",,2020-03-07,,,1225802,,,,,,,,,,,,,,,2020-03-14
|
||||
Spain,Schools closed in Basque region and Madrid,,2020-03-09,,,,,,,,,,,,,,,,,,2020-03-14
|
||||
Denmark,Bans events >100 people,,2020-03-12,,,,,,,,,,,,,,,,,,2020-03-17
|
||||
Denmark,Bans events >10 people,,2020-03-18,,,,,,,,,,,,,,,,,,2020-03-23
|
||||
Belgium,"Police giving fines (from 200 euros to euros 500 and arresting ppl who are out for no reason, but no self authorisation forms as in france or italy",,,https://www.forbes.com/sites/davidnikel/2020/03/14/norway-closes-all-airports-to-foreigners-as-coronavirus-cases-mount/#35214fc41913,,,,,,,,,,,,,,,,,2020-03-16
|
||||
Germany,Lockdown in Bavaria,,2020-03-20,,,,,,,,,,,,,,,,,,2020-03-14
|
||||
Germany,Non-essential shops closed,,2020-03-16,,,,,,,,,,,,,,,,,,2020-03-12
|
||||
Spain,"Non-essential shops closed + ""partial lockdown""",,2020-03-15,,,,,,,,,,,,,,,,,,2020-03-16
|
||||
Germany,reduce social interaction recommendations by Merkel,,2020-03-12,,,,,,,,,,,,,,,,,,2020-03-11
|
||||
Switzerland,self-isolate if ill,,2020-03-11,,,,,,,,,,,,,,,,,,2020-03-09
|
||||
Austria,1m distance by law,,2020-03-16,,,,,,,,,,,,,,,,,,2020-03-04
|
||||
Germany,Robert Koch Inst recommends self isolation,,2020-03-05,,,,,,,,,,,,,,,,,,2020-03-09
|
||||
Austria,stay home if symptoms and coming form region,,,,,,,,,,,,,,,,,,,,2020-03-09
|
||||
Germany,Gatherings of > 2 people banned,,2020-03-22,"for the whole country, 22% are not allowed without good reason",,,,,,,,,,,,,,,,,2020-03-13
|
||||
France,Closure of schools and universities,,2020-03-16,,,,,,,,,,,,,,,,,,2020-03-12
|
||||
France,Closure of non-essential shops,,2020-03-15,,,,,,,,,,,,,,,,,,2020-03-13
|
||||
France,Lockdown: everybody should stay at home. Exceptions: going to work if not possible to work from home; food shopping; medical appointment; some caring duties; physical exercise alone around home) -- Need a self-authorisation form to leave home.,,2020-03-17,,,,,,,,,,,,,,,,,,2020-03-12
|
||||
France,Bans events >5000 people,,2020-02-29,,,,,,,,,,,,,,,,,,2020-03-14
|
||||
France,Bans events >1000 people,,2020-03-08,,,,,,,,,,,,,,,,,,2020-03-15
|
||||
France,Bans events >100 people,,2020-03-13,,,,,,,,,,,,,,,,,,2020-03-12
|
||||
Belgium,Bans gathering >2 persons (except family),,2020-03-18,,,,,,,,,,,,,,,,,,2020-03-13
|
||||
Belgium,School closed,,2020-03-16,,,,,,,,,,,,,,,,,,2020-03-12
|
||||
Belgium,"Non essential shops closed (exceptions: food shops, pharmacies, bookstores, gaz stations, hairdressers)",,2020-03-18,,,,,,,,,,,,,,,,,,2020-03-12
|
||||
,,,,,,,,,,,,,,,,,,,,,21/03/2090
|
||||
Switzerland,Kissing and shaking hands advised against,,2020-03-01,,,,,,,,,,,,,,,,,,12/03/2020
|
||||
Country,Population 0-9,,Population 10-19,Population 30-39,Population 40-49,Population 50-59,Population 60-69,,Population 70-79,Population 80+,Total (Thousands),,,,,,,,,,18/03/2020
|
||||
UK,8.044.056,,7.642.473,9.295.024,8.604.251,9.173.465,7.286.777,,5.830.635,3.450.616,59.327.297,,,,,,,,,,2020-03-16
|
||||
Austria,874.182,,876.208,1.243.416,1.178.265,1.407,1033.32,,790.437,488.195,7.891.023,,,,,,,,,,19/03/2020
|
||||
Denmark,606.029,,675.948,672.29,738.207,810.126,654.53,,586.138,272.973,5.016.241,,,,,,,,,,20/03/2091
|
||||
France,7.527.474,,7.883.477,8011.05,8.325.667,8.635.057,7.764.786,,5.727.704,4.027.268,57.902.483,,,,,,,,,,16/03/2020
|
||||
Germany,7.880.904,,7.930.616,10872.02,10.243.351,13.488.393,10.644.142,,7.471.414,5.875.744,74.406.584,,,,,,,,,,13/03/2020
|
||||
Norway,614.323,,643.031,738.724,724.93,712.508,586.156,,446.448,228.739,4.694.859,,,,,,,,,,09/03/2020
|
||||
Spain,4.234.487,,4.736.077,5.901.993,7.938.499,7.046.327,5.340.654,,4.015.306,2.923.841,42.137.184,,,,,,,,,,18/03/2020
|
||||
Sweden,1.193.951,,1.127.127,1.320.299,1.264.123,1.296.647,1.093.868,,994.244,532.081,8822.34,,,,,,,,,,23/03/2020
|
||||
Switzerland,884.945,,834.867,1.219.224,1.166.588,1.320.622,977.435,,751.993,459.215,7.614.889,,,,,,,,,,21/03/2020
|
||||
Italy,4.994.995,,5.733.448,6.998.434,9.022.004,9.567.192,7.484.862,,6.028.908,4.528.549,54.358.392,,,,,,,,,,21/03/2020
|
||||
,,,,,,,,,,,,,,,,,,,,,16/03/2020
|
||||
,,,,,,,,,,,,,,,,,,,,,23/03/2020
|
||||
,,,,,,,,,,,,,,,,,,,,,
|
||||
NRW,17933,,,,,,,,,,,,,,,,,,,,
|
||||
Bayern,13077,,,,,,,,,,,,,,,,,,,,
|
||||
BW,11070,,,,,,,,,,,,,,,,,,,,
|
||||
Niedersachsen,7982,,,,,,,,,,,,,,,,,,,,
|
||||
Hessen,6266,,,,,,,,,,,,,,,,,,,,
|
||||
RP,4085,,,,,,,,,,,,,,,,,,,,
|
||||
Sachsen,4078,,,,,,,,,,,,,,,,,,,,
|
||||
Berlin,3645,,,,,,,,,,,,,,,,,,,,
|
||||
SH,2897,,,,,,,,,,,,,,,,,,,,
|
||||
Brandenburg,2512,,,,,,,,,,,,,,,,,,,,
|
||||
Sachsen A,2208,,,,,,,,,,,,,,,,,,,,
|
||||
Thueringen,2143,,,,,,,,,,,,,,,,,,,,
|
||||
Hamburg,1841,,,,,,,,,,,,,,,,,,,,
|
||||
MeckPom,1610,,,,,,,,,,,,,,,,,,,,
|
||||
Saarland,991,,,,,,,,,,,,,,,,,,,,
|
||||
Bremen 683,683,,,,,,,,,,,,,,,,,,,,
|
||||
,,,,,,,,,,,,,,,,,,,,,
|
||||
,83021,,,,,,,,,,,,,,,,,,,,
|
||||
,"0,2185712049",,,,,,,,,,,,,,,,,,,,
|
||||
Country,Type,Event,Date effective,Link,,
|
||||
Austria,Schools + Universities,Nationwide school closures.,14.03.2020,https://www.bmbwf.gv.at/Ministerium/Informationspflicht/corona/corona_status.html,,
|
||||
Austria,Public events,Banning of gatherings of more than 10 people. ,10.03.2020,https://www.theguardian.com/world/2020/mar/10/coronavirus-several-eu-states-ban-mass-events-after-italian-lockdown,,
|
||||
Austria,Lockdown,Banning all access to public spaces and gatherings of more than 5 people. Advice to maintain 1m distance.,16.03.2020,https://www.sozialministerium.at/Informationen-zum-Coronavirus/Coronavirus---Aktuelle-Ma%C3%9Fnahmen.html,Document on website: Verordnung_V20200325-web,
|
||||
Austria,Social distancing encouraged,Recommendation to maintain a distance of 1m.,16.03.2020,https://www.sozialministerium.at/Informationen-zum-Coronavirus/Coronavirus---Aktuelle-Ma%C3%9Fnahmen.html,Document on website: Verordnung_V20200325-web,
|
||||
Austria,Self-isolating if ill,Implemented at lockdown.,16.03.2020,https://www.sozialministerium.at/Informationen-zum-Coronavirus/Coronavirus---Aktuelle-Ma%C3%9Fnahmen.html,,
|
||||
Belgium,Schools + Universities,Nationwide school closures.,14.03.2020,https://www.info-coronavirus.be/en/2020/03/12/phase-2-maintained-transition-to-the-federal-phase-and-additional-measures/,,
|
||||
Belgium,Public events,All recreational activities cancelled regardless of size.,12.03.2020,https://www.info-coronavirus.be/en/2020/03/12/phase-2-maintained-transition-to-the-federal-phase-and-additional-measures/,,
|
||||
Belgium,Lockdown,Citizens are required to stay at home except for work and essential journeys. Going outdoors only with household members or 1 friend.,18.03.2020,https://www.belgium.be/en/news/2020/coronavirus_reinforced_measures,,
|
||||
Belgium,Social distancing encouraged,"Public transport recommended only for essential journeys, work from home encouraged, all public places e.g. restaurants closed.",14.03.2020,https://www.info-coronavirus.be/en/2020/03/12/phase-2-maintained-transition-to-the-federal-phase-and-additional-measures/,,
|
||||
Belgium,Self-isolating if ill,Everyone should stay at home if experiencing a cough or fever.,10.03.2020,https://www.info-coronavirus.be/en/2020/03/10/protect-yourself-and-protect-the-others/,,
|
||||
Denmark,Schools + Universities,Secondary schools shut and universities (primary schools also shut on 16th).,13.03.2020,https://en.wikipedia.org/wiki/2020_coronavirus_pandemic_in_Denmark,,
|
||||
Denmark,Public events,"Bans of events >100 people, closes cultural institutions, leisure facilities etc.",12.03.2020,https://nyheder.tv2.dk/samfund/2020-03-11-danmark-lukker-ned-her-er-regeringens-nye-tiltag,,
|
||||
Denmark,Lockdown,Bans of gatherings of >10 people in public and all public places were shut.,18.03.2020,https://nyheder.tv2.dk/samfund/2020-03-11-danmark-lukker-ned-her-er-regeringens-nye-tiltag,https://en.wikipedia.org/wiki/2020_coronavirus_pandemic_in_Denmark,
|
||||
Denmark,Social distancing encouraged,Limited use of public transport. All cultural institutions shut and recommendation to keep appropriate distance.,13.03.2020,https://politi.dk/coronavirus-i-danmark/seneste-nyt-fra-myndighederne/nye-tiltag-mod-covid-19,,
|
||||
Denmark,Self-isolating if ill,Everyone should stay at home if experiencing a cough or fever.,12.03.2020,https://stps.dk/da/ansvar-og-retningslinjer/vejledning/indberetning-om-covid-19/,,
|
||||
France,Schools + Universities,Nationwide school closures.,14.03.2020,https://en.wikipedia.org/wiki/2020_coronavirus_pandemic_in_France,,
|
||||
France,Public events,Bans of events >100 people.,13.03.2020,https://www.thelocal.fr/20200313/france-bans-gatherings-of-over-100-people-to-fight-coronavirus-pandemic,,
|
||||
France,Lockdown,Everybody has to stay at home. Need a self-authorisation form to leave home.,17.03.2020,https://www.theguardian.com/world/2020/mar/16/coronavirus-spain-takes-over-private-healthcare-amid-more-european-lockdowns,,
|
||||
France,Social distancing encouraged,Advice at the time of lockdown.,16.03.2020,https://www.theguardian.com/world/2020/mar/16/coronavirus-spain-takes-over-private-healthcare-amid-more-european-lockdowns,,
|
||||
France,Self-isolating if ill,Advice at the time of lockdown.,16.03.2020,https://www.theguardian.com/world/2020/mar/16/coronavirus-spain-takes-over-private-healthcare-amid-more-european-lockdowns,,
|
||||
Germany,Schools + Universities,Nationwide school closures.,14.03.2020,https://en.wikipedia.org/wiki/2020_coronavirus_pandemic_in_Germany,,
|
||||
Germany,Public events,No gatherings of >1000 people (12th March). Otherwise regional destrictions only until lockdown.,22.03.2020,https://web.archive.org/web/20200317073042/https://www.bmi.bund.de/SharedDocs/faqs/DE/themen/bevoelkerungsschutz/coronavirus/coronavirus-faqs.html#doc13738352bodyText7,,
|
||||
Germany,Lockdown,"Gatherings of > 2 people banned, 1.5 m distance",22.03.2020,https://www.bmi.bund.de/SharedDocs/downloads/DE/veroeffentlichungen/2020/hinweis-einschraenkung-soziale-kontakte.pdf?__blob=publicationFile&v=1,https://www.bbc.co.uk/news/world-europe-51999080,
|
||||
Germany,Social distancing encouraged,Avoid social interaction wherever possible recommended by Merkel,12.03.2020,https://www.bundesregierung.de/breg-de/themen/coronavirus/mpk-1730186,,
|
||||
Germany,Self-isolating if ill,Advice for everyone experiencing symptoms to contact a health care agency to get tested and then self-isolate.,06.03.2020,https://web.archive.org/web/20200312004624/https://www.rki.de/SharedDocs/FAQ/NCOV2019/FAQ_Liste.html,,
|
||||
Italy,Schools + Universities,Nationwide school closures.,05.03.2020,http://www.salute.gov.it/portale/nuovocoronavirus/dettaglioVideoNuovoCoronavirus.jsp?lingua=italiano&menu=multimedia&p=video&id=2052,,
|
||||
Italy,Public events,The government bans all public events.,09.03.2020,https://edition.cnn.com/2020/03/08/europe/italy-coronavirus-lockdown-europe-intl/index.html,,
|
||||
Italy,Lockdown,The government closes all public places. People have to stay at home except for essential travel.,11.03.2020,https://www.wsj.com/articles/italy-hardens-nationwide-quarantine-11583962093,https://en.wikipedia.org/wiki/2020_Italy_coronavirus_lockdown,
|
||||
Italy,Social distancing encouraged,A distance of more than 1m has to be kept and any other form of alternative aggregation is to be excluded.,09.03.2020,https://www.romatoday.it/attualita/coronavirus-pub-cinema-teatri-locali-chiusi-nuovo-decreto.html,,
|
||||
Italy,Self-isolating if ill,self-isolate if ill and quarantine if tested positive,09.03.2020,https://www.gazzettaufficiale.it/eli/id/2020/03/08/20A01522/sg,,
|
||||
Norway,Schools + Universities,Norwegian Directorate of Health closes all educational institutions. Including childcare facilities and all schools,13.03.2020,https://www.fhi.no/en/news/2020/norwegian-directorate-of-health-implements-the-following-today---from-6-p.m/,,
|
||||
Norway,Public events,The Directorate of Health bans all non-necessary social contact.,12.03.2020,https://www.fhi.no/en/news/2020/norwegian-directorate-of-health-implements-the-following-today---from-6-p.m/,,
|
||||
Norway,Lockdown,Only people living together are allowed outside together. Everyone has to keep a 2m distance.,24.03.2020,https://translate.google.com/translate?sl=no&tl=en&u=https%3A%2F%2Fwww.nrk.no%2Fnorge%2Ffolkehelseinstituttet-mener-23.000-kan-vaere-smittet-1.14958149,,
|
||||
Norway,Social distancing encouraged,The Directorate of Health advises against all travelling and non-necessary social contacts.,16.03.2020,https://www.fhi.no/en/news/2020/norwegian-directorate-of-health-implements-the-following-today---from-6-p.m/,,
|
||||
Norway,Self-isolating if ill,Advice to self-isolate for 7 days if experiencing a cough or fever symptoms.,15.03.2020,https://www.regjeringen.no/en/aktuelt/the-government-is-establishing-clear-quarantine-and-isolation-rules/id2693647/,,
|
||||
Spain,Schools + Universities,Nationwide school closures.,13.03.2020,https://en.wikipedia.org/wiki/2020_coronavirus_pandemic_in_Spain,,
|
||||
Spain,Public events,Banning of all public events by lockdown.,14.03.2020,https://www.mscbs.gob.es/gabinete/notasPrensa.do?id=4807,,
|
||||
Spain,Lockdown,,14.03.2020,https://www.boe.es/eli/es/rd/2020/03/14/463/con,,
|
||||
Spain,Social distancing encouraged,Advice on social distancing and working remotely from home. ,09.03.2020,https://www.mscbs.gob.es/gabinete/notasPrensa.do?id=4806,used to say 12/3/2020,
|
||||
Spain,Self-isolating if ill,,17.03.2020,https://www.mscbs.gob.es/profesionales/saludPublica/ccayes/alertasActual/nCov-China/ciudadania.htm,,
|
||||
Sweden,Schools + Universities,Colleges and upper secondary schools shut. 18/3/2020 only 48% closed,17.03.2090,https://www.folkhalsomyndigheten.se/nyheter-och-press/nyhetsarkiv/2020/mars/larosaten-och-gymnasieskolor-uppmanas-nu-att-bedriva-distansundervisning,,
|
||||
Sweden,Public events,Since March 29 the limit is 50 persons.,29.03.2020,https://www.visitstockholm.com/good-to-know/coronavirus/,,
|
||||
Sweden,Lockdown,No lockdown occured.,17.03.2090,,,
|
||||
Sweden,Social distancing encouraged,"People even with mild symptoms told to limit social contact, encouragement to work from home.",16.03.2020,https://sverigesradio.se/sida/artikel.aspx?programid=2054&artikel=7430511,,
|
||||
Sweden,Self-isolating if ill,,10.03.2020,https://www.folkhalsomyndigheten.se/nyheter-och-press/nyhetsarkiv/2020/mars/flera-tecken-pa-samhallsspridning-av-covid-19-i-sverige/,,
|
||||
Switzerland,Schools + Universities,No in person teaching until 4th of April.,14.03.2020,https://www.bag.admin.ch/bag/de/home/das-bag/aktuell/medienmitteilungen.msg-id-78437.html,,
|
||||
Switzerland,Public events,The government bans events >100 people.,13.03.2020,https://www.bag.admin.ch/bag/fr/home/das-bag/aktuell/medienmitteilungen.msg-id-78437.html,,
|
||||
Switzerland,Lockdown,Gatherings of more than 5 people are banned.,20.03.2020,https://www.bag.admin.ch/bag/de/home/das-bag/aktuell/medienmitteilungen.msg-id-78513.html,,
|
||||
Switzerland,Social distancing encouraged,Advice on keeping distance. All business where this cannot be realised have been closed in all states (kantons).,16.03.2020,https://www.bag.admin.ch/bag/de/home/das-bag/aktuell/medienmitteilungen.msg-id-78454.html,,
|
||||
Switzerland,Self-isolating if ill,Advice to self-isolate if experiencing a cough or fever symptoms.,02.03.2020,https://www.bag.admin.ch/bag/de/home/das-bag/aktuell/medienmitteilungen.msg-id-78304.html,,
|
||||
United_Kingdom,Schools + Universities,"Nationwide school closure. Childminders, nurseries and sixth forms are told to follow the guidance.",21.03.2020,https://www.gov.uk/government/news/schools-colleges-and-early-years-settings-to-close,https://www.gov.uk/government/collections/coronavirus-covid-19-guidance-for-schools-and-other-educational-settings,
|
||||
United_Kingdom,Public events,Implemented with lockdown.,24.03.2020,https://www.gov.uk/government/speeches/pm-address-to-the-nation-on-coronavirus-23-march-2020,https://assets.publishing.service.gov.uk/government/uploads/system/uploads/attachment_data/file/874742/Full_guidance_on_staying_at_home_and_away_from_others__1_.pdf,
|
||||
United_Kingdom,Lockdown,Gatherings of more than 2 people not from the same household banned and police-enforceable.,24.03.2020,https://www.gov.uk/government/speeches/pm-address-to-the-nation-on-coronavirus-23-march-2020,,
|
||||
United_Kingdom,Social distancing encouraged,"Advice to avoid pubs, clubs, theatres and other public institutions.",16.03.2020,https://www.telegraph.co.uk/global-health/science-and-disease/coronavirus-news-uk-latest-update-covid-19-death-toll-cases/,,
|
||||
United_Kingdom,Self-isolating if ill,Advice to self-isolate for 7 days if experiencing a cough or fever symptoms.,12.03.2020,https://www.bbc.co.uk/news/uk-51857856,,
|
||||
Greece,Schools + Universities,Nationwide closure of educational institutions,11.03.2020,https://www.kathimerini.gr/1068505/article/epikairothta/ellada/kleinoyn-gia-dyo-evdomades-sxoleia-panepisthmia-paidikoi-sta8moi-kai-frontisthria,Lucia,
|
||||
Greece,Public events,Ban of gatherings of more than 10 people,19.03.2020,https://www.garda.com/crisis24/news-alerts/322026/greece-prime-minister-bans-mass-gatherings-due-to-covid-19-march-11-update-5,Lucia,"(larger mass gatherings banned before, but couldn't get a clear start date)"
|
||||
Greece,Lockdown,Ban on non-essential transport and movement across the country. Police enforcing restrictions with fines.,23.03.2020,https://www.in.gr/2020/03/22/greece/apagoreysi-kykloforias-analytikos-odigos-pou-tha-epitrepetai-metakinisi-ti-tha-isxysei-gia-tous-ergazomenous/,Lucia,(weddings and ceremonies still allowed under conditions provided by law)
|
||||
Greece,Social distancing encouraged,"In supermarkets, pharmacies and other essentials keep 2mt distance",16.03.2020,https://www.news247.gr/epixeiriseis/koronoios-elegchos-eisodoy-sta-soyper-market-apo-deytera.7602282.html,Lucia,
|
||||
Greece,Self-isolating if ill,Isolate at home if showing mild symptoms or fever,09.03.2020,http://www.ekathimerini.com/250416/article/ekathimerini/news/with-covid-19-cases-at-84-those-with-symptoms-urged-to-stay-home,Lucia,
|
||||
Greece,Closure of cultural institutions,"closure of Cinemas, theaters, theaters, Libraries, Museums, archaeological and historical sites",14.03.2020,https://eody.gov.gr/anastoli-leitoyrgias-meta-apo-eisigisi-tis-epitropis-empeirognomonon-toy-ypoyrgeioy-ygeias/,Lucia,
|
||||
Greece,Closure of restaurants,"closure of malls, cafes, bars and food outlets",14.03.2020,http://www.ekathimerini.com/250618/article/ekathimerini/news/malls-cafes-bars-eateries-to-close-as-coronavirus-cases-rise-to-190,Lucia,
|
||||
Greece,Advice to work from home,Govt endorses flexible working hours and teleworking,10.03.2020,http://en.protothema.gr/greek-government-plans-flexible-working-hours-and-telework-to-battle-coronavirus/,Lucia,"(not specifically working from home, but allows workers to avoid rush hour travel and to work from home if child is home from school or in the event of self isolation)"
|
||||
Greece,Keep distance from others,"Video from Greek government recommending keeping 1m distance (27 secs in) ""κρατάμε απόσταση τουλάχιστον 1 μέτρου από άλλους και ιδιαίτερα όσους βήχουν, φτέρνίξονται ή έχουν πυρετό"" = ""keep a distance of at least 1 meter from others and especially those who cough, sneeze or have a fever""",25.02.2020,https://government.gov.gr/aples-ke-chrisimes-odigies-gia-tin-prostasia-mas-apo-ton-koronoio/,Rebecca,
|
||||
Portugal,Schools + Universities,Nationwide school closures.,14.03.2020,https://covid19estamoson.gov.pt/wp-content/uploads/2020/03/20200313-Suspens%C3%86o-de-todas-as-atividades-letivas-e-n%C3%86o-letivas-com-presen%E2%80%A1a-de-estudantes-em-todas-as-institui%E2%80%A1a%CC%88es-de-Ensino-Superior.pdf,Rebecca,
|
||||
Portugal,Public events,Gatherings of more than 100 people banned.,12.03.2020,https://www.barrons.com/news/portugal-bans-gatherings-of-more-than-100-due-to-coronavirus-01584292204,Rebecca,
|
||||
Portugal,Lockdown,"State of emergency declared on the 18th and new measures defined on the 19th, to come into place on 00:00 of 22nd March",22.03.2020,https://www.politico.eu/article/portugal-quarantine-measures-coronavirus-covid19-antonio-costa-shutdown-state-of-emergency/,Rebecca,"(20200319 Communiqué of the Council of Ministers - Measures approved by the Council of Ministers on March 19, 2020) ""Decree takes effect on March 22 00:00"""
|
||||
Portugal,Social distancing encouraged,"Capacity restrictions of entry to bars and restaurants, encouraged to limit frequency of visits to supermarkets/gyms/public services. Nightclubs closed.",12.03.2020,https://covid19estamoson.gov.pt/wp-content/uploads/2020/03/20200312-Medidas-extraordin-rias-de-conten%E2%80%A1%C3%86o-e-mitiga%E2%80%A1%C3%86o-do-coronav%C2%A1rus-Conselho-de-Ministros-de-12-de-mar%E2%80%A1o-de-2020.pdf,Rebecca,
|
||||
Portugal,Self-isolating if ill,Mandatory isolation is imposed for people who are sick or being monitored by health authorities.,19.03.2020,https://www.politico.eu/article/portugal-quarantine-measures-coronavirus-covid19-antonio-costa-shutdown-state-of-emergency/,Rebecca,
|
||||
Portugal,Closure of cultural institutions,"The closure of certain types of facilities and establishments (such as, for example, those intended for recreational, cultural, sporting and catering activities, among others)",22.03.2020,https://covid19estamoson.gov.pt/documentacao/comunicados/,Rebecca,"Approved by ministers on March 19 but ""Decree takes effect on March 22 00:00"""
|
||||
Portugal,Closure of restaurants,"The closure of certain types of facilities and establishments (such as, for example, those intended for recreational, cultural, sporting and catering activities, among others)",22.03.2020,https://covid19estamoson.gov.pt/documentacao/comunicados/,Rebecca,"Approved by ministers on March 19 but ""Decree takes effect on March 22 00:00"""
|
||||
Portugal,Work from home,É obrigatória a adoção do regime de teletrabalho sempre que as funções em causa o permitam - google translation: It is mandatory to adopt the teleworking regime whenever the functions in question allow,22.03.2020,https://covid19estamoson.gov.pt/documentacao/comunicados/,Rebecca,"Approved by ministers on March 19 but ""Decree takes effect on March 22 00:00"""
|
||||
Portugal,Stay at home,"States that everyone who isn't in mandatory confinement or an essential worker should only go out in public for essential reasons e.g. health reasons, acquisition of goods, caring for the vulnerable, exercise.",22.03.2020,https://covid19estamoson.gov.pt/documentacao/comunicados/,Rebecca,"Approved by ministers on March 19 but ""Decree takes effect on March 22 00:00"""
|
||||
Portugal,Keep distance from others,"Transmission prevention measures in public service establishments: ""Maintain distance and space between citizens in all situations"" and ""Ensure that counter service is provided at the appropriate distance (at least 1 meter, ideally 2)""",17.03.2020,https://covid19.min-saude.pt/wp-content/uploads/2020/03/i026012.pdf,Rebecca,
|
||||
Portugal,Public gatherings,Gatherings of more than 5 people prohibited (except those with family ties).,02.04.2020,https://www.portugal.gov.pt/pt/gc22/governo/comunicado-de-conselho-de-ministros?i=339,Rebecca,
|
||||
Netherlands,Schools + Universities,exemption for children of essential workers,14.03.2020,https://www.rijksoverheid.nl/actueel/nieuws/2020/03/15/aanvullende-maatregelen-onderwijs-horeca-sport,Pablo,
|
||||
Netherlands,Public events,Public gatherings >100 people,12.03.2020,https://www.iq-mag.net/2020/03/dutch-government-bans-events-100-people/#.XoxumC2Q3yk,Pablo,https://www.rijksoverheid.nl/actueel/nieuws/2020/03/12/nieuwe-maatregelen-tegen-verspreiding-coronavirus-in-nederland
|
||||
Netherlands,Social distancing encouraged,"Social distancing and self-isolation for people with flue-like symptoms as of Marc 12 for the whole country, previously only for the Noord-Brabant province",12.03.2020,https://www.rivm.nl/en/news/expansion-of-coronavirus-measures,Pablo,https://www.rijksoverheid.nl/actueel/nieuws/2020/03/12/nieuwe-maatregelen-tegen-verspreiding-coronavirus-in-nederland
|
||||
Netherlands,Lockdown,"Intelligent lockdown, people are still allowed to meet if keeping their distance",23.03.2020,,,
|
||||
Netherlands,Self-isolating if ill,"Social distancing and self-isolation for people with flue-like symptoms as of Marc 12 for the whole country, previously only for the Noord-Brabant province",12.03.2020,https://www.rivm.nl/en/news/expansion-of-coronavirus-measures,Pablo,
|
||||
Netherlands,Closure of cultural institutions,"museums, concert halls and theatres were closed following the ban of large gatherings",12.03.2020,https://www.rijksoverheid.nl/actueel/nieuws/2020/03/12/nieuwe-maatregelen-tegen-verspreiding-coronavirus-in-nederland,Lucia,
|
||||
Netherlands,Closure of restaurants,"Schools, restaurants, gyms, sports venues, sex clubs, etc. closed as of 18:00hrs March 15",15.03.2020,https://www.rijksoverheid.nl/actueel/nieuws/2020/03/15/aanvullende-maatregelen-onderwijs-horeca-sport,,
|
||||
Netherlands,Advice to work from home,,12.03.2020,https://www.rijksoverheid.nl/actueel/nieuws/2020/03/12/nieuwe-maatregelen-tegen-verspreiding-coronavirus-in-nederland,Lucia,
|
|
|
@ -0,0 +1,15 @@
|
|||
"","country","popt","ifr"
|
||||
"1","Denmark",5792203,0.0102074697882139
|
||||
"2","Norway",5421242,0.00914956406203488
|
||||
"3","Sweden",10099270,0.0103110432111081
|
||||
"4","United Kingdom",67886004,0.0103504384028517
|
||||
"5","Italy",60461828,0.0124496263593357
|
||||
"6","Spain",46754783,0.0107838730158524
|
||||
"7","Austria",9006400,0.0103882259256609
|
||||
"8","Belgium",11589616,0.0109598776668092
|
||||
"9","France",65273512,0.012556187488595
|
||||
"10","Germany",83783945,0.0123324426034139
|
||||
"11","Switzerland",8654618,0.0102134528252841
|
||||
"12","Greece",10423056,0.0117992290838236
|
||||
"13","Portugal",10196707,0.0117258680881815
|
||||
"14","Netherlands",17134873,0.010289760240957
|
|
|
@ -1,12 +0,0 @@
|
|||
,"Region, subregion, country or area *",0-9,Oct-19,20-29,30-39,40-49,50-59,60-69,70-79,80+,weighted_fatality,population
|
||||
3345,Denmark,606.029,675.948,775.962,672.29,738.207,810.126,654.53,586.138,272.973,0.008792,5792.203
|
||||
3450,Norway,614.323,643.031,726.383,738.724,724.93,712.508,586.156,446.448,228.739,0.007924,5421.242
|
||||
3465,Sweden,1193.951,1127.127,1276.93,1320.299,1264.123,1296.647,1093.868,994.244,532.081,0.008856,10099.27
|
||||
3480,United Kingdom,8044.056,7642.473,8558.707,9295.024,8604.251,9173.465,7286.777,5830.635,3450.616,0.009185,67886.004
|
||||
3570,Italy,4994.995,5733.448,6103.436,6998.434,9022.004,9567.192,7484.862,6028.908,4528.549,0.010893,60461.828
|
||||
3675,Spain,4234.487,4736.077,4617.599,5901.993,7938.499,7046.327,5340.654,4015.306,2923.841,0.009262,46754.783
|
||||
3705,Austria,874.182,876.208,1115.377,1243.416,1178.265,1407,1033.32,790.437,488.195,0.008967,9006.4
|
||||
3720,Belgium,1302.703,1312.251,1386.085,1503.997,1518.439,1598.741,1369.876,939.413,658.111,0.009818,11589.616
|
||||
3735,France,7527.474,7883.477,7371.029,8011.05,8325.667,8635.057,7764.786,5727.704,4027.268,0.011526,65273.512
|
||||
3750,Germany,7880.904,7930.616,9377.361,10872.02,10243.351,13488.393,10644.142,7471.414,5875.744,0.010928,83783.945
|
||||
3795,Switzerland,884.945,834.867,1039.729,1219.224,1166.588,1320.622,977.435,751.993,459.215,0.008815,8654.618
|
|
|
@ -22,9 +22,19 @@ make_three_pannel_plot <- function(){
|
|||
filename2 <- args[1]
|
||||
load(paste0("results/", filename2))
|
||||
print(sprintf("loading: %s",paste0("results/",filename2)))
|
||||
data_interventions <- read.csv("data/interventions.csv",
|
||||
stringsAsFactors = FALSE)
|
||||
covariates <- data_interventions[1:11, c(1,2,3,4,5,6, 7, 8)]
|
||||
covariates = read.csv('data/interventions.csv', stringsAsFactors = FALSE)
|
||||
names_covariates = c('Schools + Universities','Self-isolating if ill', 'Public events', 'Lockdown', 'Social distancing encouraged')
|
||||
covariates <- covariates %>%
|
||||
filter((Type %in% names_covariates))
|
||||
covariates <- covariates[,c(1,2,4)]
|
||||
covariates <- spread(covariates, Type, Date.effective)
|
||||
names(covariates) <- c('Country','lockdown', 'public_events', 'schools_universities','self_isolating_if_ill', 'social_distancing_encouraged')
|
||||
covariates <- covariates[c('Country','schools_universities', 'self_isolating_if_ill', 'public_events', 'lockdown', 'social_distancing_encouraged')]
|
||||
covariates$schools_universities <- as.Date(covariates$schools_universities, format = "%d.%m.%Y")
|
||||
covariates$lockdown <- as.Date(covariates$lockdown, format = "%d.%m.%Y")
|
||||
covariates$public_events <- as.Date(covariates$public_events, format = "%d.%m.%Y")
|
||||
covariates$self_isolating_if_ill <- as.Date(covariates$self_isolating_if_ill, format = "%d.%m.%Y")
|
||||
covariates$social_distancing_encouraged <- as.Date(covariates$social_distancing_encouraged, format = "%d.%m.%Y")
|
||||
|
||||
for(i in 1:11){
|
||||
print(i)
|
||||
|
@ -44,20 +54,16 @@ make_three_pannel_plot <- function(){
|
|||
estimated_deaths_li2 <- colQuantiles(estimated.deaths[,1:N,i], probs=.25)
|
||||
estimated_deaths_ui2 <- colQuantiles(estimated.deaths[,1:N,i], probs=.75)
|
||||
|
||||
rt <- colMeans(out$Rt[,1:N,i])
|
||||
rt_li <- colQuantiles(out$Rt[,1:N,i],probs=.025)
|
||||
rt_ui <- colQuantiles(out$Rt[,1:N,i],probs=.975)
|
||||
rt_li2 <- colQuantiles(out$Rt[,1:N,i],probs=.25)
|
||||
rt_ui2 <- colQuantiles(out$Rt[,1:N,i],probs=.75)
|
||||
rt <- colMeans(out$Rt_adj[,1:N,i])
|
||||
rt_li <- colQuantiles(out$Rt_adj[,1:N,i],probs=.025)
|
||||
rt_ui <- colQuantiles(out$Rt_adj[,1:N,i],probs=.975)
|
||||
rt_li2 <- colQuantiles(out$Rt_adj[,1:N,i],probs=.25)
|
||||
rt_ui2 <- colQuantiles(out$Rt_adj[,1:N,i],probs=.75)
|
||||
|
||||
|
||||
# delete these 2 lines
|
||||
covariates_country <- covariates[which(covariates$Country == country), 2:8]
|
||||
|
||||
# Remove sport
|
||||
covariates_country$sport = NULL
|
||||
covariates_country$travel_restrictions = NULL
|
||||
covariates_country_long <- gather(covariates_country[], key = "key",
|
||||
covariates_country <- covariates[which(covariates$Country == country), 2:6]
|
||||
covariates_country_long <- gather(covariates_country, key = "key",
|
||||
value = "value")
|
||||
covariates_country_long$x <- rep(NULL, length(covariates_country_long$key))
|
||||
un_dates <- unique(covariates_country_long$value)
|
||||
|
|
|
@ -22,9 +22,6 @@ make_forecast_plot <- function(){
|
|||
|
||||
load(paste0("results/", filename))
|
||||
|
||||
data_interventions <- read.csv("data/interventions.csv",
|
||||
stringsAsFactors = FALSE)
|
||||
|
||||
for(i in 1:11){
|
||||
N <- length(dates[[i]])
|
||||
N2 <- N + 7
|
||||
|
@ -42,9 +39,9 @@ make_forecast_plot <- function(){
|
|||
estimated_deaths_li_forecast <- colQuantiles(estimated.deaths[,1:N2,i], probs=.025)[N:N2]
|
||||
estimated_deaths_ui_forecast <- colQuantiles(estimated.deaths[,1:N2,i], probs=.975)[N:N2]
|
||||
|
||||
rt <- colMeans(out$Rt[,1:N,i])
|
||||
rt_li <- colQuantiles(out$Rt[,1:N,i],probs=.025)
|
||||
rt_ui <- colQuantiles(out$Rt[,1:N,i],probs=.975)
|
||||
rt <- colMeans(out$Rt_adj[,1:N,i])
|
||||
rt_li <- colQuantiles(out$Rt_adj[,1:N,i],probs=.025)
|
||||
rt_ui <- colQuantiles(out$Rt_adj[,1:N,i],probs=.975)
|
||||
|
||||
data_country <- data.frame("time" = as_date(as.character(dates[[i]])),
|
||||
"country" = rep(country, length(dates[[i]])),
|
||||
|
|
|
@ -3,7 +3,6 @@ data {
|
|||
int <lower=1> N0; // number of days for which to impute infections
|
||||
int<lower=1> N[M]; // days of observed data for country m. each entry must be <= N2
|
||||
int<lower=1> N2; // days of observed data + # of days to forecast
|
||||
real<lower=0> x[N2]; // index of days (starting at 1)
|
||||
int cases[N2,M]; // reported cases
|
||||
int deaths[N2, M]; // reported deaths -- the rows with i > N contain -1 and should be ignored
|
||||
matrix[N2, M] f; // h * s
|
||||
|
@ -14,93 +13,103 @@ data {
|
|||
matrix[N2, M] covariate5;
|
||||
matrix[N2, M] covariate6;
|
||||
int EpidemicStart[M];
|
||||
real pop[M];
|
||||
real SI[N2]; // fixed pre-calculated SI using emprical data from Neil
|
||||
}
|
||||
|
||||
transformed data {
|
||||
real delta = 1e-5;
|
||||
}
|
||||
|
||||
parameters {
|
||||
real<lower=0> mu[M]; // intercept for Rt
|
||||
real<lower=0> alpha[6]; // the hier term
|
||||
real<lower=0> alpha_hier[6]; // sudo parameter for the hier term for alpha
|
||||
real<lower=0> kappa;
|
||||
vector<lower=0>[M] y_raw;
|
||||
real<lower=0> y[M];
|
||||
real<lower=0> phi;
|
||||
real<lower=0> tau;
|
||||
real <lower=0> ifr_noise[M];
|
||||
}
|
||||
|
||||
transformed parameters {
|
||||
vector<lower = 0>[M] y = tau * y_raw;
|
||||
real alpha[6];
|
||||
matrix[N2, M] prediction = rep_matrix(0,N2,M);
|
||||
matrix[N2, M] E_deaths = rep_matrix(0,N2,M);
|
||||
matrix[N2, M] Rt = rep_matrix(0,N2,M);
|
||||
for (m in 1:M){
|
||||
prediction[1:N0,m] = rep_vector(y[m],N0); // learn the number of cases in the first N0 days
|
||||
Rt[,m] = mu[m] * exp(covariate1[,m] * (-alpha[1]) + covariate2[,m] * (-alpha[2]) +
|
||||
covariate3[,m] * (-alpha[3])+ covariate4[,m] * (-alpha[4]) + covariate5[,m] * (-alpha[5]) +
|
||||
covariate6[,m] * (-alpha[6])); // + GP[i]); // to_vector(x) * time_effect
|
||||
for (i in (N0+1):N2) {
|
||||
real convolution=0;
|
||||
for(j in 1:(i-1)) {
|
||||
convolution += prediction[j, m]*SI[i-j]; // Correctd 22nd March
|
||||
}
|
||||
prediction[i, m] = Rt[i,m] * convolution;
|
||||
matrix[N2, M] Rt_adj = Rt;
|
||||
|
||||
{
|
||||
matrix[N2,M] cumm_sum = rep_matrix(0,N2,M);
|
||||
for(i in 1:6){
|
||||
alpha[i] = alpha_hier[i] - ( log(1.05) / 6.0 );
|
||||
}
|
||||
|
||||
E_deaths[1, m]= 1e-9;
|
||||
for (i in 2:N2){
|
||||
E_deaths[i,m]= 0;
|
||||
for(j in 1:(i-1)){
|
||||
E_deaths[i,m] += prediction[j,m]*f[i-j,m];
|
||||
for (m in 1:M){
|
||||
for (i in 2:N0){
|
||||
cumm_sum[i,m] = cumm_sum[i-1,m] + y[m];
|
||||
}
|
||||
prediction[1:N0,m] = rep_vector(y[m],N0); // learn the number of cases in the first N0 days
|
||||
|
||||
Rt[,m] = mu[m] * exp( covariate1[,m] * (-alpha[1]) + covariate2[,m] * (-alpha[2]) +
|
||||
covariate3[,m] * (-alpha[3]) + covariate4[,m] * (-alpha[4]) + covariate5[,m] * (-alpha[5]) +
|
||||
covariate6[,m] * (-alpha[6]) );
|
||||
Rt_adj[1:N0,m] = Rt[1:N0,m];
|
||||
for (i in (N0+1):N2) {
|
||||
real convolution=0;
|
||||
for(j in 1:(i-1)) {
|
||||
convolution += prediction[j, m] * SI[i-j];
|
||||
}
|
||||
cumm_sum[i,m] = cumm_sum[i-1,m] + prediction[i-1,m];
|
||||
Rt_adj[i,m] = ((pop[m]-cumm_sum[i,m]) / pop[m]) * Rt[i,m];
|
||||
prediction[i, m] = Rt_adj[i,m] * convolution;
|
||||
}
|
||||
|
||||
E_deaths[1, m]= 1e-15 * prediction[1,m];
|
||||
for (i in 2:N2){
|
||||
for(j in 1:(i-1)){
|
||||
E_deaths[i,m] += prediction[j,m] * f[i-j,m] * ifr_noise[m];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
/* for(m in 1:M) {
|
||||
for(i in 1:N[m]) {
|
||||
LowerBound[i,m] = prediction[i,m] * 10 - cases[i,m];
|
||||
}
|
||||
}*/
|
||||
|
||||
}
|
||||
model {
|
||||
tau ~ exponential(0.03);
|
||||
target += -sum(y_raw); // exponential(1) prior on y_raw implies y ~ exponential(1 / tau)
|
||||
for (m in 1:M){
|
||||
y[m] ~ exponential(1/tau);
|
||||
}
|
||||
phi ~ normal(0,5);
|
||||
kappa ~ normal(0,0.5);
|
||||
mu ~ normal(2.4, kappa); // citation needed
|
||||
alpha ~ gamma(.5,1);
|
||||
mu ~ normal(3.28, kappa); // citation: https://academic.oup.com/jtm/article/27/2/taaa021/5735319
|
||||
alpha_hier ~ gamma(.1667,1);
|
||||
ifr_noise ~ normal(1,0.1);
|
||||
for(m in 1:M){
|
||||
deaths[EpidemicStart[m]:N[m], m] ~ neg_binomial_2(E_deaths[EpidemicStart[m]:N[m], m], phi);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
generated quantities {
|
||||
matrix[N2, M] lp0 = rep_matrix(1000,N2,M); // log-probability for LOO for the counterfactual model
|
||||
matrix[N2, M] lp1 = rep_matrix(1000,N2,M); // log-probability for LOO for the main model
|
||||
matrix[N2, M] prediction0 = rep_matrix(0,N2,M);
|
||||
matrix[N2, M] E_deaths0 = rep_matrix(0,N2,M);
|
||||
for (m in 1:M){
|
||||
prediction0[1:N0,m] = rep_vector(y[m],N0); // learn the number of cases in the first N0 days
|
||||
for (i in (N0+1):N2) {
|
||||
real convolution0=0;
|
||||
for(j in 1:(i-1)) {
|
||||
convolution0 += prediction0[j, m]*SI[i-j]; // Correctd 22nd March
|
||||
|
||||
{
|
||||
matrix[N2,M] cumm_sum0 = rep_matrix(0,N2,M);
|
||||
for (m in 1:M){
|
||||
for (i in 2:N0){
|
||||
cumm_sum0[i,m] = cumm_sum0[i-1,m] + y[m];
|
||||
}
|
||||
prediction0[i, m] = mu[m] * convolution0;
|
||||
}
|
||||
|
||||
E_deaths0[1, m]= 1e-9;
|
||||
for (i in 2:N2){
|
||||
E_deaths0[i,m]= 0;
|
||||
for(j in 1:(i-1)){
|
||||
E_deaths0[i,m] += prediction0[j,m]*f[i-j,m];
|
||||
prediction0[1:N0,m] = rep_vector(y[m],N0);
|
||||
for (i in (N0+1):N2) {
|
||||
real convolution0 = 0;
|
||||
for(j in 1:(i-1)) {
|
||||
convolution0 += prediction0[j, m] * SI[i-j];
|
||||
}
|
||||
cumm_sum0[i,m] = cumm_sum0[i-1,m] + prediction0[i-1,m];
|
||||
prediction0[i, m] = ((pop[m]-cumm_sum0[i,m]) / pop[m]) * mu[m] * convolution0;
|
||||
}
|
||||
|
||||
E_deaths0[1, m] = uniform_rng(1e-16, 1e-15);
|
||||
for (i in 2:N2){
|
||||
for(j in 1:(i-1)){
|
||||
E_deaths0[i,m] += prediction0[j,m] * f[i-j,m] * ifr_noise[m];
|
||||
}
|
||||
}
|
||||
}
|
||||
for(i in 1:N[m]){
|
||||
lp0[i,m] = neg_binomial_2_lpmf(deaths[i,m] | E_deaths[i,m],phi);
|
||||
lp1[i,m] = neg_binomial_2_lpmf(deaths[i,m] | E_deaths0[i,m],phi);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче