Model epidemi sederhana dengan alat Python dasar

"Mengapa tidak menyalakan kembali epidemi," pikiran itu tiba-tiba muncul. Bekerja dari rumah dengan organisasi yang tepat bisa lebih efektif daripada pekerjaan kantor, akibatnya, ada waktu ekstra yang jujur ​​untuk "berpikir" tentang sesuatu yang lain.


Semuanya dimulai, tentu saja, dari membangun visualisasi harian data COVID-19 dari Pusat Pengendalian Penyakit Eropa. Algoritma sederhana menggambar grafik pada data yang diperbarui setiap hari pada siang hari. Grafik menarik perhatian pada tindakan anti-epidemi China yang efektif ketika epidemi mulai menurun pada awal Maret. Tetapi negara-negara Eropa mengambil tongkat pemukul - pertama Italia (dapatkah Anda ingat bagaimana pada akhir Februari pihak berwenang Milan meminta turis untuk kembali ke kota, karena ekonomi sedang menderita?), Kemudian Spanyol.


gambar


β€” , , -, . 30 β€” , , , ? ? .


β€œβ€ COVID-19 β€” - . , (!) . . . ? β€” !



- β€” . β€” . β€” . , β€” . . 3 :


  • : \\

, , β€” , . . ? , β€” β€œ ” caseIssuedDate ( β€” ). , β€” β€œ ” severity . β€œβ€ .


: - = 1 .
:


  #['infectDate', 'endOfCaseDate', 'result', 'severity', 'caseDocumentedDate', 'isolated' ]
  epidemy = [[0, None, 'infected', 'mild', None, False]] 

*, \ β€˜result’ . β€˜recovered’ β€˜dead’.


β€” , …
β€” . , ( β€œβ€, , ). , β€” .


β€” , β€œβ€. , 0.1 (10%) 1 10 . 100 10 , 100 10 0.1 = 100 . , : , . () :


 ['infectDate', 'endOfCaseDate', 'result', 'severity', 'caseDocumentedDate', 'isolated' ]

, , ( β€” !) .


β€” , , . ? , . : , , , β€” deathRate.


- ::



#  

dailyTransmissionContacts = 15 #    

# 

contagiousness = 0.01       #
severityRate = 0.3          #  
deathRate = 0.5             #  (   )
caseDuration = 25          # 

#  
closedPopulation = 10000

# 

periodToDocumented = caseDuration * 0.6 #       
mildDocumentedRate = 0.3
severeDocumentedRate = 0.9
isolationQualityRate = 0.1

#  

showDays = 150 #Ρ–  Ρ–

(. ) :
periodToIssued β€” , ,
mildDocmentedRate β€” 30%
severeDocumentedRate = 90%
isolationQualityRate β€” () . 100%


? , β€” … , , , , . β€” . . , COVID-19. β€” .



. :


β€” β€œβ€ β€œβ€ β€œβ€
, β€œβ€ β€”
.2


   susceptibleToday = (closedPopulation - infectedCountToday - recoveredCountToday)
   newAffectedPeopleCount = int(((activeInfectedCountToday * dailyTransmissionContacts * contagiousness) // 1 * susceptibleToday/closedPopulation + 1))

* β€” β€œβ€ . . ( ) .


.


.


, pandas.


10 . : 0 (.. ) 100%, β€œβ€ .
6 . 120 ( ) ( ) β€” , .


totalAffected: 10000     deathsTotal: 1582   deathRate_real = 15%

gambar


( ). 10 , ,


gambar


. , . , COVID-19, β€” 5-7 . , , β€”


gambar


caseDuration :


gambar


: , , .


:


. caseIssuedDate β€” . β€œβ€ . : β€œ , ”. , , - .


: β€œ, , . > ?”
: β€œ , ...

: , , β€” . 2 : mildDocumentedRate severDocumentedRate β€” ( ) . : 7-9 10 , , . , . , , , , , . ? , . , .


mildIDocumentedRate = 0.3
severeDocumentedRate = 0.9

gambar


, . , : 150 50 β€” , , .. .


, .


, .. , . , . () .


( β€” β€” )


totalAffected: 10000     deathsTotal: 1582   deathRate_real = 15%
DocumentedTotal: 4789    deathsDocumented: 1406  deathRate_docum = 29%

. .


() : β€œβ€ . β€” , .


periodToDocumented β€” . , β€œβ€ , , . , β€” , β€” , , .


imageepidemy-7


periodToDocumented. mildDocumentedRate = 0.3 (30% ). β€œβ€ , , .


: β€” , .


gambar


, [20:30] .


, , β€” .



:


  • (, )
  • ( ) +


.
. , , , .


gambar


(0 β€” , 1 β€” ).
, β€” , β€œ ” . , .



( ) .


, , . . , . ( 0.7) periodToDocumented.
, periodToDocumented ( ) 60% , .. 25 * 0.6 = 15 . 10, 7, 4


gambar


, , β€” β€œβ€ , , , , . , .


:


totalAffected: 10000     deathsTotal: 1486   deathRate_real = 14%
totalAffected: 10000     deathsTotal: 1556   deathRate_real = 15%
totalAffected: 10000     deathsTotal: 1439   deathRate_real = 14%
totalAffected: 8466  deathsTotal: 1248   deathRate_real = 14%


β€” β€” . 2 :


dailyTransmissionContacts = 15 #  
contagiousness = 0.01 # 

β€œ ” . .


gambar


totalAffected: 10000     deathsTotal: 1557   deathRate_real = 15%
totalAffected: 7727  deathsTotal: 1173   deathRate_real = 15%
totalAffected: 4597  deathsTotal: 709    deathRate_real = 15%
totalAffected: 2008  deathsTotal: 299    deathRate_real = 14%

. 5 . , β€œ ”. β€” .



, .
. : 60 80, .


gambar


, , β€œβ€ , , β€œ ”


totalAffected: 10000 deathsTotal: 1557 deathRate_real = 15%
totalAffected: 4597 deathsTotal: 709 deathRate_real = 15%
totalAffected: 10000 deathsTotal: 1434 deathRate_real = 14%



, β€œβ€ , . , , , , / (, , ). β€œ ” β€” . , . , , β€” , ( , , , , , β€” , β€” ).
. ! , , .


: epidemy (β€˜recovered’).


gambar
gambar


totalAffected: 7890 deathsTotal: 1162 deathRate_real = 11%
totalAffected: 10000 deathsTotal: 1557 deathRate_real = 15%


5 20 ( ) 30% β€” .



, . :


  • , «». . .
  • . (, , , ) , , .
  • , ( β€œ ”).


β€œ ” , .


β€œ ” β€œβ€ . , , , β€” . β€œβ€ β€œ ” .


Metode penindasan yang berbeda dapat secara signifikan berbeda pengaruhnya: metode teruji "isolasi diri" dan bahkan "deteksi dini" tidak menunjukkan hasil positif yang diharapkan dengan parameter model yang dekat dengan COVID19. Pada saat yang sama, segala ukuran penindasan sampai tingkat tertentu β€œmelicinkan” puncak epidemi, yang secara positif dapat memengaruhi pekerjaan sistem perawatan kesehatan dalam konteks epidemi.


Ukuran yang paling efektif adalah karantina. Karantina yang tepat waktu dan memadai tidak hanya dapat β€œmeregangkan” perjalanan epidemi, mengurangi beban pada sistem perawatan kesehatan, tetapi juga kadang-kadang mengurangi jumlah kasus dan kematian.


Laptop di google colab Link


All Articles