Dane dla CZ pochodzą ze strony https://onemocneni-aktualne.mzcr.cz/api/v2/covid-19/umrti.csv. W przypadku PL nie ma danych od 3.10.2020. Wcześniej były ujawniane w formie komunikatów na Twiterze (sic!)
W obu przypadkach stosowne pliki CSV zawierają dane indywidualne dotyczące każdego zgonu w tym datę i wiek.
Dane indywidualne są zamieniane na dane dzienne (agregowane); dla danych dziennych liczona jest ich liczba, średni wiek zmarłych oraz pierwszy kwarty wieku.
## Dane z CSV
u0 <- read.csv(file='umerti.csv',sep=',',header=T)
## liczba zgonów i średnia
u <- u0 %>% group_by(data) %>% summarise(id='CZ', n=n(),
ma=mean(wiek, na.rm=T),
d1=quantile(wiek, 0.10),
q1=quantile(wiek, 0.25))
#zgony_cz <- u %>% select(d,n)
## Zgony w PL
z0 <- read.csv(file='C19PL_zgony_wiek.csv',sep=';',header=T)
z <- z0 %>% group_by(data) %>% summarise(id='PL', n=n(),
ma=mean(wiek, na.rm=T),
d1=quantile(wiek, 0.10),
q1=quantile(wiek, 0.25))
## łączymy
plcz <- bind_rows(u, z)
## wykres
mainBreaks <- "4 weeks"
maxCC <- max(plcz$ma)
labTxt <- "loess smoothing with span = 0.25"
fstDay <- as.Date("2020-09-15")
note <- "© NI-KW (source: twitter.com/MZ_GOV_PL and koronavirus.mzcr.cz/)"
last.obs <- last (plcz$date)
first.obs <- first (plcz$date)
p1 <- ggplot(plcz, aes(x= as.Date(data, format="%Y-%m-%d"),
y=ma, colour = id, group=id)) +
geom_smooth(method="loess", se=F, span=spanV) +
geom_point(size=.4, alpha=.5) +
xlab(label="") +
ylab(label="Age/Wiek") +
scale_x_date( labels = date_format("%m/%d"), breaks = mainBreaks) +
scale_y_continuous(breaks=seq(0,150, by=5)) +
geom_hline(yintercept = 80, color="red", alpha=.25, size=1.2) +
geom_hline(yintercept = 65, color="red", alpha=.25, size=1.2) +
annotate("text", x = fstDay, y = maxCC, label = labTxt, hjust = 0, size=3, alpha=.3) +
scale_color_manual(values = c("deeppink", "steelblue4")) +
ggtitle("COVID19: mean age of fatalities (daily)", subtitle=note)
p1
Do momentu kiedy polskie dane były publikowane wartość średniej w obu krajach była na podobnym poziomie. Przypuszczalnie tak jest nadal…
p2 <- ggplot(plcz, aes(x= as.Date(data, format="%Y-%m-%d"))) +
geom_point(aes(y=q1, colour = id, group=id), size=.4, alpha=.5) +
geom_smooth(aes(y=q1, colour = id, group=id), method="loess", se=F, span=spanV) +
## za dużo MA
##geom_point(aes(y=d1, colour = id, group=id), size=.4, alpha=.5) +
##geom_smooth(aes(y=d1, colour = id, group=id), method="loess", se=F, span=spanV) +
##
xlab(label="") +
ylab(label="Age/Wiek") +
scale_x_date( labels = date_format("%m/%d"), breaks = mainBreaks) +
scale_y_continuous(breaks=seq(0,150, by=5)) +
geom_hline(yintercept = 80, color="red", alpha=.25, size=1.2) +
geom_hline(yintercept = 65, color="red", alpha=.25, size=1.2) +
annotate("text", x = fstDay, y = maxCC, label = labTxt, hjust = 0, size=3, alpha=.3) +
scale_color_manual(values = c("deeppink", "steelblue4")) +
ggtitle("COVID19: mean age of fatalities (daily)", subtitle=note)
p2
Do momentu kiedy polskie dane były publikowane wartość pierwszego kwartyla w obu krajach była na podobnym poziomie. Przypuszczalnie tak jest nadal…
Liczba zmarłych na 1mln mieszkańców. Wielkość ta ulega dużym zmianom i nadal jest na dużo wyższym poziomie niż na początku października 2020, kiedy zaprzestano ujawniać dane nt. wieku w PL.
########### date/totald
## Policzymy na 1mln (2019, OECD)
popPl <- 37.972812
popCz <- 10.649800
u1 <- u %>% select(data, id, n) %>%
mutate (n1m = n/popCz) %>% select(data, id, n, n1m)
z0 <- read.csv(file='MZN.csv',sep=';',header=T)
z <- z0 %>% dplyr::rename(data=date, n=newd) %>%
filter(woj == "Polska") %>%
mutate (id='PL', n1m = n/popPl) %>%
select(data, id, n, n1m)
plcz <- bind_rows(u1, z)
max1M <- max(plcz$n1m)
p3 <- ggplot(plcz, aes(x= as.Date(data, format="%Y-%m-%d"),
y=n1m, colour = id, group=id)) +
geom_smooth(method="loess", se=F, span=spanV) +
geom_point(size=.4, alpha=.5) +
xlab(label="") +
ylab(label="N") +
scale_x_date( labels = date_format("%m/%d"), breaks = mainBreaks) +
#scale_y_continuous(breaks=seq(0,500, by=50)) +
##geom_hline(yintercept = 80, color="red", alpha=.25, size=1.2) +
##geom_hline(yintercept = 10, color="red", alpha=.25, size=1.2) +
annotate("text", x = fstDay, y = max1M, label = labTxt, hjust = 0, size=3, alpha=.3) +
scale_color_manual(values = c("deeppink", "steelblue4")) +
ggtitle(sprintf("COVID19: number of fatalities (daily)" ), subtitle=note)
p3
p13 <- ggarrange(p1,p3, ncol = 2)
p13