Pemodelan Kasus COVID-19 di Indonesia

Beberapa waktu lalu beredar paper dari ITB mengenai pemodelan matematis serta proyeksi pandemi Corona di Indonesia. Hasil proyeksi memperkirakan bahwa puncak pandemi (yaitu ketika jumlah kasus baru harian mencapai puncaknya) akan terjadi pada akhir Maret 2020 dan akhir pandemi (ketika tidak ada lagi kasus baru) terjadi sekitar pertengahan April, dengan jumlah kasus kumulatif maksimal sekitar 8000 orang.

Pemodelan tersebut dilakukan berdasarkan data kasus hingga tanggal 14 Maret 2020.

Karena hingga saat ini jumlah kasus positif terus bertambah, saya merasa bahwa proyeksi ini perlu selalu diperbarui. Berbekal data dari kawalcovid19.id, saya berusaha melakukan fitting kurva logistik dengan regresi nonlinear. Model kurva logistik sama dengan model yang digunakan di paper ITB. Hanya saja, berbeda dari paper ITB yang menggunakan parameter Korea Selatan untuk data Indonesia, saya mengestimasi langsung parameter dari data Indonesia sendiri. Hasilnya bisa dilihat pada grafik berikut.

kasuskum.png

Terlihat bahwa per hari ini (22 Maret 2020), Indonesia telah memasuki fase titik belok pada kurva logistik, yang berarti bahwa kasus baru harian sesuai model akan terus berkurang setelah ini. Akhir pandemi akan terjadi pada akhir maret dengan kasus positif maksimal sebanyak hampir 1000 orang.

Saya juga mencoba proyeksi untuk kasus kematian (walaupun polanya kurang terlalu fit dengan kurva logistik) dengan hasil sebagai berikut.

meninggalkum.png

***

Saya akan berusaha memperbarui proyeksi ini setiap ada pembaruan data.

Selain itu, saya mengucapkan bela sungkawa terhadap para korban meninggal akibat pandemi ini, serta apresiasi terhadap segala pihak terutama pekerja medis yang rela dikhawatirkan sanak familinya untuk menghilangkan kekhawatiran sanak famili orang lain. Semoga angka-angka di proyeksi ini tidak membuat kita lupa bahwa apa yang digambarkannya adalah manusia yang utuh, punya kisah dan harapannya masing-masing.

***

Penjelasan mengapa pandemi umumnya mengikuti pola kurva logistik bisa dilihat di sini.

Proyeksi ini saya lakukan dengan Stata. Bagi Anda yang ingin mereplikasi atau memodifikasinya, berikut adalah command yang saya pakai.

***

*Model statistik penderita COVID-19 Indonesia*
*Sumber data : kawalcovid19.id
*esaasyahid@gmail.com
*ssc install labutil // install package tambahan yang dibutuhkan

cd "D:\Documents\Research\Corona Indonesia"

*Set model untuk berapa hari sejak permulaan kasus
local h = 50

*Impor data berformat csv
import delimited "Kasus Harian.csv", encoding(UTF-8) clear


*Membuat variabel waktu
gen tanggal = date(substr(dt, 1 , 10), "YMD")
gen t = _n
format tanggal %td

*Declare sebagai time-series
tsset tanggal


*Variabel kumulatif
ren kasuskumulatif kasuskum
gen sembuhkum = cond(sembuhbaru, sembuhbaru, 0, 0)
replace sembuhkum = sembuhkum + sembuhkum[_n - 1] if t > 1
gen meninggalkum = cond(meninggalbaru, meninggalbaru, 0, 0)
replace meninggalkum = meninggalkum + meninggalkum[_n - 1] if t > 1

*Menambahkan tanggal dan label
set obs `h'
replace tanggal = tanggal[_n - 1] + 1 if tanggal == .
replace t = t[_n - 1] + 1 if t == .

*Membuat tanggal string
gen tanggals = string(tanggal, "%td")
labmask t, value(tanggals)


*Fitting kurva logistik y = b1/(1 + exp(-b2*(x-b3)))

*Kasus positif
nl log3: kasuskum t
matrix b = e(b)
local b1 = b[1,1]
local b2 = b[1,2]
local b3 = b[1,3]
*Plot
twoway (scatter kasuskum t , xlabel(1(3)`h', angle(90) valuelabel)) ///
(function y = `b1'/(1 + exp(-`b2'*(x-`b3'))), range(1 50)) ///
, legend(label(1 "Aktual") label(2 "Model")) xline(`b3', lpattern(dash) lcolor(green)) ///
title("COVID-19 Indonesia: Kasus kumulatif") ///
note("Garis hijau menunjukkan titik belok - ketika jumlah kasus harian mencapai puncak") ///
caption("Proyeksi `h' hari sejak kasus pertama diumumkan")
graph export kasuskum.png, width(1200) height(900) replace

*Meninggal
nl log3: meninggalkum t
matrix b = e(b)
local b1 = b[1,1]
local b2 = b[1,2]
local b3 = b[1,3]
*Plot
twoway (scatter meninggalkum t , xlabel(1(3)`h', angle(90) valuelabel)) ///
(function y = `b1'/(1 + exp(-`b2'*(x-`b3'))), range(1 50)) ///
, legend(label(1 "Aktual") label(2 "Model")) xline(`b3', lpattern(dash) lcolor(green)) ///
title("COVID-19 Indonesia: Meninggal kumulatif") ///
note("Garis hijau menunjukkan titik belok - ketika jumlah kasus harian mencapai puncak") ///
caption("Proyeksi `h' hari sejak kasus pertama diumumkan")
graph export meninggalkum.png, width(1200) height(900) replace

[Update 23 Maret 2020]

kasuskum.png

Dengan data terbaru, kasus maksimum sesuai model semakin kecil, menjadi hanya kurang dari 900 orang.

[Update 24 Maret 2020]

kasuskum.png

[Update 25 Maret 2020]

kasuskum.png

[Update 26 Maret 2020]

kasuskum.png

Serba-serbi Kosakata Bahasa Indonesia

Akibat suntuk revisian skripsi, dibarengi rasa ingin tahu dan terutama iseng, saya tertarik untuk mencari tahu fakta-fakta mengenai kosakata bahasa Indonesia. Fakta-fakta ini saya sarikan dari dataset leksikon kata dasar dalam KBBI yang didapat secara gratis dari laman github andrisetiwan. Olah data saya lakukan dengan Stata 13 terutama dengan fungsi-fungsi string.

Laman ini akan selalu saya perbarui jika iseng saya kumat. Selamat menikmati.

Continue reading “Serba-serbi Kosakata Bahasa Indonesia”