Model SEIR
Model SEIR (ang. Susceptible‑Exposed‑Infectious‑Recovered) jest jednym z podstawowych matematycznych modeli służących do modelowania rozprzestrzeniania chorób zakaźnych. Rozwija on klasyczny model SIR, wprowadzając dodatkową grupę narażonych na infekcję (Exposed, E), co pozwala lepiej odzwierciedlić okres inkubacji choroby, w którym osoba jest już zainfekowana, ale jeszcze nie jest zdolna do przenoszenia patogenów.
Historia
Podstawy modelu SEIR sformułowano w latach 70. XX wieku w ramach rozwoju epidemiologii matematycznej. Pierwsze publikacje opisujące ten model pojawiły się w pracach Kermacka i McKendry’ego oraz w późniejszych opracowaniach autorów takich jak Anderson i May. Od tego czasu model SEIR stał się standardowym narzędziem w analizie przebiegu pandemii, m.in. grypy, SARS, a ostatnio COVID‑19.
Struktura modelu
Populację rozdziela się na cztery grupy:
- S (Susceptible) – osoby podatne na zakażenie;
- E (Exposed) – osoby, które zostały zarażone, ale znajdują się w okresie inkubacji i nie są jeszcze zakaźne;
- I (Infectious) – osoby chorujące i zdolne do przenoszenia infekcji;
- R (Recovered) – osoby, które wyzdrowiały i uzyskały odporność (lub zmarły, w zależności od wersji modelu).
Równania różniczkowe
Model opisuje dynamikę grup za pomocą układu zwykłych równań różniczkowych (równania różniczkowe):
dS/dt = -β·S·I/N dE/dt = β·S·I/N - σ·E dI/dt = σ·E - γ·I dR/dt = γ·I
gdzie:
- β – współczynnik transmisji (tempo zarażania);
- σ – współczynnik przejścia z fazy Exposed do Infectious (odwrotność średniego czasu inkubacji);
- γ – współczynnik wyzdrowienia (odwrotność średniego czasu trwania zakaźności);
- N = S + E + I + R – całkowita liczba jednostek w populacji.
Podstawowe pojęcia
- R₀ (basic reproduction number) w modelu SEIR wyraża się jako
R₀ = β / γprzy założeniu, że faza Exposed nie wpływa na liczbę nowych zakażeń, ale w praktyce uwzględnia się opóźnienie spowodowane okresem inkubacji. - Parametr latent period (= 1/σ) odgrywa kluczową rolę w prognozowaniu tempa wzrostu epidemii.
Warianty i rozszerzenia
W zależności od specyfiki badanej choroby i dostępnych danych, model SEIR może być modyfikowany:
- SEIRS – dodaje powrót do klasy Susceptible po utracie odporności;
- SEIHR – wprowadza dodatkową kategorię Hospitalized (hospitalizowani);
- SEAIQHR – uwzględnia wyizolowane przypadki (Quarantined) i asymptomatyczne zakażenia;
- Model przestrzenny – łączy SEIR z równaniami dyfuzyjnymi lub sieciami kontaktów, aby opisać rozprzestrzenianie się w różnych regionach.
Zastosowania
Model SEIR stosowany jest w:
- Prognozowaniu przebiegu pandemii, np. grypy A(H1N1) w 2009 r.;
- Analizie interwencji zdrowotnych, takich jak szczepienia, dystans społeczny czy kwarantanna;
- Oceny wpływu zmiany parametrów (β, σ, γ) na R₀ i liczbę przypadków;
- Wsparciu decyzji politycznych i przygotowania systemów opieki zdrowotnej.
Estymacja parametrów
Parametry β, σ i γ najczęściej estymuje się na podstawie danych epidemiologicznych przy użyciu metod:
- Maximum likelihood (MLE);
- Metody bayesowskie (np. MCMC);
- Algorytmy optymalizacji (np. algorytm genetyczny);
- Iteracyjne dopasowanie krzywej do rzeczywistych danych przypadków (uwagi statystyczne).
Oprogramowanie
Do symulacji modelu SEIR dostępne są pakiety w językach:
- R – np. pakiet
deSolvelubEpiModel; - Python – biblioteka
epipylubSciPy(solve_ivp); - MATLAB – funkcja
ode45lub dedykowane toolboxy; - Julia – paczka
DifferentialEquations.jl.
Zalety i ograniczenia
Zalety:
- Prostota i przejrzystość konstrukcji;
- Możliwość szybkiego dostosowania do różnych chorób poprzez zmianę parametrów;
- Szerokie zastosowanie w literaturze naukowej.
Ograniczenia:
- Zakłada jednorodną mieszankę populacji (brak heterogeniczności kontaktów);
- Nie uwzględnia zmian w zachowaniach społecznych w czasie trwania epidemii, chyba że wprowadzi się dodatkowe zmienne;
- Wymaga dokładnych danych o okresie inkubacji i czasie trwania zakaźności, które nie zawsze są dostępne.
Przykład prostego kodu w Pythonie
import numpy as np
from scipy.integrate import solve_ivp
import matplotlib.pyplot as plt
def seir(t, y, beta, sigma, gamma, N):
S, E, I, R = y
dS = -beta * S * I / N
dE = beta * S * I / N - sigma * E
dI = sigma * E - gamma * I
dR = gamma * I
return [dS, dE, dI, dR]
N = 1_000_000
beta, sigma, gamma = 0.3, 1/5.2, 1/2.9
y0 = [N-1, 0, 1, 0]
t_span = (0, 160)
t_eval = np.linspace(*t_span, 160)
sol = solve_ivp(seir, t_span, y0, args=(beta, sigma, gamma, N), t_eval=t_eval)
plt.plot(sol.t, sol.y[0], label='S')
plt.plot(sol.t, sol.y[1], label='E')
plt.plot(sol.t, sol.y[2], label='I')
plt.plot(sol.t, sol.y[3], label='R')
plt.legend()
plt.xlabel('Dni')
plt.ylabel('Liczba osób')
plt.title('Prosty model SEIR')
plt.show()
Literatura
- Kermack, W.O.; McKendrick, A.G. (1927). Contributions to the mathematical theory of epidemics – I. Proceedings of the Royal Society A.
- Anderson, R.M.; May, R.M. (1991). Infectious Diseases of Humans: Dynamics and Control. Oxford University Press.
- Keeling, M.J.; Rohani, P. (2008). Modeling Infectious Diseases in Humans and Animals. Princeton University Press.
- Wallinga, J.; Lipsitch, M. (2007). How generation intervals shape the relationship between growth rates and reproductive numbers. Proceedings of the Royal Society B.
- Ferguson, N. et al. (2020). Impact of non-pharmaceutical interventions (NPIs) to reduce COVID‑19 mortality and healthcare demand. Imperial College London.
Model SEIR pozostaje jednym z najważniejszych narzędzi w modelowaniu rozprzestrzeniania chorób, łącząc prostotę z możliwością uwzględnienia kluczowych cech biologicznych patogenów.