시뮬레이션 > SIRD 전염병 확산 시뮬레이션 > 설명서
SIRD 시뮬레이션 설명서
시뮬레이션 화면의 슬라이더와 그래프가 각각 무엇을 뜻하는지, 어디를 보고 확산 양상을 읽어내면 되는지 정리했습니다. 화면과 나란히 띄워두고 값을 하나씩 바꿔가며 읽으면 이해가 훨씬 빠릅니다.
1. SIRD 모델이란
감염병이 퍼지는 집단을 네 그룹으로 나눠서, 매일 얼마나 많은 사람이 한 그룹에서 다음 그룹으로 넘어가는지를 계산하는 수리 모델입니다. 이 시뮬레이션은 총 인구 1,000명을 대상으로 다음 네 구획을 추적합니다.
- S (Susceptible, 감수성자) — 아직 감염되지 않았고, 면역도 없어서 걸릴 수 있는 사람
- I (Infected, 감염자) — 현재 감염되어 있고 남에게 옮길 수 있는 사람
- R (Recovered, 회복자) — 감염에서 회복해 면역을 얻은 사람 (이 모델에서는 재감염되지 않는다고 가정)
- D (Dead, 사망자) — 감염으로 사망한 사람
매일 S에 있던 사람 중 일부가 I로, I에 있던 사람 중 일부가 R 또는 D로 옮겨갑니다. 화살표 방향이 S→I→(R 또는 D)로만 나 있어서 한 번 R이나 D로 넘어간 사람은 되돌아오지 않는다는 점이 이 모델의 핵심 규칙입니다.
2. 매개변수 다섯 가지
| 매개변수 | 의미 | 값이 커지면 |
|---|---|---|
| 1인당 하루 접촉 수 | 감염자 한 명이 하루 동안 마주치는 사람 수 | 전파 기회 자체가 늘어 확산 속도가 빨라짐 |
| 접촉 시 감염 확률 | 감수성자가 감염자와 접촉했을 때 실제로 옮을 확률 | 병원체 자체의 전파력이 강해 접촉당 감염 성공률이 오름 |
| 일일 회복률 | 감염자 중 하루에 회복(R)으로 넘어가는 비율 | 평균 감염 지속 기간이 짧아져 한 사람이 남을 옮길 수 있는 기간이 줄어듦 |
| 일일 치명률 | 감염자 중 하루에 사망(D)으로 넘어가는 비율 | 같은 유행 규모라도 사망자 곡선이 더 가파르게 올라감 |
| 초기 감염자 수 | 0일차에 이미 감염되어 있는 사람 수 | 유행이 더 이른 시점부터 눈에 띄게 시작됨 (확산 속도 자체는 안 바뀜) |
여기서 회복률과 치명률은 평균 감염 지속 기간과 뒤집힌 관계입니다. 일일 회복률이 10%라는 건 감염자가 평균적으로 약 10일(1 ÷ 0.10) 동안 남에게 옮길 수 있는 상태로 머문다는 뜻이거든요. 회복률 슬라이더를 낮추면 확산이 빨라 보이는 이유가 바이러스가 강해져서가 아니라, 단순히 한 사람이 감염 상태로 더 오래 머무는 것뿐이라는 걸 기억하면 나머지 그래프 해석이 쉬워집니다.
3. 기초감염재생산수 (R₀)
화면 하단에 표시되는 R₀는 다음 공식으로 계산됩니다.
R₀ = (접촉 수 × 감염 확률) ÷ (회복률 + 치명률)
분자는 감염자 한 명이 하루에 실제로 몇 명을 감염시키는지, 분모는 그 사람이 감염 상태로 머무는 비율의 역수 개념입니다. 결국 R₀는 감염자 한 명이 감염 기간 전체 동안 평균적으로 몇 명을 새로 감염시키는가를 뜻합니다.
- R₀ > 1 — 감염자 한 명이 자신을 대체할 사람보다 많이 옮기므로 유행이 커짐
- R₀ < 1 — 한 명이 옮기는 수가 자신보다 적어 유행이 저절로 사그라듦
- R₀ = 1 — 감염자 수가 늘지도 줄지도 않는 경계
참고로 실제 질병의 R₀는 계절독감이 약 1.3, 코로나19 초기형이 약 2~3, 홍역은 12~18 정도로 알려져 있습니다. 슬라이더를 조절해서 R₀가 이 범위를 지날 때 감염자 곡선의 모양이 어떻게 달라지는지 비교해 보면 좋습니다.
4. 그래프 읽는 법
그래프의 세로축은 전체 인구(1,000명) 대비 비율, 가로축은 경과 일수입니다. 네 곡선은 항상 합해서 100%가 되도록 움직입니다 — S가 줄어든 만큼 I·R·D를 합친 값이 늘어나는 구조입니다.
- 감염자(I) 곡선의 정점이 이 그래프에서 가장 중요하게 볼 지점입니다. 정점이 높고 뾰족할수록 짧은 기간에 환자가 몰린다는 뜻이고, 정점이 낮고 완만할수록 같은 수의 환자가 더 긴 기간에 걸쳐 나뉜다는 뜻입니다. 실제 방역에서 접촉 수를 줄이거나(사회적 거리두기) 회복률을 높이는(치료제·조기 진단) 정책이 노리는 게 바로 이 정점을 낮추고 늦추는 것 — 흔히 말하는 "곡선 평탄화(flatten the curve)"입니다.
- 감수성자(S) 곡선이 바닥에서 멈추는 지점을 보면 유행이 끝난 뒤에도 전체 인구가 다 감염되지는 않는다는 걸 확인할 수 있습니다. I가 0에 가까워지면 R₀ 계산에 쓰이는 실제 접촉 대상 중 감염 가능한 사람 비율이 줄어들어, 이론상 R₀가 1보다 높았던 경우에도 유행이 자연스럽게 꺾입니다. 이게 "집단면역"이 작동하는 방식이고, 대략 필요한 면역 인구 비율은 1 − 1/R₀로 추정합니다 (예: R₀=2면 절반 정도만 면역을 가져도 확산이 멈춥니다).
- 회복자(R)와 사망자(D) 곡선의 마지막 값은 이번 유행이 끝난 뒤의 최종 결과입니다. 두 값을 더하면 전체 인구 중 이번 유행 동안 한 번이라도 감염됐던 사람의 비율 (최종 감염 규모, final size)이 나옵니다.
- 그래프 위에 마우스를 올리면(모바일에서는 터치) 해당 일자의 네 값을 정확한 숫자로 보여주는 툴팁이 뜹니다. 정점이 정확히 며칠째인지, 그날 감염자가 몇 명인지 확인할 때 씁니다.
5. 이 모델의 가정과 한계
시뮬레이션 결과를 실제 통계처럼 받아들이기 전에, 이 모델이 단순화를 위해 깔고 있는 전제를 알아두면 좋습니다.
- 완전 혼합 가정 — 1,000명 전원이 매일 무작위로 똑같은 확률로 서로 접촉한다고 가정합니다. 실제로는 가족·학교·직장처럼 접촉이 특정 집단 안에 몰려 있어서 확산 양상이 훨씬 울퉁불퉁합니다.
- 연령·건강 상태 구분 없음 — 모든 사람의 감염 확률·회복률·치명률이 동일하다고 가정합니다. 실제 질병은 연령대나 기저질환에 따라 치명률 차이가 큽니다.
- 영구 면역 — 한 번 회복하면 재감염되지 않는다고 가정합니다. 면역이 시간이 지나며 약해지는 질병(예: 계절독감)에는 맞지 않습니다.
- 결정론적 계산 — 같은 값을 입력하면 항상 같은 곡선이 나옵니다. 실제 초기 확산은 운 좋게 슈퍼전파자를 만나느냐에 따라 결과가 크게 갈리는 확률적 과정입니다.
그래서 이 시뮬레이션은 "실제로 며칠 뒤 몇 명이 걸릴까"를 예측하는 도구가 아니라, 접촉 수·감염 확률·회복률 같은 변수 하나를 바꿨을 때 확산 곡선의 모양이 어느 방향으로 움직이는지를 직관적으로 확인하는 용도로 보는 게 맞습니다.