Iskanje točk preloma na krivuljah epidemije v Sloveniji

Uvod

Poiskali bomo točke preloma glede na različne krivulje, ki jih imamo v epidemiji.

Točke preloma na Google Mobility podatkih za Slovenijo

Preberemo podatke.

mob_dat = read.csv("../data/2020_SI_Region_Mobility_Report.csv")
# odrežemo, da imamo samo skupne podatke za Slovenijo 
nrow_max = head(which( mob_dat == "Administrative unit Maribor", arr.ind=TRUE), n=1)[1]
mob_dat = mob_dat[1:nrow_max-1,]

# vržemo ven tiste podatke, ki jih ne potrebujemo
mob_dat = mob_dat[,-c(1,2,3,4,5,6,7,8)]

# gladimo podatke s 7-dnevnim povprečenjem
retail_and_recreation_7day_ma = ma(mob_dat$retail_and_recreation_percent_change_from_baseline, n = 7)
grocery_and_pharmacy_7day_ma = ma(mob_dat$grocery_and_pharmacy_percent_change_from_baseline, n = 7)
parks_7day_ma = ma(mob_dat$parks_percent_change_from_baseline, n = 7)
transit_stations_7day_ma = ma(mob_dat$transit_stations_percent_change_from_baseline, n = 7)
workplaces_7day_ma = ma(mob_dat$workplaces_percent_change_from_baseline, n = 7)
residential_7day_ma = ma(mob_dat$residential_percent_change_from_baseline, n = 7)

mob_dat_smooth = data.frame(date= mob_dat$date,
                            retail_and_recreation=retail_and_recreation_7day_ma,
                            grocery_and_pharmacy=grocery_and_pharmacy_7day_ma,
                            parks=parks_7day_ma,
                            transit_stations=transit_stations_7day_ma,
                            workplaces=workplaces_7day_ma,
                            residential=residential_7day_ma)

Izris mobilnosti po kategorijah

Podatki so glajeni s 7-dnevnim povprečenjem. Izločena je kategorija parki, ker manjkajo podatki.

Izračun točk preloma po posameznih krivuljah

Delovna mobilnost

## točke preloma
bp <- breakpoints(mob_dat_smooth$workplaces ~ 1, h = 15)
tocke.preloma = as.Date(mob_dat_smooth$date[bp$breakpoints])
paste("Točka preloma:", tocke.preloma)
##  [1] "Točka preloma: 2020-03-11" "Točka preloma: 2020-04-13"
##  [3] "Točka preloma: 2020-05-01" "Točka preloma: 2020-05-16"
##  [5] "Točka preloma: 2020-05-31" "Točka preloma: 2020-06-18"
##  [7] "Točka preloma: 2020-07-21" "Točka preloma: 2020-08-15"
##  [9] "Točka preloma: 2020-08-30" "Točka preloma: 2020-10-17"
## [11] "Točka preloma: 2020-12-18" "Točka preloma: 2021-01-02"

Ostajanje doma

## točke preloma
bp <- breakpoints(mob_dat_smooth$residential ~ 1, h = 15)
tocke.preloma = as.Date(mob_dat_smooth$date[bp$breakpoints])
paste("Točka preloma:", tocke.preloma)
##  [1] "Točka preloma: 2020-03-11" "Točka preloma: 2020-04-13"
##  [3] "Točka preloma: 2020-05-01" "Točka preloma: 2020-05-16"
##  [5] "Točka preloma: 2020-06-05" "Točka preloma: 2020-08-31"
##  [7] "Točka preloma: 2020-09-19" "Točka preloma: 2020-10-14"
##  [9] "Točka preloma: 2020-10-29" "Točka preloma: 2020-12-20"
## [11] "Točka preloma: 2021-01-04"

Trgovine, rekreacija, prevozi

## zdruzimo tri krivulje skupaj:
mobdat3 = 1/3*(mob_dat_smooth$retail_and_recreation + mob_dat_smooth$grocery_and_pharmacy + mob_dat_smooth$transit_stations)

## točke preloma

bp <- breakpoints(mobdat3 ~ 1, h = 15)
tocke.preloma = as.Date(mob_dat_smooth$date[bp$breakpoints])
paste("Točka preloma:", tocke.preloma)
##  [1] "Točka preloma: 2020-03-11" "Točka preloma: 2020-04-13"
##  [3] "Točka preloma: 2020-05-01" "Točka preloma: 2020-05-16"
##  [5] "Točka preloma: 2020-06-04" "Točka preloma: 2020-08-15"
##  [7] "Točka preloma: 2020-09-18" "Točka preloma: 2020-10-03"
##  [9] "Točka preloma: 2020-10-18" "Točka preloma: 2020-11-11"
## [11] "Točka preloma: 2020-12-06" "Točka preloma: 2020-12-21"
## [13] "Točka preloma: 2021-01-05"