paint-brush
पायथन के साथ फैलने वाले संक्रामक रोग का अनुकरण: एसआईआर और एसईआईआर मॉडलद्वारा@olaoluwa
4,324 रीडिंग
4,324 रीडिंग

पायथन के साथ फैलने वाले संक्रामक रोग का अनुकरण: एसआईआर और एसईआईआर मॉडल

द्वारा Olaoluwa Afolabi7m2023/10/13
Read on Terminal Reader

बहुत लंबा; पढ़ने के लिए

पायथन का उपयोग करके संक्रामक रोग मॉडलिंग में गहराई से उतरें। एसआईआर और एसईआईआर मॉडल की शक्ति की खोज करें, पायथन कोड के साथ वास्तविक दुनिया के परिदृश्यों का पता लगाएं, और महामारी विज्ञान संबंधी अंतर्दृष्टि के लिए अपने कौशल का विस्तार करना सीखें। सार्वजनिक स्वास्थ्य में रोग मॉडलिंग में महारत हासिल करने के लिए अवश्य पढ़ें।
featured image - पायथन के साथ फैलने वाले संक्रामक रोग का अनुकरण: एसआईआर और एसईआईआर मॉडल
Olaoluwa Afolabi HackerNoon profile picture
0-item


अस्वीकरण : इस लेख का उद्देश्य यह स्पष्ट करना है कि प्रदान किया गया कोड गणितीय मॉडलिंग के सभी पहलुओं के लिए एक सार्वभौमिक समाधान नहीं है। इसके बजाय, यह एक शैक्षिक उपकरण के रूप में कार्य करता है, गणितीय मॉडलिंग प्रक्रिया में एक विशिष्ट कदम को उजागर करता है और इस क्षेत्र में जागरूकता बढ़ाने के प्राथमिक लक्ष्य के साथ, उदाहरण के लिए पायथन को नियोजित करता है।


यह याद रखना भी महत्वपूर्ण है कि गणितीय मॉडल प्रोजेक्ट सबमिट/प्रस्तावित करते समय आपको कुछ विशिष्ट उपाय करने होंगे, जैसे कि बायोमैथमैटिक्स के क्षेत्र से संबंधित।


इन चरणों में शामिल हैं, लेकिन यहीं तक सीमित नहीं हैं: मुद्दे को परिभाषित करना, एक मॉडल दृष्टिकोण का चयन करना (इस लेख में दो मॉडलों पर चर्चा की जाएगी), समीकरण तैयार करना, पैरामीटर अनुमान - अक्सर ऐतिहासिक डेटा पर आधारित, विश्लेषणात्मक रूप से अंतर समीकरणों को हल करके संख्यात्मक सिमुलेशन लागू करना या पायथन और MATLAB जैसे कम्प्यूटेशनल टूल का उपयोग करना, सत्यापन और संवेदनशीलता विश्लेषण, परिदृश्य परीक्षण, परिणाम व्याख्या, इत्यादि।


जैसा कि मैंने पहले कहा था, यह केवल गणितीय मॉडलिंग प्रक्रिया में एक विशिष्ट कदम और उदाहरणात्मक उद्देश्यों के लिए पायथन को नियोजित करने पर प्रकाश डालता है।


सामग्री अवलोकन

  1. परिचय
    • अनुकरण का उद्देश्य
  2. एसआईआर मॉडल
    • यह क्या करता है / एसआईआर पायथन कोड सिमुलेशन उदाहरण
    • आप क्या सीख सकते हैं
      • बीमारी के फैलाव को समझें
      • पैरामीटर संवेदनशीलता का अन्वेषण करें
      • हस्तक्षेपों का मूल्यांकन करें
  3. एसईआईआर मॉडल
    • यह क्या करता है / SEIR पायथन कोड सिमुलेशन उदाहरण
    • आप क्या सीख सकते हैं
      • मॉडल अव्यक्त अवधि
      • प्रारंभिक हस्तक्षेपों का मूल्यांकन करें
      • अध्ययन जटिल प्रकोप
  4. निष्कर्ष



1 परिचय

यह समझना कि संक्रामक रोग कैसे फैलते हैं, जनता के स्वास्थ्य को बनाए रखने के लिए आवश्यक है क्योंकि वे सदियों से मानव इतिहास में मौजूद हैं। रोग प्रसार की गतिशीलता को समझने और समझने के लिए गणितीय मॉडल एक शक्तिशाली उपकरण है। इस लेख में एसआईआर (सुसेप्टिबल-इन्फ़ेक्शियस-रिकवर्ड) और एसईआईआर (ससेप्टिबल-एक्सपोज़्ड-इन्फेक्शियस-रिकवर्ड) मॉडल पर चर्चा की जाएगी, साथ ही पायथन का उपयोग करके उनका अनुकरण कैसे किया जाए।


सिमुलेशन किस लिए हैं

सार्वजनिक स्वास्थ्य पेशेवरों और महामारी विज्ञानियों के लिए, सिमुलेशन एक क्रिस्टल बॉल की तरह है। यह हमें विभिन्न परिस्थितियों और उपचार विकल्पों के तहत बीमारियों के संभावित प्रसार का अनुमान लगाने में सक्षम बनाता है। ये मॉडल निर्णय लेने, प्रभावी संसाधन आवंटन और विभिन्न तकनीकों के संभावित प्रभावों को समझने में सहायता करते हैं। आइए दो बुनियादी मॉडलों की जाँच करें; एसआईआर मॉडल, और एसईआईआर मॉडल।


2. एसआईआर मॉडल

यह क्या करता है / एसआईआर पायथन कोड सिमुलेशन उदाहरण

अतिसंवेदनशील, संक्रामक और पुनर्प्राप्त (एसआईआर) मॉडल एक आबादी को इन तीन श्रेणियों में अलग करता है। संचरण दर ( β ) और पुनर्प्राप्ति दर ( γ ) जैसे चर के आधार पर, यह अनुकरण करता है कि ये डिब्बे समय के साथ कैसे बदलते हैं।


इससे पहले कि हम पायथन का उपयोग करके एक सिमुलेशन का उदाहरण दें, गणितीय मॉडल पर काम करते समय "मॉडल धारणाएं" बनाना आवश्यक है।


हमारी धारणा में हम 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*}


ध्यान दें: आप पायथन का उपयोग करके इस फॉर्मूलेशन को लेटेक्सिफ़ाई कर सकते हैं। एक उदाहरण https://github.com/google/latexify_py/blob/main/examples/examples.ipynb पर पाया जा सकता है।


यह लेख LaTeX को एक उचित गणितीय संकेतन/समीकरण में परिवर्तित करने के लिए उस पायथन कोड को लिखने की जहमत नहीं उठाएगा, लेकिन मैंने https://latexeditor.lagrida.com/ जैसे ऑनलाइन संपादक का उपयोग किया है ताकि आप नीचे दिए गए सूत्र/समीकरण मान्यताओं को स्पष्ट रूप से देख सकें। :



चित्र 1: मॉडल समीकरण


कहा पे :


  • एस अतिसंवेदनशील व्यक्तियों का प्रतिनिधित्व करता है,
  • मैं संक्रमित व्यक्तियों का प्रतिनिधित्व करता हूं,
  • आर ठीक हुए व्यक्तियों का प्रतिनिधित्व करता है।


पैरामीटर β और γ क्रमशः ट्रांसमिशन और रिकवरी की दरों को नियंत्रित करते हैं। नकारात्मक चिह्न (यानी −β) इंगित करता है कि समय के साथ अतिसंवेदनशील व्यक्तियों (एस) की संख्या कम हो जाती है। बिंदु अंकन "गुणा" को इंगित करता है।


संक्षेप में, ये समीकरण एसआईआर मॉडल की गतिशीलता का वर्णन करते हैं, जहां बीमारी की चपेट में आने पर संवेदनशील लोगों की संख्या कम हो जाती है (यानी डीएस/डीटी), नए संक्रमणों के परिणामस्वरूप संक्रामक लोगों की संख्या बढ़ जाती है और ठीक होने पर गिर जाती है ( यानी डीआई/डीटी), और जैसे-जैसे बीमारी का इलाज होता है (यानी डीआर/डीटी), ठीक होने वाले लोगों की संख्या बढ़ती है। क्योंकि प्रत्येक डिब्बे में परिवर्तन प्रासंगिक घटकों के गुणन पर निर्भर करता है, गुणन को दर्शाने के लिए बिंदु (.) का उपयोग किया जाता है।


चूँकि सभी धारणाएँ निर्धारित हैं, फिर हम एसआईआर मॉडल के लिए पायथन का उपयोग करके एक सिमुलेशन चला सकते हैं और फिर गतिशीलता की कल्पना कर सकते हैं:


 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 की ओर इंगित करना चाहूँगा ताकि आप इसे और अधिक समझ सकें।


आप क्या खोज सकते हैं


पायथन में एसआईआर मॉडल चलाने से आपको इसकी अनुमति मिलती है:

  • बीमारी के प्रसार को समझें : महामारी वक्र का निरीक्षण करें और कल्पना करें कि एक बीमारी एक समुदाय में कैसे फैलती है। ऊपर दिए गए Python 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 मॉडल को चलाने के लिए पायथन का उपयोग करते हैं, तो आप यह कर सकते हैं:


  • मॉडल अव्यक्त अवधि

    तत्काल संक्रामक बीमारियों और ऊष्मायन अवधि वाले रोगों के व्यवहार के बीच अंतर को पहचानें।


  • प्रारंभिक हस्तक्षेपों का मूल्यांकन करें

    अलगाव और शीघ्र पता लगाने की रणनीतियों के प्रभावों का विश्लेषण करें।


  • अध्ययन जटिल प्रकोप

    सीओवीआईडी-19 जैसी बीमारियों के लिए जहां संपर्क में आने वाले लोग संचरण का एक प्रमुख कारक हैं, एसईआईआर का उपयोग करें।



4। निष्कर्ष

पायथन की सरलता और SciPy जैसी मजबूत लाइब्रेरी, इसे बीमारियों के मॉडलिंग के लिए आदर्श भाषा बनाती है। और इसके साथ इन सिमुलेशन को निष्पादित करके, आप संक्रामक रोगों की गतिशीलता के बारे में अधिक सीख रहे हैं। यह आपको फैसले और कौशल से लैस कर सकता है जो अच्छी तरह से सूचित निर्णय लेने में मदद कर सकता है और वास्तविक दुनिया में महामारी का मूल्यांकन करने की आपकी क्षमता में सुधार कर सकता है।


एसआईआर और एसईआईआर मॉडल के बाद और भी बहुत कुछ आना बाकी है। अन्य जटिल मॉडल हैं जैसे SEIRS (संवेदनशील-उजागर-संक्रामक-हटाए गए-संवेदनशील) मॉडल, स्थानिक मॉडल, नेटवर्क मॉडल, आदि। जटिल मॉडल, साथ ही वास्तविक दुनिया डेटा, जैसे कि भू-स्थानिक डेटा, महामारी विज्ञान डेटा, व्यवहार डेटा की जांच करना , आदि, और टीकाकरण रणनीतियों, उपचार की उपलब्धता, सामाजिक दूरी के उपायों जैसे हस्तक्षेपों के प्रभावों की सावधानीपूर्वक जांच करने से, आप अपनी मॉडलिंग क्षमताओं को और भी अधिक विकसित करेंगे।


इन मॉडलिंग टूल के बारे में आपका ज्ञान भविष्य में सार्वजनिक स्वास्थ्य की सुरक्षा पर महत्वपूर्ण प्रभाव डाल सकता है, जहां संक्रामक रोग संचरण को समझना महत्वपूर्ण है।


यह पहले से ही बहुत लंबा है, लेकिन मुझे आशा है कि मैं आपको यह दिखाने में सक्षम हूं कि पायथन का उपयोग करके गणितीय मॉडल में एसआईआर और एसईआईआर मॉडल का अनुकरण कैसे किया जाए।