مدل‌سازی شیوع کروناویروس در ایران

تلاشی برای کاهش استرس مردم

سلام دوباره


(تحت ویرایش مداوم: با هر خبر جدید این مطلب به روز رسانی می‌شود)


به لحاظ روانی وقتی یه اتفاق شدیدی می‌افته و ایده‌ای نداریم قراره در آینده چه اتفاقی بیوفته ممکنه استرس زیادی رو متحمل بشیم. اخطارهای مربوط به ویروس کرونای جدید (COVID-19) در ایران هم از همین جنس هستن.  

شخصا معتقدم کرونا بیشتر از این که خودش خطرناک باشه یکی استرس و پروپاگاندای دورش خطرناکه و یکی هم بی‌تدبیری و سوء مدیریت برخی مسئولین! برای همین هم تصمیم گرفتم تا با دادگانی که در اختیار عموم هست یک شبیه‌سازی از شیوع کرونا در ایران انجام بدم تا هم یه تخمینی از وضعیت شیوع داشته باشیم هم میزان بحرانی بودن شرایط اپیدمی رو بتونیم بسنجیم.


تمامی مراحل و نتایج این کار هم به صورت #آزاد و #رایگان در اختیار تمام علاقه‌مندان قرار می‌گیرن با این امید که بتونه سطح استرس و نگرانی پیرامون کرونا رو کاهش بده إن شاء الله در کشور و شاید هم یک مسئولی به صورت کاملا اتفاقی(!) این کار رو دید و به صورت کاملا اتفاقی‌تر(!) هم دلش خواست تا از این کار و نتایجش برای سیاست‌گذاری به نفع مردم استفاده کنه!!


اما داستان از این قراره:

می‌خوام یه شبیه‌سازی از گسترش و واگیرِ کرونا انجام بدم و در بیارم احتمالاً چند روز طول می‌کشه تا از شرش راحت شیم؟


شبیه‌سازی‌ام این شکلیه: فرض می‌کنیم اول ماجرا همه سالم باشن. حدود ۵ نفر رو مبتلا می‌کنیم و شیوع شروع می‌شه.  

شیوع به این صورته که هر فرد مبتلا در هر روز به حدود ۱۰۰ نفر ویروس رو منتقل می‌کنه. اما احتمال آلوده‌شدن هر کسی که با ویروس برخورد می‌کنه فرض کنیم مثلاً حدود ۸۰ درصده (دقیقش رو الآن ندارم اما یه مشت دادگان دارم از تاریخچهٔ شیوع کرونا که این نرخ‌ها و احتمالات رو می‌شه ازش در آورد). طول مدت بیماری رو هم مثلاً فرض کنیم بین ۱۴ تا ۲۵ روز باشه. (این رو هم می‌شه از همون دادگان استخراج کرد. دادگان به تفکیک روز رو هم داره)  

حالا هر کسی که بیمار می‌شه اگه بیشتر از ۱۴ روز از شروع شبیه‌سازی گذشته باشه با احتمال ۲۰ درصد قرنطینه می‌شه (نرخ تشخیص کرونا حدود ۲۰ درصده و هر کسی که کرونامثبت باشه قرنطینه می‌شه) کسانی که قرنطینه می‌شن دیگه شانسِ تماس با بقیه افراد رو ندارن. دلیل این ۱۴ روز هم اینه که اولین نشانه‌های کرونا مال ۱۵ بهمن بوده در حالی که فرایند قرنطینه و اینا از حدود ۲۹ بهمن به طور جدی شروع شده.  

نرخ مرگ و میر کرونا هم حدود ۳ درصده. پس در هر روز سه درصد مبتلایان هم قراره تو شبیه‌سازیِ ما کشته شن.  

هر کسی که کرونا بگیره دوباره کرونا نمی‌گیره و اگه خوب بشه هم دیگه کرونا نمی‌گیره. (این خاصیت کروناهاست که بعد از بهبود دست کم یک ماه طول می‌کشه تا ویروس دوباره بتونه حمله کنه)


حالا می‌خوام با این اطلاعات شبیه‌سازی کنم که چند روز طول می‌کشه تا از شر کرونا خلاص شیم؟


مشکلم کجاست؟ تعداد بالای نودها!! جمعیت ایران چیزی در حدود ۸۵ میلیون نفره!! یا باید به طریقی این تعداد نود رو بسازم (مشکل اصلی: خیلی طول می‌کشه - مشکل فرعی: حافظهٔ زیادی می‌بره) یا به طریقی باید زنجیرهٔ مارکوفی که ساخته می‌شه رو پردازش کنم (یه مشت فرایند پوآسون با لامبدای معین هستن خب - فقط قسمت بد ماجرا اون طول مدت بیماریه) و ببینم مثلاً کی تعداد افرادی که مبتلا هستن از پنج کم‌تر می‌شه؟  

کدها و گزارشش رو هم به صورت آزاد می‌خوام منتشر کنم تا مردم یه ایده‌ای داشته باشن از وضعیت شیوع و این که چقدر و تا کی باید مراقبت کنن؟


بازم ممنون می‌شم اگه بتونید کمک کنید. :)




به روز رسانی اول:

یک بنده خدایی گویا یک مدل‌سازی دیفرانسیلی انجام داده. اما پارامترهاش اصلاً مناسب ایران نیست که این مورد قابل اصلاحه.


مزیتش چیه؟ دیگه نیاز نیست ۸۵ میلیون نود بسازیم برای شبیه‌سازی.  

عیبش چیه؟ دینامیک‌هایی مثل اون ده روزی که از آلارم اولیه تا شروع قرنطینه‌کردن‌ها گذشته و این که بیماری چه مدت طول می‌کشه تا خوب بشه رو در نظر نگرفته و البته مدل‌سازی این‌ها هم به صورت دیفرانسیلی خیلی داستان داره. (قابل قبوله که در نظر نگیریمشون)


من معادلات دیفرانسیل و محاسبات عددیم اصلاً خوب نیست. اگه کسی بلده و سر در میاره لطفاً به من پیام بده تا پارامترها رو اصلاح کنیم. (هرچند دیتاستی که قرار دادم اطلاعات کافی برای استخراج پارامترها داره و خودمم از همون استفاده می‌کنم)


https://math1391.blog.ir/1398/12/04/%D9%88%DB%8C%D8%B1%D9%88%D8%B3-%DA%A9%D8%B1%D9%88%D9%86%D8%A7-%D9%88-%D9%85%D8%B9%D8%A7%D8%AF%D9%84%D8%A7%D8%AA-%D8%AF%DB%8C%D9%81%D8%B1%D8%A7%D9%86%D8%B3%DB%8C%D9%84




پ.ن. دادگانی که گفتم: https://github.com/CSSEGISandData/COVID-19