paint-brush
পাইথনের সাহায্যে সংক্রামক রোগ ছড়ানোর অনুকরণ: SIR এবং SEIR মডেলদ্বারা@olaoluwa
4,324 পড়া
4,324 পড়া

পাইথনের সাহায্যে সংক্রামক রোগ ছড়ানোর অনুকরণ: SIR এবং SEIR মডেল

দ্বারা Olaoluwa Afolabi7m2023/10/13
Read on Terminal Reader

অতিদীর্ঘ; পড়তে

পাইথন ব্যবহার করে সংক্রামক রোগের মডেলিং-এ ডুব দিন। এসআইআর এবং এসইআইআর মডেলের শক্তি আবিষ্কার করুন, পাইথন কোডের সাথে বাস্তব-বিশ্বের পরিস্থিতি অন্বেষণ করুন এবং মহামারী সংক্রান্ত অন্তর্দৃষ্টির জন্য আপনার দক্ষতা প্রসারিত করতে শিখুন। জনস্বাস্থ্যে রোগের মডেলিং আয়ত্ত করার জন্য একটি অবশ্যই পড়তে হবে।
featured image - পাইথনের সাহায্যে সংক্রামক রোগ ছড়ানোর অনুকরণ: SIR এবং SEIR মডেল
Olaoluwa Afolabi HackerNoon profile picture
0-item


দাবিত্যাগ : এই নিবন্ধটির লক্ষ্য হল স্পষ্ট করা যে প্রদত্ত কোডটি গাণিতিক মডেলিংয়ের সমস্ত দিকগুলির জন্য সর্বজনীন সমাধান নয়। পরিবর্তে, এটি একটি শিক্ষামূলক সরঞ্জাম হিসাবে কাজ করে, গাণিতিক মডেলিং প্রক্রিয়ার একটি নির্দিষ্ট ধাপকে হাইলাইট করে এবং এই ক্ষেত্রে সচেতনতা বাড়ানোর প্রাথমিক লক্ষ্য সহ উদাহরণমূলক উদ্দেশ্যে পাইথনকে নিয়োগ করে।


এটি মনে রাখাও গুরুত্বপূর্ণ যে একটি গাণিতিক মডেল প্রকল্প জমা দেওয়ার/প্রস্তাব করার সময় আপনাকে অবশ্যই নির্দিষ্ট ব্যবস্থা নিতে হবে, যেমন জৈব গণিতের ক্ষেত্রের সাথে সম্পর্কিত।


এই পদক্ষেপগুলির মধ্যে রয়েছে, তবে সীমাবদ্ধ নয়: সমস্যাটি সংজ্ঞায়িত করা, একটি মডেল পদ্ধতি নির্বাচন করা (দুটি মডেল এই নিবন্ধে আলোচনা করা হবে), সমীকরণ প্রণয়ন, পরামিতি অনুমান—প্রায়শই ঐতিহাসিক ডেটার উপর ভিত্তি করে, বিশ্লেষণাত্মক সমীকরণগুলি সমাধান করে সংখ্যাসূচক সিমুলেশনগুলি প্রয়োগ করা বা পাইথন এবং ম্যাটল্যাব, বৈধতা এবং সংবেদনশীলতা বিশ্লেষণ, দৃশ্যকল্প পরীক্ষা, ফলাফল ব্যাখ্যা ইত্যাদির মতো গণনামূলক সরঞ্জামগুলি ব্যবহার করে।


যেমনটি আমি আগে বলেছি, এটি শুধুমাত্র গাণিতিক মডেলিং প্রক্রিয়ার একটি নির্দিষ্ট পদক্ষেপ এবং চিত্রিত উদ্দেশ্যে পাইথন নিয়োগ করে।


বিষয়বস্তু ওভারভিউ

  1. ভূমিকা
    • সিমুলেশনের উদ্দেশ্য
  2. এসআইআর মডেল
    • এটি কী করে / SIR পাইথন কোড সিমুলেশন উদাহরণ
    • আপনি কি শিখতে পারেন
      • রোগের বিস্তার বুঝুন
      • প্যারামিটার সংবেদনশীলতা অন্বেষণ করুন
      • হস্তক্ষেপ মূল্যায়ন
  3. SEIR মডেল
    • এটা কি করে / SEIR পাইথন কোড সিমুলেশন উদাহরণ
    • আপনি কি শিখতে পারেন
      • মডেল সুপ্ত সময়কাল
      • প্রারম্ভিক হস্তক্ষেপ মূল্যায়ন
      • অধ্যয়ন জটিল প্রাদুর্ভাব
  4. উপসংহার



1। পরিচিতি

জনসাধারণের স্বাস্থ্য বজায় রাখার জন্য কীভাবে সংক্রামক রোগ ছড়িয়ে পড়ে তা বোঝা অপরিহার্য কারণ মানব ইতিহাসে সেগুলি বহু শতাব্দী ধরে বিদ্যমান। রোগ বিস্তারের গতিশীলতা অনুকরণ এবং বোঝার জন্য একটি শক্তিশালী হাতিয়ার হল গাণিতিক মডেল। পাইথন ব্যবহার করে কীভাবে তাদের অনুকরণ করা যায় তার সাথে এই নিবন্ধে SIR (সংবেদনশীল-সংক্রামক-পুনরুদ্ধার) এবং SEIR (সংবেদনশীল-প্রকাশিত-সংক্রামক-পুনরুদ্ধার) মডেলগুলি নিয়ে আলোচনা করা হবে।


সিমুলেশন কি জন্য হয়

জনস্বাস্থ্য পেশাদার এবং এপিডেমিওলজিস্টদের জন্য, সিমুলেশন একটি ক্রিস্টাল বলের মতো। এটি আমাদের বিভিন্ন পরিস্থিতিতে এবং চিকিত্সার বিকল্পগুলির অধীনে রোগের সম্ভাব্য বিস্তারের পূর্বাভাস দিতে সক্ষম করে। এই মডেলগুলি সিদ্ধান্ত গ্রহণ, কার্যকর সংস্থান বরাদ্দ এবং বিভিন্ন কৌশলগুলির সম্ভাব্য প্রভাবগুলি বোঝার ক্ষেত্রে সহায়তা করে। আসুন দুটি মৌলিক মডেল পরীক্ষা করা যাক; SIR মডেল, এবং SEIR মডেল।


2. এসআইআর মডেল

এটি কী করে / SIR পাইথন কোড সিমুলেশন উদাহরণ

সংবেদনশীল, সংক্রামক এবং পুনরুদ্ধার (SIR) মডেল একটি জনসংখ্যাকে এই তিনটি বিভাগে আলাদা করে। ট্রান্সমিশন রেট ( β ) এবং রিকভারি রেট ( γ ) এর মত ভেরিয়েবলের উপর ভিত্তি করে, এটি অনুকরণ করে কিভাবে এই কম্পার্টমেন্টগুলি সময়ের সাথে পরিবর্তিত হয়।


পাইথন ব্যবহার করে একটি সিমুলেশনের উদাহরণ দেওয়ার আগে, গাণিতিক মডেলগুলিতে কাজ করার সময় "মডেল অনুমান" তৈরি করা প্রয়োজন।


আমাদের অনুমানে আমরা LaTeX ফর্মুলার বা কোড ব্যবহার করে মডেল তৈরি করব:


 \begin{align*} \frac{dS}{dt} &= -\beta \cdot S \cdot I \\ \frac{dI}{dt} &= \beta \cdot S \cdot I - \gamma \cdot I \\ \frac{dR}{dt} &= \gamma \cdot I \end{align*}


দ্রষ্টব্য: আপনি পাইথন ব্যবহার করে এই ফর্মুলারটি latexify করতে পারেন। একটি উদাহরণ https://github.com/google/latexify_py/blob/main/examples/examples.ipynb- এ পাওয়া যাবে।


এই নিবন্ধটি লেটেক্সকে একটি সঠিক গাণিতিক স্বরলিপি/সমীকরণে রূপান্তর করতে পাইথন কোডটি লিখতে বিরক্ত করবে না, তবে আমি অনলাইন সম্পাদক যেমন https://latexeditor.lagrida.com/ ব্যবহার করেছি যাতে আপনি নীচের সূত্র/সমীকরণ অনুমানগুলি স্পষ্টভাবে দেখতে পারেন :



চিত্র 1: মডেল সমীকরণ


কোথায় :


  • S সংবেদনশীল ব্যক্তিদের প্রতিনিধিত্ব করে,
  • আমি সংক্রামিত ব্যক্তিদের প্রতিনিধিত্ব করি,
  • আর উদ্ধারকৃত ব্যক্তিদের প্রতিনিধিত্ব করে।


পরামিতি β এবং γ যথাক্রমে সংক্রমণ এবং পুনরুদ্ধারের হার নিয়ন্ত্রণ করে। নেতিবাচক চিহ্ন (অর্থাৎ −β) নির্দেশ করে যে সংবেদনশীল ব্যক্তির সংখ্যা (S) সময়ের সাথে হ্রাস পায়। ডট নোটেশন "গুণ" নির্দেশ করে।


সংক্ষেপে, এই সমীকরণগুলি এসআইআর মডেলের গতিশীলতাকে বর্ণনা করে, যেখানে সংবেদনশীল লোকের সংখ্যা হ্রাস পায় যখন তারা রোগে আক্রান্ত হয় (যেমন dS/dt), সংক্রামক মানুষের সংখ্যা নতুন সংক্রমণের ফলে বৃদ্ধি পায় এবং পুনরুদ্ধারের সাথে সাথে হ্রাস পায় ( যেমন dI/dt), এবং রোগের চিকিৎসার সাথে সাথে পুনরুদ্ধারের সংখ্যা বৃদ্ধি পায় (যেমন dR/dt)। যেহেতু প্রতিটি বগির পরিবর্তন প্রাসঙ্গিক উপাদানগুলির গুণনের উপর নির্ভর করে, বিন্দুগুলি (.) গুণ বোঝাতে ব্যবহৃত হয়।


যেহেতু সমস্ত অনুমান সেট করা আছে, আমরা তখন SIR মডেলের জন্য পাইথন ব্যবহার করে একটি সিমুলেশন চালাতে পারি এবং তারপর গতিবিদ্যাকে কল্পনা করতে পারি:


 import numpy as np from scipy.integrate import odeint import matplotlib.pyplot as plt # SIR model equations def SIR_model(y, t, beta, gamma): S, I, R = y dSdt = -beta * S * I dIdt = beta * S * I - gamma * I dRdt = gamma * I return [dSdt, dIdt, dRdt] """ Initial conditions (such as S0, I0, and R0) are not to be random but I hardcoded them with specific values. These choices are typically made based on the characteristics of the disease being modeled and the context of the simulation. Initial condition are set such that S0 = 99%, which indicates the proportion of susceptible individuals when the simulation starts. I0 is set to 1%, which indicates proportion of infected individuals to be 1% when the simulation starts. R0 is set to 0% which is expected that there are are no recovered individuals when the simulations start. """ S0 = 0.99 I0 = 0.01 R0 = 0.00 y0 = [S0, I0, R0] # Parameters # β (beta) is transmission rate and I chose 30%. γ (gamma) is set to 1% beta = 0.3 gamma = 0.1 # Time vector t = np.linspace(0, 200, 200) # Simulate for 200 days # Solve the SIR model equations using odeint() solution = odeint(SIR_model, y0, t, args=(beta, gamma)) # Extract results S, I, R = solution.T # Plot the results plt.figure(figsize=(10, 6)) plt.plot(t, S, label='Susceptible') plt.plot(t, I, label='Infected') plt.plot(t, R, label='Recovered') plt.xlabel('Time (days)') plt.ylabel('Proportion of Population') plt.title('SIR Model Simulation') plt.legend() plt.grid(True) plt.show()


scipy.integrate.ode এবং scipy.integrate.odeint এর মধ্যে পার্থক্যের জন্য, আমি আপনাকে odeint এবং ode- এ নির্দেশ করতে চাই যাতে আপনি এটি আরও বুঝতে পারেন।


আপনি কি আবিষ্কার করতে পারেন


পাইথনে SIR মডেল চালানো আপনাকে অনুমতি দেয়:

  • রোগের বিস্তার বুঝুন : মহামারী বক্ররেখা পর্যবেক্ষণ করুন এবং একটি সম্প্রদায়ের মাধ্যমে কীভাবে একটি রোগ ছড়ায় তা কল্পনা করুন। উপরের পাইথন এসআইআর মডেলটি চলমান, আপনি নীচের গ্রাফে ফলাফল/ফলাফল দেখতে পারেন:



আমাদের সিমুলেশনের ফলাফল উচ্চ পুনরুদ্ধারের হার সহ কম সংবেদনশীলতা এবং সংক্রমণের হার দেখাচ্ছে।



  • প্যারামিটার সংবেদনশীলতা অন্বেষণ করুন: বিভিন্ন বিটা এবং গামা মান পরীক্ষা করে দেখুন কিভাবে তারা প্রাদুর্ভাবের দৈর্ঘ্য এবং শিখরকে প্রভাবিত করে।


  • হস্তক্ষেপের মূল্যায়ন করুন: পরামিতি পরিবর্তন করে, আপনি হস্তক্ষেপের পরিণতি অনুকরণ করতে পারেন যেমন

    সামাজিক বিচ্ছিন্নতা বা টিকাদান।


3. SEIR মডেল

এটা কি করে / SEIR পাইথন কোড সিমুলেশন উদাহরণ

একটি "উন্মুক্ত" বগি যোগ করার মাধ্যমে, SEIR মডেল SIR মডেলের উপর প্রসারিত হয়। এটি ইনকিউবেশনের সময়কালকে বিবেচনা করে যে সময়ে লোকেরা সংক্রমিত হয়েছে কিন্তু এখনও সংক্রামক নয়। পাইথনে এটি কীভাবে অনুকরণ করা যায় তা এখানে দেখানো হয়েছে।


 import numpy as np from scipy.integrate import odeint import matplotlib.pyplot as plt # SEIR model equations def SEIR_model(y, t, beta, sigma, gamma): S, E, I, R = y dSdt = -beta * S * I dEdt = beta * S * I - sigma * E dIdt = sigma * E - gamma * I dRdt = gamma * I return [dSdt, dEdt, dIdt, dRdt] # Initial conditions S0 = 0.99 E0 = 0.01 I0 = 0.00 R0 = 0.00 y0 = [S0, E0, I0, R0] # Parameters beta = 0.3 sigma = 0.1 gamma = 0.05 # Time vector t = np.linspace(0, 200, 200) # Solve the SEIR model equations solution = odeint(SEIR_model, y0, t, args=(beta, sigma, gamma)) # Extract results S, E, I, R = solution.T # Plot the results plt.figure(figsize=(10, 6)) plt.plot(t, S, label='Susceptible') plt.plot(t, E, label='Exposed') plt.plot(t, I, label='Infected') plt.plot(t, R, label='Recovered') plt.xlabel('Time (days)') plt.ylabel('Proportion of Population') plt.title('SEIR Model Simulation') plt.legend() plt.grid(True) plt.show()


এই ক্ষেত্রে একমাত্র পার্থক্য হল বিভিন্ন পরিস্থিতিতে অন্বেষণ করতে এবং একটি "উন্মুক্ত" সময়ের সাথে সংক্রামক রোগের গতিশীলতা বোঝার জন্য latent period rate (σ) এর প্রবর্তন। এটি ব্যক্তিদের সংক্রামক হওয়ার আগে এটি কীভাবে ইনকিউবেশন পিরিয়ডের জন্য দায়ী তা প্রদর্শন করে।


আপনি কি শিখতে পারেন


যখন আপনি SEIR মডেল চালানোর জন্য Python ব্যবহার করেন, আপনি করতে পারেন:


  • মডেল সুপ্ত সময়কাল

    অবিলম্বে সংক্রামক অসুস্থতা এবং ইনকিউবেশন পিরিয়ডের সাথে রোগের আচরণের মধ্যে পার্থক্যগুলি চিনুন।


  • প্রারম্ভিক হস্তক্ষেপ মূল্যায়ন

    বিচ্ছিন্নতা এবং প্রাথমিক সনাক্তকরণ কৌশলগুলির প্রভাব বিশ্লেষণ করুন।


  • অধ্যয়ন জটিল প্রাদুর্ভাব

    COVID-19-এর মতো অসুস্থতার জন্য যেখানে উন্মুক্ত ব্যক্তিরা সংক্রমণের একটি প্রধান কারণ, SEIR ব্যবহার করুন।



4। উপসংহার

পাইথনের সরলতা এবং শক্তিশালী লাইব্রেরি, যেমন SciPy, এটিকে মডেলিং রোগের জন্য নিখুঁত ভাষা করে তোলে। এবং এটির সাথে এই সিমুলেশনগুলি সম্পাদন করে, আপনি সংক্রামক রোগের গতিশীলতা সম্পর্কে আরও শিখছেন। এটি আপনাকে রায় এবং দক্ষতার সাথে সজ্জিত করতে পারে যা সঠিকভাবে অবহিত সিদ্ধান্ত নিতে সাহায্য করতে পারে এবং বাস্তব বিশ্বে মহামারীগুলি মূল্যায়ন করার জন্য আপনার নিজস্ব ক্ষমতা উন্নত করতে পারে।


SIR এবং SEIR মডেলের পরে আরও অনেক কিছু আসতে হবে। অন্যান্য জটিল মডেল রয়েছে যেমন SEIRS (Susceptible-Exposed-Infectious-Removed-Susceptible) মডেল, স্থানিক মডেল, নেটওয়ার্ক মডেল, ইত্যাদি। জটিল মডেলগুলি তদন্ত করে, সেইসাথে বাস্তব বিশ্বের ডেটা, যেমন ভূ-স্থানিক ডেটা, মহামারী সংক্রান্ত ডেটা, আচরণগত ডেটা। , ইত্যাদি, এবং সাবধানে হস্তক্ষেপের প্রভাবগুলি পরীক্ষা করে, যেমন টিকা কৌশল, চিকিত্সার প্রাপ্যতা, সামাজিক দূরত্বের ব্যবস্থা, আপনি আপনার মডেলিং ক্ষমতা আরও বিকাশ করবেন।


এই মডেলিং সরঞ্জামগুলির সম্পর্কে আপনার জ্ঞান ভবিষ্যতে জনস্বাস্থ্য রক্ষায় উল্লেখযোগ্যভাবে প্রভাবিত করতে পারে যেখানে সংক্রামক রোগ সংক্রমণ বোঝা অত্যাবশ্যক।


এটি ইতিমধ্যেই অনেক দীর্ঘ, কিন্তু আমি আশা করি আমি আপনাকে দেখাতে সক্ষম হয়েছি কিভাবে পাইথন ব্যবহার করে গাণিতিক মডেলে SIR এবং SEIR মডেলগুলি অনুকরণ করা যায়।