Symulacja koronawirusa – co zrobić, by go spowolnić?

24 marca 2020, Dariusz Wawer

Wstęp

Nowy koronawirus SARS-CoV-2 od miesięcy rozprzestrzenia się po świecie. Pojawił się w Chinach najprawdopodobniej w grudniu 2019, by w połowie marca 2020 być już niemalże na całym świecie. Wielu z nas śledzi postępy SARS-CoV-2, obserwujemy z niepokojem to, co dzieje się na świecie i w Polsce… I czujemy się bezradni. Nie możemy przecież zobaczyć, unaocznić sobie w jaki sposób to rozprzestrzenianie się przebiega. Nasza symulacja koronawirusa stara się to umożliwić, pokazać co się dzieje, jeśli nie podejmujemy żadnych działań, a także sprawdzić co jednak możemy zrobić – w jaki sposób możemy wpłynąć na rozwój epidemii.

Co i jak symulujemy?

Interakcje między ludźmi są stosunkowo łatwe do modelowania na poziomie statystyki – ale tak naprawdę są bardzo skomplikowane na wielu różnych płaszczyznach. Poruszamy się na wiele różnych sposobów, odwiedzamy wiele różnych miejsc, w których przebywamy dłużej lub krócej. Kontaktujemy się, pośrednio lub bezpośrednio, z wieloma ludźmi. To gdzie jesteśmy i jak się zachowujemy ma wpływ na to, czy możemy zarazić się chorobą, albo czy mamy większe czy mniejsze szanse zarażenia innych.

W naszej symulacji przedmiotami rozprzestrzeniania wirusa są… Koła, które w losowy sposób przemieszczają się po płaskiej przestrzeni i odbijają się od siebie. Każde zderzenie to szansa na zarażenie wirusem. Jest to prosty model, ale w pewnym sensie dobrze oddaje on świat rzeczywisty – każdy kontakt, także losowy, może spowodować zarażenie.

Symulator możesz zobaczyć na filmach poniżej. Jeśli chcesz, możesz go od razu ściągnąć i uruchomić – instrukcja pod koniec artykułu.

Parametry symulacji

Parametry choroby (czas trwania, rodzaj objawów, śmiertelność) zostały opisane zgodnie z aktualną wiedzą naukową. Czyli ok. 6 dni bezobjawowo, a następnie, w zależności od przypadku, kilka-kilkanaście dni do wyzdrowienia.

Śmiertelność jest w tej chwili w dużej części nieznana. Na potrzeby symulacji założyliśmy, że osoby pod opieką szpitala mają 1% śmiertelności – zaś poza nim 10%. Być może – mamy taką nadzieję – śmiertelność jest niższa. Na potrzeby symulacji są to wartości trafione pod tym względem, że doskonale pokazują jak ważne jest nie przeciążenie systemu opieki zdrowotnej.

Populacja kulek w symulacji to 2000. W wirtualnych, symulacyjnych szpitalach jest miejsce dla 10 kulek, czyli 0,5% populacji. To jest proporcjonalnie dość dużo – w prawdziwym świecie wartość ta jest raczej bliższa 0,02-0,05%. Z drugiej strony, wiele osób może przechodzić chorobę bezobjawowo, więc potrzeb hospitalizacji może być proporcjonalnie mniej. Na tę chwilę tego nie wiemy, wartości te mogą więc lepiej lub gorzej odpowiadać prawdziwej sytuacji na świecie. Która, swoją drogą, też zależy od kraju.

Trzeba też pamiętać, że nasza symulacja koronawirusa nie jest modelem statystycznym, tylko pojedynczym losowym przebiegiem rozprzestrzeniania się choroby. Wielokrotne uruchomienie symulacji może – wręcz musi! – dać różne efekty.

Wobec tego, skoro model jest mocno niedokładny, skoro poczyniliśmy tak wiele nie do końca prawdziwych założeń, to po co więc w ogóle takie symulacje robić? Chcemy uzmysłowić wszystkim, że działania, które podejmujemy od ponad tygodnia, mające na celu spowolnienie rozprzestrzeniania się wirusa i jego choroby Covid-19, mają sens. Na prostym przykładzie odbijających się piłek naprawdę doskonale to widać. Przekonajcie się!

Jak spowalniamy koronawirusa?

W naszej symulacji koronawirusa przewidzieliśmy następujące działania:

  • social distancing (zwiększenie dystansu społecznego) – czyli np. zachowywanie bezpiecznej odległości od innych, unikanie przez zdrowe osoby osób z symptomami choroby, ograniczanie interakcji z innymi przez osoby chore; wybranie tej opcji w symulacji sprawia, że szansa na zarażenie maleje czterokrotnie,
  • kwarantanna przy objawach – jeśli chora kulka w symulatorze zauważa, że jest chora, przestaje się poruszać i zarażać innych,
  • dobrowolna kwarantanna – 20% populacji poddaje się kwarantannie i nie zaraża i nie może się zarazić wirusem,
  • śledzenie kontaktów – jeśli chora kulka zachoruje, to po jednym dniu wszystkie inne kulki, które miały z nią kontakt są poddawane kwarantannie, jeśli miały wirusa,
  • zamknięcie szkół – bardzo trudne do modelowania, bo jedyne co robi, to ogranicza liczba interakcji między częścią ludzi – dzieci nie spotykają się w szkołach, część rodziców opiekuje się dziećmi; w naszym modelu zamknięcie szkół sprawia, że prędkość kulek spada, a więc spada też średnia ilość kontaktów między nimi (ilość zderzeń zależy od prędkości).

… Sprawdźmy co i jak działa!

Najpierw, by mieć punkt odniesienia, po prostu

Uruchamiamy symulację bez żadnych działań zaradczych

Rozprzestrzenianie się wirusa jest dramatycznie szybkie.

Rozprzestrzenianie koronawirusa - brak działań zaradczych

Rozprzestrzenianie koronawirusa – brak działań zaradczych

Co ukazuje obrazek? Jest to histogram przebiegu epidemii. Jedna kolumna pikseli oznacza jedną próbkę danych, czyli stan 100% populacji w danym momencie. Kolory ukazują stan zdrowia populacji – kolor żółty: chorzy, kolor czerwony: zmarli, kolor zielony: wyzdrowiali. Kolor niebieski to kulki nigdy nie zarażone. Szerokość obrazka też ma znaczenie. Im obrazek szerszy, tym epidemia trwała dłużej.

Co widać na powyższym wykresie? Bardzo szybki, wykładniczy przyrost zachorowań – kolor żółty. W ciągu 10 dni zachorowało 100% populacji kulek. Ze względu na dość długi czas trwania choroby prawie cała populacja jest chora zanim w ogóle pojawią się pierwsze wyzdrowienia. Wszyscy bardzo szybko zachorowali, więc epidemia skończyła się szybko – trwała tylko 40 dni.

Ze względu na fakt, że przyrost był bardzo gwałtowny, a choroba dość długo postępuje, kulki zaczynają gwałtownie zapełniać wirtualne szpitale. Przez to liczba śmierci gwałtownie wzrasta i wynosi ok. 10%, czyli jest bardzo bliska maksymalnej wartości wartości. Słowem, szpitale się przepełniają i kto do nich nie trafi, ten umiera.

Sprawdźmy wobec tego jak zachowa się symulacja koronawirusa ze środkami, które teraz, m.in, wykorzystujemy w Polsce.

Zamknięte szkoły i social distancing

Symulacja przebiega następująco:

A oto histogram

Rozprzestrzenianie koronawirusa - social distancing i zamknięte szkoły

Rozprzestrzenianie koronawirusa – social distancing i zamknięte szkoły

Zachorowało 100% populacji, zaś maksymalna liczba zarażonych wynosiła w jednym momencie ok. 80% populacji. Szczyt epidemii miał miejsce 21. dnia, czyli ponad dwa razy później niż bez podjęcia środków zaradczych. Cała epidemia trwała 65 dni. System opieki zdrowotnej się przepełnił – ale skala tego przepełnienia była znacząco mniejsza niż przy braku środków zaradczych, właśnie ze względu na rozłożenie przypadków w czasie. Zamiast śmiertelności bliskiej 10%, ta symulacja zakończyła się na 8,5%. Gdyby wyniki naszych kulek przeliczyć na mieszkańców Polski, mamy ponad 500 tys. uratowanych rodaków!

A gdyby przyjąć inny zestaw działań? Social distancing to podstawa [1][2], przekonałem się też o tym testując tą symulację, więc tę opcję zaznaczam.

Wraz social distancing – samoizolacja w momencie zaobserwowania objawów, a także aktywne śledzenie kontaktów

Tak przebiegała symulacja:

Histogram wygląda tak:

Rozprzestrzenianie koronawirusa - kwarantanna przy objawach i śledzenie kontaktów chorych

Rozprzestrzenianie koronawirusa – kwarantanna przy objawach i śledzenie kontaktów chorych

W tej symulacji koronawirusem zaraziło się ok 80% populacji, czyli mniej niż w sprawdzanym wcześniej zestawie opcji. Szczyt zachorowań przypadł na dzień 16. Epidemia trwała 56 dni. Zmarło mniej kulek – 7,25%. Jest to związane ze zmniejszoną całkowitą liczbą zachorowań – działania prewencyjne pozwoliły części populacji w ogóle nie złapać choroby, przez co mniej obciążona była ochrona zdrowia.

W tym miejscu jeszcze słowo nt. obserwacji symulacji: izolacja w dwuwymiarowej przestrzeni kulek powoduje tworzenie się fizycznych barier dla innych kulek. Kulki w kwarantannie nie poruszają się, nie zarażają, ale inne kulki mogą się od nich odbijać. Sprawia to, że swoboda poruszania się zarówno chorych (zarażających) jak i zdrowych kulek spada. Czy w prawdziwym świecie izolacja daje takie efekty – fizycznie nie. Ale być może na poziomie statystyki są one podobne. Tego nie wiemy.

Dodam też, że ten system można w prawdziwym świecie jeszcze bardziej usprawnić. Zamiast podejmować kwarantannę w momencie uzyskania objawów, można aktywnie badać wszystkich – choćby przesiewowo. A następnie ich izolować – i ich kontakty – przed wystąpieniem objawów. Dzięki temu czas, przez który dana osoba zaraża innych, może ulec istotnemu skróceniu.

Na koniec – sprawdźmy co się stanie, gdy aktywujemy

Wszystkie dostępne w symulacji środki zaradcze

Rozprzestrzenianie w symulatorze wygląda tak:

A histogram wygląda następująco.

Wszystkie dostępne środki zaradcze aktywowane!

Wszystkie dostępne środki zaradcze aktywowane!

Tak, tam na dole wykresu na dole są zarażeni i chorzy. Pozostali nigdy jej nie złapali. Tym razem symulacja koronawirusa dała bardzo pozytywne wyniki: choroba dotknęła tylko 22% populacji, a system ochrony zdrowia był bardzo mało przeciążony. Szczyt zachorowań miał miejsce 30. dnia, a cała epidemia trwała ponad 73 dni. Śmiertelność wyniosła 1,75% – czyli 8,25% mniej niż bez żadnych środków zaradczych. To ponad 3 miliony uratowanych ludzi w przypadku kraju o populacji takiej jak Polska.

Sprawdź symulację koronawirusa sam!

Nasz symulator udostępniamy w postaci wykonywalnego pliku jar oraz . Do jego uruchomienia niezbędna jest Java (JRE w wersji min. 1.8, do pobrania tutaj: https://www.java.com/pl/download/ )

Plik uruchamialny do pobrania: tutaj. Po pobraniu (i wcześniejszym zainstalowaniu Javy) powinno się go dać uruchomić na Windows przez podwójne kliknięcie w pobrany plik, a na linuxie przez komendę java -jar coronavirusSim.jar.

Zachęcamy do samodzielnego obejrzenia przebiegu epidemii wśród kulek i eksperymentów ze środkami zaradczymi. Koniecznie podzielcie się z nami spostrzeżeniami i wnioskami – zapraszamy na twitter @PretiusSoftware lub na twitter autora, @VaverDariush.

Podsumowanie

Nasza symulacja koronawirusa pokazuje jak rozprzestrzeniania się SARS-CoV-2 i sprawdza jak mogą działać podejmowane przez nas środki zaradcze.

Social distancing i zamknięcie szkół wyraźnie spowolniło rozprzestrzenianie wirusa, ale i tak zarażona została cała populacja.

Samoizolacja chorych, śledzenie kontaktów i poddanie ich kwarantannie także spowolniły wirusa, ale znów, ogromna większość populacji została zarażona.

Słowem, każdy z zastosowanych środków zaradczych miał pozytywny efekt, ale dopiero zastosowanie kombinacji różnych środków dało bardzo dobre efekty.

Co więc możemy zrobić? Zarazem niewiele i wszystko. Jak spowalniać wirusa? Działając, a w zasadzie, w dużej mierze, wstrzymując się od działań – social distancing, izolowanie się od innych. Możemy też wywierać presję na rządzących, by bardziej aktywnie przeciwdziałali, by testowali wszystkich potencjalnych chorych i sprawnie ich izolowali, bo tylko wszystkie te działania podjęte razem mogą uchronić ludzi przed zarażeniem i chorobą.

Tagi: , ,

Zapraszamy do kontaktu!

Pretius jest firmą tworząca oprogramowanie wspierające biznes.
Tworzymy aplikacje webowe wykorzystując: Java, Oracle DB, Oracle Apex, AngularJS.
Skontaktuj się z nami, aby porozmawiać o tym jak możemy pomóc w realizacji Twojego projektu!