[english version]

W dobie pandemii koronawirusa mamy do czynienia z życiem w wysokiej niepewności i z bardzo niejasną wizją tego, co stanie się w niedalekiej przyszłości. Ze względu na duże tempo rozprzestrzenianie się wirusa i wysoką śmiertelność wśród osób starszych, rząd w Polsce dość szybko podjął decyzję o restrykcyjnym lockdownie, zamykając szkoły, przedszkola i uczelnie wyższe, miejsca kultury, puby i restauracje, a także zakazując imprez i zgromadzeń powyżej 50 osób. Jednocześnie rekomendując całemu społeczeństwu zachowanie dystansu społecznego (social distancing) i samoizolację, polegające na ograniczeniu kontaktu z innymi ludźmi, a w miarę możliwości przejście na pracę zdalną i pozostanie w domach.

Dodatkowo 24 marca zostały wdrożone bardziej radykalne regulacje, w których ludzie mogą wychodzi z domu jedynie do pracy lub po podstawowe zakupy. Publiczne środki transportu mogą być wypełnione jedynie do połowy miejsc siedzących, a ludzie nie mogą spacerować po ulicy w grupach większych niż dwuosobowe, chyba że są rodziną. Niestety obecna sytuacja będzie niosła za sobą poważne skutki ekonomiczne i społeczne, i dlatego wszyscy zdają sobie sprawę, że nie może być utrzymana zbyt długo. W związku z tym u większości z nas pojawiają się następujące pytania:

  • Jak długo powinniśmy utrzymać lockdown?
  • Jak dużo ludzi zostanie zarażonych?
  • Jak długo potrwa pandemia?
  • Ile osób umrze?
  • Co jeśli zdejmiemy lockdown po Wielkanocy?
  • Co jeśli zaczniemy robić więcej testów na COVID-19?

W tym artykule pokażemy jak przy użyciu modelowania matematycznego i uczenia maszynowego możemy przeprowadzić analizę pandemii COVID-19 i w sposób przybliżony odpowiedzieć na powyższe pytania. Modele zostały nauczone na danych dla Polski z okresu 5 marca – 23 marca zawierających liczbę wykrytych przypadków (total cases), śmierci (deaths) i wyzdrowień (recoveries) [1] przedstawionych na Rysunku 1. Na wstępie należy zaznaczyć, że każdy model matematyczny jest ograniczony zestaw założeń, które należy poczynić przed dopasowaniem go do danych. Ponadto na chwilę obecną nie dysponujemy dużą ilością danych nt. przebiegu pandemii w Polsce. Dlatego wyniki analiz zawarte w artykule mają bardziej charakter poglądowy i powinny być traktowane z pewną rezerwą.

 

Rysunek 1. Liczba potwierdzonych przypadków COVID-19 w Polsce [1].
Rysunek 1. Liczba potwierdzonych przypadków COVID-19 w Polsce [1].

 

Naszą analizę oparliśmy o model epidemiologiczny SEIR, który jest powszechnie stosowany do analizy rozprzestrzeniania się coronavirusa [2][3]. Model ten posiada jednak trzy ograniczenia.

  • Po pierwsze nie modeluje wprost przebiegu liczby zachorowań, zgonów i wyzdrowień, które dostępne są w danych.
  • Po drugie zakłada, że wszyscy pacjenci chorzy zostają rozpoznani i wyizolowani, i nie uwzględnia osób, które nie mają objawów lub nie zostały poddane testom na obecność wirusa.
  • Po trzecie nie modeluje niepewności, która pokazywałaby, jak silnie rzeczywistość może odbiec od tego, co pokazuje nam model.

Nasz wkład wyraża się w czterech aspektach.

  • Po pierwsze rozszerzyliśmy model SEIR o dodatkowe elementy, które pozwalają prognozować wartości dostępne w danych.
  • Po drugie rozszerzyliśmy model, by uwzględniał grupę pacjentów bez objawów lub nie poddaną testom.
  • Po trzecie zastosowaliśmy Bayesian approach do modelowania niepewności.
  • Po czwarte dopasowaliśmy nasz model do danych dla Polski i pokazaliśmy, jak przeprowadzić kilka podstawowych analiz.

Artykuł został podzielony na 3 części:

  • Wyniki & Dyskusja. Sekcja zawiera wyniki eksperymentów wraz z komentarzem i odpowiedzią na pytania postawione we wstępie. Jeśli nie interesują cię szczegóły techniczne możesz po tej sekcji od razu przeskoczyć do Podsumowania.
  • Szczegóły Modelu. Sekcja zawiera szczegółowy opis użytego modelu, fragmenty kodu i równania matematyczne, które pozwolą samodzielnie powtórzyć analizę zawartą w artykule.
  • Ograniczenia. Sekcja zawiera listę wybranych ograniczeń i niedoskonałości modelu, które mogą być dobrym punktem wyjścia do samodzielnych ulepszeń i eksperymentowania z danymi.

Wyniki & Dyskusja

Do odpowiedzi na interesujące nas pytania przeprowadziliśmy trzy symulacje, gdzie w różny sposób sterujemy lockdownem oraz liczbą zdiagnozowanych osób dzięki testom:

  • W pierwszej symulacji lockdown jest zdjęty po Wielkanocy.
  • W drugiej lockdown jest utrzymany cały czas, aż do wygaszenia epidemii, a liczbę testów wykonujemy na obecnym poziomie.
  • W trzeciej lockdown jest utrzymany i dodatkowo zwiększamy liczbę testów, skuteczniej izolując osoby zarażone.

We wszystkich eksperymentach przedstawione zostały prognozy dla następujących wartości: Exposed – osoby, które w danym dniu ulegają zarażeniu, Infectious – osoby chore i zarażające innych, Never Diagnosed – osoby, które przeszły COVID-19 bezobjawowo lub nie zostały przetestowane, Total Cases Diagnosed – raportowane przypadki koronawirusa, Diagnosed & Recovered – raportowane przypadki wyleczeń, Dead – raportowane zgony.

Dla potrzeb poniższej analizy założyliśmy, że poprzez wprowadzenie lockdownu i powszechny samoizoloację w Polsce każdy z obywateli zmniejszył średnio 5-10 razy liczbę osób, z którymi wchodzi dziennie w interakcję. Dodatkowo założyliśmy, że nie wiemy jaki odsetek chorych jest zdiagnozowany przy pomocy testów i ostrożnie zakładamy, że jest on w przedziale między 10% a 90%. (zobacz Szczegóły Modelu dla lepszego zrozumienia). Jest to ważne założenie, gdyż ostatnie publikacje pokazują, że nawet 86% chorych może przechodzić COVID-19 bezobjawowo [8], a zatem nie testując szerokiego spektrum ludzi, wiele przypadków może nie być wyizolowane.

Eksperyment 1: Zwolnienie lockdownu po Wielkanocy

Rysunek 2. Modele predykcyjne dla scenariusza, gdzie zwalniamy lockdown po Wielkanocy. Dla każdej linii został zaznaczony przedział wiarygodności [5%,95%]. Czas lockdownu jest zaznaczony szarym obszarem. Przerywana linia oznacza ostatni dzień, dla którego mamy dostępne dane.
Rysunek 2. Modele predykcyjne dla scenariusza, gdzie zwalniamy lockdown po Wielkanocy. Dla każdej linii został zaznaczony przedział wiarygodności [5%,95%]. Czas lockdownu jest zaznaczony szarym obszarem. Przerywana linia oznacza ostatni dzień, dla którego mamy dostępne dane.

 

Na Rysunku 2 widzimy, że zwolnienie lockdownu po Wielkanocy spowoduje, że na początku maja epidemia gwałtownie wystrzeli w górę i będziemy obserwować przyrost liczby zarażonych idący w dziesiątki tysięcy osób. W tym scenariuszu pik zachorowań przypadnie na drugą połowę maja i może osiągnąć poziom kilku milionów. Liczba osób zmarłych może iść w setki tysięcy. Natomiast epidemia skończy się z początkiem wakacji.

Eksperyment 2: Utrzymanie lockdownu

Rysunek 3. Modele predykcyjne dla scenariusza, gdzie lockdown zostaje utrzymany. Przedstawiono okres od marca do maja. Dla każdej linii został zaznaczony przedział wiarygodności [5%,95%]. Czas lockdownu jest zaznaczony szarym obszarem. Przerywana linia oznacza ostatni dzień, dla którego mamy dostępne dane.
Rysunek 3. Modele predykcyjne dla scenariusza, gdzie lockdown zostaje utrzymany. Przedstawiono okres od marca do maja. Dla każdej linii został zaznaczony przedział wiarygodności [5%,95%]. Czas lockdownu jest zaznaczony szarym obszarem. Przerywana linia oznacza ostatni dzień, dla którego mamy dostępne dane.

 

Zakładając, że lockdown zostanie utrzymany na Rysunku 3 widzimy, że w najbliższej przyszłości najprawdopodobniej liczba przypadków będzie systematycznie rosła. Dodatkowo, korzystając z modelu możemy wyliczyć, że przy tych założeniach prawdopodobieństwo, że epidemia wygaśnie do końca maja wynosi ~7.5% (prawdopodobieństwo może być oszacowane z użyciem rozkładu predykcyjnego dla krzywej Infectious, zobacz Szczegóły Modelu)

 

Rysunek 4. Modele predykcyjne dla scenariusza, gdzie lockdown zostaje utrzymany. Przedstawiono okres do kwietnia 2021. Dla każdej linii został zaznaczony przedział wiarygodności [5%,95%]. Czas lockdownu jest zaznaczony szarym obszarem. Przerywana linia oznacza ostatni dzień, dla którego mamy dostępne dane.
Rysunek 4. Modele predykcyjne dla scenariusza, gdzie lockdown zostaje utrzymany. Przedstawiono okres do kwietnia 2021. Dla każdej linii został zaznaczony przedział wiarygodności [5%,95%]. Czas lockdownu jest zaznaczony szarym obszarem. Przerywana linia oznacza ostatni dzień, dla którego mamy dostępne dane.

 

Rysunek 4 daje nam spojrzenie w szerszym horyzoncie czasu i widzimy na nim, że silne zachowanie dystansu społecznego powoduje rozciągnięcie epidemii w czasie, jednocześnie przenosząc pik zachorowań na jesień. Dzięki temu kupujemy czas, w którym może zostać opracowany lek lub szczepionka, a także z innych losowych powodów epidemia może samoistnie wygasnąć. Dodatkowo mamy tu do czynienia ze zjawiskiem spłaszczenia krzywej (flattening the curve), redukując pik zachorowań do ~ 200 tysięcy. Przy założeniu, że ~5% przypadków wymaga specjalistycznej opieki powinno być realne przygotowanie do tego czasu odpowiedniego zaplecza medycznego.

Warto jednak zaznaczyć, że skutki ekonomiczne długiego lockdownu będą katastrofalne. Żeby częściowo zaadresować ten problem Neil Ferguson i jego grupa z Imperial College London [4] zaproponowali strategię, która polega na cyklicznym zdejmowaniu i zakładaniu lockdownu. Społeczeństwo musiałoby się dostosować na okres epidemii, że naprzemiennie przez kilka tygodni wszystko jest otwarte, a następnie przez następne kilka zamknięte.

Eksperyment 3: Utrzymanie lockdownu i zwiększenie liczby wykonywanych testów

W poniższym eksperymencie zakładamy, że prowadzimy bardzo szerokie testowanie na obecność koronawirusa w społeczeństwie i jedynie mniej niż 20% osób zakażonych pozostaje niezdiagnozowanych i niewyizolowanych.

Strategia szerokiego testowania jest stosowana w Niemczech, gdzie pomimo dużej liczby stwierdzonych przypadków (~30 tys.) mamy wskaźnik śmiertelności na poziomie 0.4%, co jest argumentem za hipotezą, że mamy znacznie więcej przypadków lekkich i bezobjawowych, które muszą być wyizolowane by nie zakażały innych osób.

 

Rysunek 5. Modele predykcyjne dla scenariusza, gdzie lockdown zostaje utrzymany i zwiększamy liczbę wykonywanych testów. Dla każdej linii został zaznaczony przedział wiarygodności [5%,95%]. Czas lockdownu jest zaznaczony szarym obszarem. Przerywana linia oznacza ostatni dzień, dla którego mamy dostępne dane.
Rysunek 5. Modele predykcyjne dla scenariusza, gdzie lockdown zostaje utrzymany i zwiększamy liczbę wykonywanych testów. Dla każdej linii został zaznaczony przedział wiarygodności [5%,95%]. Czas lockdownu jest zaznaczony szarym obszarem. Przerywana linia oznacza ostatni dzień, dla którego mamy dostępne dane.

 

Na Rysunku 5 widać, że lockdown połączony z szerokim testowaniem i izolowaniem pacjentów zapewnia, że jesteśmy w stanie kontrolować i stopniowo wygasić epidemię. Nawet jeśli wartości liczbowe są niedoszacowane ze względu na dane, którymi dysponujemy, to trend przy takim postępowaniu będzie zachowany. Jednocześnie liczba zgonów będzie utrzymana na bardzo niskim poziomie. Korzystając z modelu możemy oszacować, że w takim scenariuszu prawdopodobieństwo zakończenia epidemii do końca maja wynosi ~44%, a do końca lipca już 78%, a wyraźne zahamowanie powinno być widoczne już w połowie kwietnia.

Szczegóły Modelu

Model epidemiologiczny

Model SEIR (S – susceptible, E – exposed, I – infectious, R – recovered) jest modelem, gdzie dynamika epidemii (epidemic dynamics) jest opisana układem równań różniczkowych [2][3]. Aby wykorzystać publicznie dostępne dane, rozszerzyliśmy ten model do postaci SEINCRAD (S – susceptible, E – exposed, I – infectious, N – never diagnosed, C – total cases diagnosed, R – diagnosed & recovered, A – active cases, D – dead). Opisany jest następująco:

 

 

Niektóre z powyższych rozszerzeń zostały również zaproponowane przez Gabriela Goha [5]. Intuicyjnie powyższy model możemy wyobrazić sobie jako zestaw naczyń połączonych (communicating vessels), gdzie każde naczynie opisuje jedną z wyżej zdefiniowanych grup ludzi. Dynamika rozprzestrzeniania się choroby modelowana jest jako przepływ ludzi pomiędzy poszczególnymi naczyniami z tempem zadanym przez parametry. Interpretacja parametrów modelu jest następująca:

  • , gdzie  jest czasem inkubacji (incubation period) (w dniach) wirusa, tj. czasem od momentu zakażenia do rozpoczęcia zarażania innych. Dla koronawirusa czas inkubacji szacuje się na ok. 5 dni, jednak niepewność tego parametru waha się w przedziale (2, 8) [5].
  • , gdzie  jest czasem zarażania innych (infectious period), tj. czasem od rozpoczęcia zarażania do izolacji w szpitalu lub w domu. Czas zarażania szacuje się na ok. 3 dni z niepewnością w przedziale (0, 10) [5]. Ten parametr dotyczy osób, które mają wyraźne objawy COVID-19 i zostaną w tym okresie zdiagnozowane.
  • , gdzie  jest czasem (contagious time), w którym pacjent mający łagodne lub żadne objawy, nie pozostaje w izolacji i zaraża innych. Szacuje się, że ten czas może wynosić nawet 14 dni od pojawienia się objawów.
  • , gdzie  jest współczynnikiem reprodukcji (reproduction number), tj. średnią liczbą osób, która zostanie zarażona przez jedną zainfekowaną osobę. Szacuje się, że dla koronawirusa wynosi on ok. 2.8 z niepewnością w przedziale (1.4, 4.6) [5]. Dodatkowo szacuje się, że w przypadku zastosowania restrykcyjnego lockdownu i social distansing wartość współczynnika reprodukcji może być zredukowana o ponad 75% (reduction level). Oznacza to, że średnio zaczynamy wtedy mieć kontakt z ponad 4 razy mniejszą liczbą osób niż normalnie.
  • , gdzie  jest średnim czasem izolacji i.e. czasem trwania choroby, gdzie chory pozostaje w izolacji. Po tym czasie choroba kończy się wyzdrowieniem. Z danych wynika, że średnio jest to ok. 14 dni z niepewnością w przedziale (5, 30).
  •  jest współczynnikiem umieralności (mortality rate). Na potrzeby eksperymentu przejęliśmy 1.7%, choć z danych dla Polski dotychczasowa jego wartość wynosi 1.07%.
  •  jest (non-detection rate) odsetkiem osób, które będą miały i chorobę bezobjawowo lub nie zostaną zdiagnozowane z powodu zbyt niskiej liczby wykonywanych testów. Według publikacji Li Ruiyun w Science [8] liczba osób, która przechodzi zakażenie bezobjawowo jest na poziomie 86%.
  • , gdzie  (period until death) jest średnim czasem od przyjęcia do szpitala do zgonu w przypadku ciężkiego przebiegu choroby. Z danych wynika, że jest to ok. 5-10 dni.

Ponadto, aby wykonać symulację z użyciem modelu SEINCRAD dla Polski musimy znać następujące dane:

  • Dzień lockdownu. W przypadku Polski jest to 15 marca, czyli po 10 dniach od zdiagnozowania pierwszego przypadku COVID-19.
  • Liczba ludności. Przyjmujemy, że dla Polski jest to 37.98M mieszkańców.
  • Liczba początkowo zainfekowanych osób , która wróciła z zagranicy. Dla tego parametru będziemy zakładali niepewność z przedziału [1, 200].

 

Poniższy kod w Pythonie pokazuje jak wykonać pojedynczą symulację modelem SEINCRAD z użyciem funkcji odeint z pakietu scipy.integrate .

def seincrad_model_with_lockdown(state, t, beta, eps, eta, kappa,
      mr, reduction_level, sigma, omega, ndr, lockdown_day):

   if t >= lockdown_day:
       beta = reduction_level * beta
      
   s, e, i, n, c, r, a, d = state
   dsdt = -beta * i * s
   dedt = beta * i * s - eps * e
   didt = eps * e - eta * (1-ndr) * i - sigma * ndr * i
   dndt = sigma * ndr * i
   dcdt = eta * (1-ndr) * i
   drdt = kappa * (1-mr) * a
   dadt = eta * (1-ndr) * i - kappa * (1-mr) * a - omega * mr * a
   dddt = mr * omega * a
  
   return [dsdt, dedt, didt, dndt, dcdt, drdt, dadt, dddt]

 

i0 = initially_infected / population
state0 = [1.0, 0.0, i0, 0.0, 0.0, 0.0, 0.0]
t = np.linspace(0, simulation_days, time_steps)
  
simulation = odeint(seiacrd_model_with_lockdown, state0, t,
                   args=(beta, eps, eta, kappa, mr, reduction_level,
                          sigma, omega, ndr, lockdown_day))

Modelowanie niepewności

Do wykonania poprawnej symulacji przebiegu epidemii potrzebujemy jeszcze właściwie dobrać parametry modelu, jak czas inkubacji, czas zarażania, współczynnik reprodukcji czy odsetek niewykrytych przypadków. Wartości tych parametrów są trudne do oszacowania precyzyjnie i zależą od rozproszenia i stylu życia danego społeczeństwa, liczby wykonanych testów i zdiagnozowanych przypadków. Dlatego zamiast podawać punktową estymatę, skorzystamy z podejścia bayesowskiego i każdy parametr będziemy modelowali rozkładem prawdopodobieństwa a priori. Na podstawie danych oszacujemy dla nich brzegowe rozkłady a posteriori. Dzięki temu będziemy mogli założyć, że parametry są niepewne i pozwolić danym je wytłumaczyć. Ideę podejścia bayesowskiego opisuje następujące równanie:

 

 

gdzie  oznacza zbiór dostępnych danych przedstawionych na Rysunku 1, a  gdzie  jest początkowym współczynnikiem reprodukcji, a jego poziomem redukcji (reduction level) po wprowadzeniu lockdownu. O różnych zastosowaniach podejścia bayesowskiego w uczeniu maszynowym można przeczytać w książce Kevina Murphy’ego [6]. Dla wszystkich parametrów zakładać będziemy jednorodny rozkład a priori . Przedziały z jakich będziemy próbkować parametry zostały zdefiniowane w poniższym kodzie.

param dict = {
   'tinc' : (1.0, 8.0),
   'tinf' : (1.0, 10.0),
   'tcon' : (1.0, 15.0),
   'tiso' : (14.0, 30.0),
   'tdth' : (1, 14),
   'ndr' : (0.1, 0.9),
   'r0' : (2.0, 4.5),
   'initially_infected' : (1.0, 200.0),
   'reduction_level' : (0.1, 0.2)
}

 

Do oszacowania rozkładu a posteriori stosujemy podejście Approximate Bayesian Computation (ABC). Pozwala ono w prosty sposób przybliżyć brzegowe rozkłady a posteriori za pomocą skończonego zbioru losowych próbek. Zastosowanie metody ABC do modeli równań różniczkowych można znaleźć np. w pracy Jakuba Tomczaka & Eweliny Węglarz-Tomczak [7]. Procedura jest następująca:

  • Generujemy losowy zestaw parametrów z rozkładu a priori.
  • Symulujemy przebieg modelu SEINCRAD dla parametrów .
  • Liczymy odległość euklidesową pomiędzy danymi i symulacjami . Jeśli odległość jest poniżej ustalonego progu to zachowujemy próbkę , w przeciwnym razie ją odrzucamy.

 

Na Rysunku 6 zostały przedstawione brzegowe rozkłady a posteriori wygenerowane dla danych z Polski. Wynika z niego kilka ciekawych spostrzeżeń:

  • Rozkłady okresu inkubacji (incubation period) i okresu zarażalności (infectious period) koncentrują się odpowiednio wokół wartości 4-5 i 3, co pokrywa się z danymi z [5].
  • Reproduction number koncentruje się ~4.0, co jest zgodne z publikacjami, aczkolwiek wyższe od najczęściej podawanej średniej (~2.8).
  • Rozkład początkowo zarażonych osób infected koncentruje się w przedziale [0, 25], co sugeruje, że epidemia w Polsce najprawdopodobniej rozpoczęła się od małej grupy ludzi.
  • Odsetek niewykrytych przypadków koncentruje się w granicy 70-80%, co sugerowałoby, że jedynie jedna na pięć osób zostaje zdiagnozowana.

 

Rysunek 6. Brzegowe rozkłady a posteriori dla modelu SEINCRAD wyliczone dla Eksperymentu 1.
Rysunek 6. Brzegowe rozkłady a posteriori dla modelu SEINCRAD wyliczone dla Eksperymentu 1.

Mając oszacowane rozkłady a posteriori dla parametrów, możemy również aproksymować rozkład predykcyjny dla poszczególnych składowych modelu SEINCRAD, a w konsekwencji otrzymać rozkład prawdopodobieństwa każdej zmiennej jako funkcję czasu. Rozkład predykcyjny wyraża się wzorem:

Dokładne jego wyliczenie jest niemożliwe, jednak korzystając z próbek możemy oszacować jego momenty. W szczególności liczymy średnią oraz percentyle 5% i 95% do zilustrowania niepewności. Z tak otrzymanych wartości na Rysunkach 2-5 zostały przedstawione rozkłady predykcyjne dla wszystkich składowych modelu SEINCRAD.

 

Ograniczenia

Jak każdy model matematyczny, tak również model SEINCRAD jest tylko pewnym uproszczeniem rzeczywistości i ma wiele ograniczeń, które będą wprowadzały systematyczny błąd do wykonanych prognoz. W szczególności:

  • Model nie uwzględnia przepustowości służby zdrowia oraz zmian we współczynniku umieralności po jej zatkaniu.
  • Model zakłada, że całe społeczeństwo zakaża w sposób jednorodny i izoluje się w sposób jednorodny. Nie uwzględnia przykładowo, że mogą być grupy zawodowe (np. lekarze, sprzedawcy), które z oczywistych względów nie mogą trzymać social distancing na określonym poziomie. Nie uwzględnia okresowych zmian w sposobie zachowań, np. Wielkanoc.
  • Rozkłady a priori parametrów modelu są podane nieprecyzyjnie. Lepsze oszacowanie niepewności dla nich poprawiłoby jakość prognoz.

 

Podsumowanie

W tym artykule pokazaliśmy jak dzięki zastosowaniu modelowania matematycznego i uczenia maszynowego możemy prognozować rozwój epidemii koronowirusa. W szczególności wyniki pokazują istotę zachowania dystansu społecznego (social distancing) i samoizolacji, aby utrzymać liczbę zarażonych osób na kontrolowanym poziomie i nie zatkać służby zdrowia. Ponadto widzimy, że ważnym elementem jest powszechne testowanie i izolowania wszystkich zakażonych, co w przy dużej skali może nawet doprowadzić do wygaśnięcia epidemii w krótkim czasie. Symulacje pokazują, że musimy przynajmniej podjąć takie działania, aby kontrolować tempo epidemii do momentu, aż zostanie wynaleziony lek, szczepionka lub pandemia samoistnie wygaśnie.

Jednocześnie mamy nadzieję, że powyższy tutorial zawiera wystarczającą ilość szczegółów, aby powtórzyć cały eksperyment. Zachęcamy do pozostania w domu i samodzielnego eksperymentowania z danymi.

#zostanwdomu

Bibliografia

  1. Worldometer. https://www.worldometers.info/coronavirus/
  2. Wu et al. Nowcasting and forecasting the potential domestic and international spread of the 2019-nCoV outbreak originating in Wuhan, China: a modelling study. 2020
  3. Kucharski et al. Analysis and projections of transmission dynamics of nCoV in Wuhan. 2020
  4. Ferguson et al. Impact of non-pharmaceutical interventions (NPIs) to reduce COVID19 mortality and healthcare demand. 2020
  5. Gabriel Goh. Epidemic calculator. http://gabgoh.github.io/COVID/index.html
  6. Kevin Murphy. Machine Learning: A Probabilistic Perspective. 2012
  7. Tomczak & Węglarz-Tomczak. Estimating kinetic constants in the Michaelis–Menten model from one enzymatic assay using Approximate Bayesian Computation. 2019
  8. Ruiyun Li et al. Substantial undocumented infection facilitates the rapid dissemination of novel coronavirus (SARS-CoV2). 2020