Kelan koronamittarit ja lääkesovellus

Luokat: open data

Tauti on vaivannut Suomessa ja ulkomailla alkuvuodesta saakka, eikä loppua ole näköpiirissä. Kevään kuukausina internet oli pullollaan erilaisia tartuntadataa visualisoivia sovelluksia, mutta paras pöhinä on jo laantunut. Itse bloggasin THL-koronadatarajapinnoista maaliskuussa ja silloin julkaisemani SARS-Cov-2 -tapausten aikasarjat sairaanhoitopiireittäin -näkymä on päivittinyt joka päivä siitä lähtien, kiitos THL:n datan ja rajapinnan.

Korona on vaikuttanut myös työhöni Kelassa ja julkaisin tutkimusyksikön kollegoitteni kanssa kaksi koronan vaikutuksia seuraavaa verkkosivua.

koronamittarit.kela.fi-palvelussa havainnollistetaan päivä-, viikko- ja kuukausitason analyyseillä korona-aikana tapahtuneita muutoksia Kelan etuuksien hakemisessa, etuuksien saajien määrissä sekä Kelan asiakaspalvelun toiminnassa. Sivusto päivittyy automaattisesti joka arkipäivä klo. 10.

Reseptilääkkeiden ostot ATC-luokittain-verkkosovelluksessa puolestaan seurataan lääkkeiden kulutusta ATC-luokittain sekä sairaanhoitopiirien että koko Suomen tasolla.

Molemmat sivustot tarjoavat suurpiirteisten analyysien ohella avointa dataa. Koronamittareiden datan on kuvattu sivustolla ja ovat ladattavissa Github:sta. Datat päivittyvät joka arkipäivä. Lääkesovelluksen datat löytyvät myös Github:sta.

Datojen käytössä pääset alkuun kokeilemalla R-kielellä tehtyjä esimerkkejä: koronamittaridatasta ja lääkedatasta. Voit esimerkiksi luoda tilin rstudio.cloud:iin ja kopioida em. esimerkkikoodit sinne ja alkaa ihmetellä! Alla yksi esimerkki!

library(dplyr)
library(readr)
library(forcats)
cols(
  etuus = col_character(),
  vuosi = col_integer(),
  aikatyyppi = col_character(),
  kuukausi = col_integer(),
  viikko = col_integer(),
  paiva = col_date(),
  viikonpaiva = col_character(),
  alue = col_character(),
  ikaluokka = col_character(),
  sukupuoli = col_character(),
  saapuneet_hakemukset = col_double(),
  updated = col_datetime()
) -> data_cols

dat <- readr::read_csv("https://raw.githubusercontent.com/kelaresearchandanalytics/koronamittarit/master/docs/data/data_etuudet.csv", 
                       col_types = data_cols) %>% 
  # releveloidaan ikäluokka
  mutate(ikaluokka = factor(ikaluokka),
         ikaluokka = fct_relevel(ikaluokka, c("kaikki","alle 25"))) %>% 
  # Etuuksien järjestys
  mutate(etuus = factor(etuus, levels = c("Työttömyysturva",
                                          "Yrittäjien työmarkkinatuki",
                                          "Yleinen asumistuki", 
                                          "Perustoimeentulotuki",
                                          "Sairauspäiväraha",
                                          "Tartuntatautipäiväraha",
                                          "Epidemiatuki")),
         vuosi = factor(vuosi)) %>% 
  arrange(etuus,viikko,paiva)
head(dat)
## # A tibble: 6 x 19
##   etuus vuosi aikatyyppi kuukausi viikko paiva      viikonpaiva alue  ikaluokka
##   <fct> <fct> <chr>         <int>  <int> <date>     <chr>       <chr> <fct>    
## 1 Työt… 2020  paiva             1      1 2020-01-01 keskiviikko Koko… kaikki   
## 2 Työt… 2020  paiva             1      1 2020-01-02 torstai     Koko… kaikki   
## 3 Työt… 2020  paiva             1      1 2020-01-03 perjantai   Koko… kaikki   
## 4 Työt… 2020  paiva             1      1 2020-01-04 lauantai    Koko… kaikki   
## 5 Työt… 2020  paiva             1      1 2020-01-05 sunnuntai   Koko… kaikki   
## 6 Työt… 2019  viikko           NA      1 NA         <NA>        Koko… kaikki   
## # … with 10 more variables: sukupuoli <chr>, saapuneet_hakemukset <dbl>,
## #   data <chr>, saajat_kaikki <lgl>, saajat_uudet <lgl>,
## #   saajakotitaloudet_kaikki <lgl>, saajakotitaloudet_uudet <lgl>,
## #   saajaruokakunnat_kaikki <lgl>, saajaruokakunnat_uudet <lgl>, updated <dttm>
library(ggplot2)
datplot <- dat %>% 
  dplyr::filter(aikatyyppi == "viikko",
         ikaluokka == "kaikki",
         sukupuoli == "kaikki",
         alue == "Koko Suomi") %>% 
  mutate(viikko = as.integer(viikko))

ggplot(datplot, 
       aes(x = viikko, 
           y = saapuneet_hakemukset, 
           color = vuosi, 
           fill = vuosi)) +
  geom_line() +
  geom_point(shape = 21, color = "white", size = 1.6,  show.legend = FALSE) +
  facet_wrap(~etuus, ncol = 1, scales = "free_y") +
  scale_x_continuous(breaks = 1:max(datplot$viikko)) +
        labs(fill = NULL, 
             color = NULL, 
             y = NULL,
             title = "Hakemustilanne viikottain",
             subtitle = "Kelaan viikon aikana saapuneet hakemukset",
             x = "Viikko") +
        scale_fill_manual(values = c("#3F679F","#F15B23")) +
        scale_color_manual(values = c("#3F679F","#F15B23")) +
  theme_light() +
        theme(legend.position = "right", 
              legend.direction = "vertical",
              panel.grid.minor = element_blank()) +
        scale_y_continuous(labels = function(x) format(x, big.mark = " ",
                                                       scientific = FALSE),
                           limits = c(0,NA))

Katso myös