본문 바로가기
감염병 자료분석

SIR과 SEIR 모형: 결정모형

by be-favorite 2021. 7. 13.

❗️블로그 옮김:  https://www.taemobang.com

 

방태모

안녕하세요, 제 블로그에 오신 것을 환영합니다. 통계학을 전공으로 학부, 석사를 졸업했습니다. 현재는 가천대 길병원 G-ABC에서 Data Science를 하고있습니다. 통계학, 시계열, 통계적학습과 기계

www.taemobang.com

 

❓ More to read
Tutorials on deterministic SIR models in R

Introduction

본 글에서는 질병 확산 모델링에 쓰이는 구획 모형(compartment model)의 가장 기본형이라 할 수 있는 두 모형 SIR, SEIR 모형을 소개하려고 합니다. 두 모형은 감염병 모델링에서 가장 기본이 되며, 상대적으로 적은 양의 자료로 모형을 구성하기 쉬워 상당히 자주 쓰이는 모형이라 할 수 있습니다. 아울러, 두 모형의 역학(dynamics)은 NPIs[각주:1]와 같은 통제정책(e.g. 사회적거리두기)의 효과를 가정하여 다양한 예측 시나리오를 쉽게 제공할 수 있게 해줍니다.[각주:2] 다양한 종류의 질병 중에서도 특히 사람간의 전염이 발생하는 전염병의 확산을 모델링하는 것 만큼 어려운 일은 없습니다. 그래서, 최선의 상황부터 최악의 상황까지의 여러 예측 시나리오를 손쉽게 조정하여 제공할 수 있다는 점은 구획 모형을 기반으로한 전염병 유행 예측이 갖는 가장 큰 장점이라고 생각합니다.

 

구획모형은 모집단(population)을 질병 상태를 나타내는 구획으로 나누고, 각 구획간의 전이(transition)를 모형화하는 데에 수학적 방정식을 사용하는 모형을 말합니다. SIR, SEIR 모형은 모집단을 다음과 같은 구획으로 나눕니다:

 

  • Susceptible($S$): 민감군, i.e. 감염 대상군
  • Exposed($E$): 접촉군
  • Infected($I$): 감염군
  • Recovored($R$): 회복군

SIR 모형은 접촉군($E$)을 고려하지않은 모형에 해당합니다.[각주:3] 접촉군을 구획에 추가함으로써 잠복기를 고려한 SEIR 모형은 전염병에 의해 노출되어 감염되었으나 아직 증세가 나타나지 않은 잠복기 중 인원(asymptomatic population)과 증세가 나타난 발병 인원(symptomatic population)으로 구분하여 모형에 반영함으로써 전염병 확산을 보다 정확하게 예측할 수 있는 모형이라 할 수 있겠습니다. 다음은 구획의 설정에 따라 나뉘는 구획 모형의 기본적인 종류를 간략하게 나타낸 그림입니다.

 

그림 1. 질병 확산 모델링에 쓰이는 구획 모형의 기본적인 종류

 

구획 모형은 구획간 전이에 관여하는 모수(parameters)들을 추정하는 방식에 따라 결정모형(deterministic model)과 확률모형(stochastic model)으로 나뉘게 됩니다. 그 기준에 대해 간략하게 말씀드리면, 결정모형의 경우 추정에 미분 방정식(differential equations)을 이용하며, 확률모형의 경우 MLE(maximumu likelihood estimation, 최대우도추정) 또는 베이지안 관점의 사후분포 추론에 자주 이용되는 MCMC(markov chain monte carlo, 마코프 체인 몬테 카를로)를 이용합니다. 기본적으로 결정모형의 경우 모집단의 크기가 큰 경우에 잘 작동한다고 알려져있으며, 확률모형의 경우 비교적 작은 크기의 모집단에 역학을 시뮬레이션할 때 좀 더 좋다고 알려져있습니다. 본 글에서 소개할 SIR, SEIR 모형은 결정모형 중에서도 연속 모형의 상미분방정식형(ordinary differential equations)에 해당함을 미리 말씀드립니다.[각주:4] 아울러, 본 글에서 소개하는 SIR 모형, SEIR 모형의 로직을 이해하면 그림 1에서 제시하고 있는 구획 모형 이외에도, 도메인 지식만 어느정도 갖추어져 계시다면 다양한 구획을 가진 복잡한 모형을 개발하시는 것에도 어려움이 없으실 겁니다.😃 다만, 한없이 많은 구획과 모수를 설정하여 복잡한 모형을 설계하는 것이 꼭 좋은 것만은 아니라는 것을 알고계시기 바랍니다. 통계학과 머신러닝에서 자주 거론되는 모수 절약의 원칙(principle of parsimony)[각주:5]의 관점에서 생각해봤을 때, 구획 모형을 기반으로한 질병 확산 모델링의 경우에도 역시 현 상황과 미래 상황을 적절하게 설명할 수 있는 최적화된 모형을 찾는 과정이 꼭 필요로 되기 때문입니다.

 

1 An basic SIR model

가장 기본적인 형태의 SIR 모형을 소개하겠습니다. 다음의 3가지 사항을 가정하고 시작하겠습니다:

 

  • 동질적 모집단: 각 구획에 속하는 개인들은 동일한 위험(harzards)에 노출됨
  • 충분히 잘 혼합된(well-mixed) 모집단: 민감군에 속하는 모든 이들의 감염 위험(risk)은 동일
  • 영구적 면역(immunity): 감염병으로부터 회복된 개인들의 면역은 영구적

 

위 3가지 사항이 가정된 가장 기본적 형태의 SIR 모형은 모집단의 크기를 $N$이라고 했을 때, 다음과 같은 미분 방정식을 통해 각 군의 시간(단위: 일)에 따른 변화량을 추정합니다:

 

 

\begin{aligned} \frac{dS(t)}{dt} = -\beta \frac{I(t)}{N} S(t) \end{aligned}

\begin{equation} \frac{dI(t)}{dt} = \beta \frac{I(t)}{N} S(t) - \gamma I(t) \end{equation}

\begin{aligned} \frac{dR(t)}{dt} = \gamma I(t) \end{aligned}

 

여기서 $\beta$는 감염률, $\gamma$는 회복률을 의미합니다. 여기서 회복률에 역수를 취한 $1/\gamma$는 평균감염기간(average infectious periods)을 의미합니다. 예를 들어, 어떤 질병의 평균감염기간이 14일이라면, $\gamma$를 $1/14$로 가정할 수 있을 겁니다. 그리고, 간혹 본 글과는 달리 $\beta$를 1인당 감염률로 정의하는 경우도 있는데, 이러한 경우 식 (1)과는 달리 $\beta$가 포함된 term에서 분모 N은 자연스럽게 빠지게 됩니다. 일반적으로는 식 (1)과 같은 형태를 선호하며, 그 이유는 모집단의 크기 $N$이 매우 클 경우에 1인당 감염률은 아주 작은 값을 갖게 되어 미분방정식의 계산 과정에서 소프트웨어에 기술적인 문제를 일으킬 수 있기 때문입니다.

 

언뜻보면 식이 복잡해 보일 수 있으나, 천천히 살펴보면 상당히 직관적입니다. 먼저, 민감군의 변화량은 감염률 $\beta$와 감염군에 속한 사람들의 비율 $\frac{I(t)}{N}$의 곱에 $t$ 시점 민감군의 수 $S(t)$을 곱한 값의 음수로 정의되고 있습니다. 음수라는 뜻은 즉 민감군에서 감염군으로의 일별 유출량을 나타낸다고 할 수 있으며, (감염률)*(감염군에 속한 사람들의 비율)*(민감군의 수)을 유출량으로 정의하는 것은 직관적으로도 당연하게 받아들여 집니다. 여기서 (감염률)*(감염군에 속한 사람들의 비율)인 $\beta \frac{I(t)}{N}$는 감염력(force of infection) $\lambda$라고 정의할 수도 있습니다. 이를 반영하여 식을 좀 더 간단하게 쓸 수 있습니다:

 

\begin{aligned} \frac{dS(t)}{dt} = -\lambda S(t) \end{aligned}

\begin{equation} \frac{dI(t)}{dt} = \lambda S(t) - \gamma I(t) \end{equation}

\begin{aligned} \frac{dR(t)}{dt} = \gamma I(t) \end{aligned}

 

감염군의 변화량도 민감군으로 부터의 유입 $\lambda S(t)$와 회복률에 따른 회복군으로의 유출 $-\gamma I(t)$로 쉽게 정의됩니다. (회복률)*(회복군의 수)를 회복군으로의 유출량으로 정의하는 것 또한 우리는 쉽게 받아들일 수 있습니다. 그에따라 마지막 회복군의 변화량은 간략하게 회복군으로부터의 유입량 $\gamma I(t)$으로 정의가 되죠. 이렇게 식을 하나씩 뜯어보면 언뜻보면 복잡해 보일 수 있는 SIR 모형은 상당히 간단한 원리로 질병 확산 모델링을 하고 있음을 알 수 있습니다.

 

식 (2)에 따라 우리는 다음과 같이 간단한 그림으로 기본적인 설정의 SIR 모형을 나타낼 수 있습니다:

 

Figure 1. A simple flow chart of the basic SIR model

 

여기서 우리처럼 $\lambda$를 따로 정의하지 않는다면, Figure 1의 $\lambda$는 $\beta$가 될 겁니다. 이로써 우리는 유행이 우려되는 질병에 대해, 초깃값(e.g. $S(0) = N-1, I(0) = 1, R(0) = 0$)과 감염률 $\beta$와 회복률 $\gamma$를 여러가지 설정으로 가정하여 SIR 모형을 통해 다양한 유행 예측 시나리오를 시뮬레이션을 해볼 수 있습니다.

 

기초감염 재생산수 $R_0$

본 글의 주제와는 조금 벗어나나, 질병 확산 모델링에서 한 가지 알아두고 가야할 지표인 기초감염 재생산수(basic reproduction number or basic reproductive number, $R_0$)[각주:6]에 대해 간략하게 소개해보겠습니다. 기초감염 재생산수란, 감염군($I$)에 속하는 개인이 접촉한 모든 사람을 민감군($S$)으로 가정했을 때 평균적으로 감염시킬 수 있는 사람의 수를 의미합니다. 우리는 $R_0$를 다음과 같이 감염률과 회복률로부터 정의할 수 있습니다:

 

\begin{equation} R_0 = \frac{\beta}{\gamma} \end{equation}

 

이 값이 1보다 클 경우 감염 전파의 확산(epidemic, 유행)이 일어날 것이며, 1일 경우 감염 수준 지속(endemic, 풍토병) 정도로 산발적인 감염이 일어나는 수준에 그칠 것이며, 1보다 작은 경우 감염 수준이 감소되어 언젠가는 종식되고 성공적으로 감염을 통제하였다고 평가할 수 있을겁니다. COVID-19의 $R_0$의 경우 다른 NPIs를 수행하지 않았을 경우 2.5 정도로 추정하고 있으며, 우리가 현재 COVID-19 유행 확산을 줄이기 위해 하는 모든 정책들은 $R_0$를 1 미만으로 줄이기 위한 노력이라고 할 수 있겠습니다. 이러한 $R_0$를 추정하는 방법에는 여러가지가 있으며, 본 글의 주제와는 어긋나므로 $R_0$의 추정 방식과 $R_0$를 통해 얻을 수 있는 것에 대해서는 추후 따로 포스팅할 예정입니다.

 

2 An basic SEIR model

SIR 모형의 기본적 로직을 잘 이해했다면, SEIR 모형의 상미분 방정식은 어렵지 않게 생각해낼 수 있습니다. SIR 모형에 잠복기를 고려하는 새로운 구획 E를 추가했다는 점과 접촉군에서 감염군으로의 이동률 고려를 위한 모수가 하나 더 필요하다는 점을 생각하면 됩니다. 아래에 제가 정의한 상미분 방정식을 보지마시고 혼자서 생각해보는 시간을 가져보시기 바랍니다.😊 상미분 방정식을 정의하기 전에 본 글의 Figure 1처럼 모형의 flow chart를 끄적여 보는 것도 큰 도움이 되실 겁니다. 저는 접촉군에서 감염군으로의 이동률에 관한 모수를 $\sigma$라고 하겠습니다. 즉, 이러한 경우 $1/\sigma$는 평균잠복기(average incubation periods)라고 통상적으로 표현합니다. 위 사항들을 반영하며 SEIR 모형의 상미분 방정식을 써보면 다음과 같습니다:

 

\begin{aligned} \frac{dS(t)}{dt} = -\lambda S(t) \end{aligned}

\begin{equation} \frac{dE(t)}{dt} = \lambda S(t) - \sigma E(t) \end{equation}\begin{aligned} \frac{dI(t)}{dt} = \sigma E(t) - \gamma I(t) \end{aligned} \begin{aligned} \frac{dR(t)}{dt} = \gamma I(t) \end{aligned}

 

위 상미분 방정식을 토대로 SEIR 모형의 flow chart를 작성해보면 다음과 같습니다:

 

Figure 2. A simple flow chart of the basic SEIR model

 

이로써 간단한 형태의 SIR 모형, SEIR 모형의 구현이 모두 끝났습니다. 두 기본형에 대한 이해가 되셨다면, 앞으로 어렵지 않게 더 복잡한 형태의 모형들을 개발하실 수 있을겁니다. 구획 모형의 간단한 기본형에서 출발하여 자신만의 구획 모형을 차근차근 개발해봅시다.😃

 

 

📝 참고 문헌

[1] Extending the basic SIR Model in R, <towards data science>

[2] 한무영 (2006). MCMC를 이용한 전염병 확산 모형개발에 관한 연구.

[3] 감염병과 수학모형: SIR 모형과 SEIR 모형, 질병관리본부 전염병대응센터 역학조사과


  1. non-pharmaceutical interventions: 비약물적 중재 [본문으로]
  2. 기초감염 재생산수의 적절한 설정을 통해 다양한 시나리오 제시 가능 [본문으로]
  3. SIR, SEIR 모형은 각각은 각 구획의 첫 알파벳을 따서 명명됨 [본문으로]
  4. 결정모형은 다시 이산(discrete) 모형과 연속(continuous) 모형으로 구분되며, 연속(continuous) 모형은 상미분방정식형(ordinary differential equations)과 편미분방정식형(partial differential equations)로 나타내어짐 [본문으로]
  5. 비슷한 뜻의 용어로 "오컴의 면도날(Occam's Razor 또는 Ockham's Razor)"이 있음 [본문으로]
  6. "R naught"라고 읽음 [본문으로]

'감염병 자료분석' 카테고리의 다른 글

의학 용어 정리  (0) 2021.06.04

댓글