본문 바로가기

Content

코로나19 감염회복 시뮬레이션

일주일 전 쯤 워싱턴포스트에 코로나 확산과 회복에 관한 시뮬레이션 기사가 올라왔다. 

아래의 기사는 사회적 거리두기가 코로나19가 빠르게 확산되지 않도록 하는데 얼마나 효과적인지를 아주 잘 보여주고 있다. 

 

https://www.washingtonpost.com/graphics/2020/world/corona-simulator/

 

 

 

 

 

기사를 보고 몇 가지 조건을 바꾸거나 넣어보면 어떻게 바뀔까 궁금해하다가 시간을 내어 한번 만들어봤다. 이렇게 개별적인 개체에 조건을 주어 시뮬레이션 하는 방식을 agent-based modeling 이라고도 하는데, 화재 탈출 시뮬레이션처럼 군집의 행동을 예측해보는데 널리 쓰인다. 어떤 조건들을 설정하느냐, 혹은 얼마나 세밀하게 셋팅하느냐에 따라 결과가 많이 달라지기도 한다.

 

워싱턴 포스트에서 보여준 방식과 조건은 실제 사회의 이동과 사람 사이의 네트워크에 비하면 많이 단순화된 모델이지만 결과를 과대해석하지 않는다면 충분히 시도해볼만한 가치가 있다고 생각한다. 아래에 만들어본 11가지 모델들도 기본적으로 워싱턴포스트의 설정과 같다.

 

0. 개체들은 한정된 공간 안에서 직선 운동을 하며, 충돌하면 입사각과 대칭이 되도록 반사된다.

1. 개체들의 물리적 충돌에 의해 감염이 된다.

2. 감염되고나면 일정 시간 이후 회복한다. 회복되면 다시 감염되지 않는다.

3. 병으로 사망하는 사람은 고려하지 않는다. 모델 안에 사망자는 없다.

 

물론 차이점도 있는데, 그건 차차 설명해보겠다.

 

 

일단 기본적인 모델을 만들어봤다.

 

개체는 256개. 여기서는 '보통밀도'라고 부른다.

여기부터는 256'명'이라고 부르겠다. 11개의 모델 중 9개는 모두 256명으로 시뮬레이션 했다.

워싱턴포스트에서는 모두 같은 속도로 움직이는데, 여기서는 느리게 움직이는 사람과 빠르게 움직이는 사람들 사이에 고르게 분포하도록 했다. 그게 조금 더 현실적이라 생각했다.

 

시간이 지남에 따라 대부분이 감염되었다. 운 좋게도 2명은 감염자들이 사라질 때 까지 만나지 않고 끝까지 건강하게 버텼다. 물론 시뮬레이션은 난수 설정에 따라 돌릴때마다 결과가 달라지므로 어떤 경우는 모두 감염되는 경우도 있었다. 여기서는 다른 조건과 비교를 위해 난수 seed를 통제하여 초기에 모두 같은 위치에 배열되고 같은 방향과 속도로 움직이도록 했다.

 

밀집 공간 안의 집단 감염

 

이제 현실 세계에 있는 조건을 하나 넣어보자.

사람이 밀집된 공간.

교회든 클럽이든 직장이든, 같은 시간 안에 상대적으로 밀접하게 접촉하는 곳들을 설정했다.

 

시뮬레이션 모델에서는 밀집 장소를 두 곳 만들고 그 안에 들어가면 사람들이 빨리 움직이도록 했다. 즉, 같은 시간 안에 더 많은 사람들과 접촉하게 된다. 들어갈 때는 모든 경계에서 자연스럽게 들어가고 일정시간 동안 안에서만 움직이다가 빠져나오게 된다.

 

 

8~9초 경에 해당 공간에 감염자가 유입되면서 감염자가 급격하게 증가한다. 이후 그 사람들은 밖으로 빠져나가 다른 사람들도 감염시킨다. 상단의 그래프에 급격한 곡선을 기울기를 볼 수 있다.

 

시간이 지나면 모든 사람이 한 번쯤은 병에 걸린 상태가 된다. 그 지점을 상단 그래프에 흰색 수직선으로 표현했다.

 

 

 

밀도 낮은 사회 속 밀집 공간 안의 집단 감염

 

밀집된 장소는 사람의 밀도가 낮은 곳에서 더 큰 영향을 미치지 않을까?

일단 256명의 절반인 128명이 생활하는 공간을 만들어봤다. '낮은 밀도'라고 부르겠다.

 

 

일단 밀도가 절반이 되니 감염 원인인 사람간의 접촉 확률이 낮아진다. 전체의 7%는 끝까지 건강하게 남았다.

 

 

이제 여기에도 밀집 공간을 만들어보자.

 

 

밀집된 공간에서의 집단 감염으로 인해 초반 기울기가 급격한 부분이 생겼으며, 순간적으로 감염된 사람들의 최대치도 더 높아졌다. 그래도 3%는 어찌어찌 운좋게 병에 걸리지 않았다. 

 

 

 

슈퍼전파자의 영향

 

밀집 공간의 위험성을 확인했으니 이제 위험 요인 하나를 더 추가해보자.

바로 슈퍼전파자.

다시 256명이 사는 보통 밀도의 공간으로 돌아오자.

초기 감염자를 10배 빠르게 움직이는 슈퍼전파자로 설정했다. 

 

 

초기 감염자는 같은 시간에 더 많은 사람과 접촉한다.

[보통밀도+집단감염]과 [보통밀도+집단감염+슈퍼전파자]의 두 그래프를 비교해보자.

 

보통밀도, 집단감염
보통밀도, 집단감염, 슈퍼전파자

 

 

감염자 피크는 비슷한데 초기 확산 시기가 매우 빨라졌다. 단, 여기서는 두명이 끝까지 감염되지 않은 상태로 남았는데, 이런건 경우에 따라 달라질 수 있는 부분이다.

아마도 실제 세계에서는 슈퍼전파자의 등장 시기에 따라, 행동의 물리적 범위에 따라 확산 정도가 많이 달라질 것이라 생각해본다. 

 

 

 

확진자를 격리시키자

 

 

자 여기까지 대책없이 확산만 되고 있었다면 이제부터는 사태를 조금 수습해보자.

 

 

의료 체계가 정상적으로 작동할 것이라는 가정하에 확진자들은 격리하도록 했다.

격리수용은 처음부터 작동하는 것이 아니라 일정 시간이 흐른 뒤에 사태의 심각성을 깨달은 순간부터 작동하도록 했다. 상단 그래프에서는 위에 검은 수직선으로 해당 시점을 표현했다. 

이 시뮬레이션에서 확진자는 600이라는 시간동안 감염된 상태로 돌아다닌다. 격리는 그 절반인 300 이후에 이루어진다. 즉, 감염자들은 전체 감염 기간 중 절반은 타인과 접촉하고 절반은 격리수용되어 회복까지 아무도 접촉하지 않는다. 즉, 다른 감염자들과 충돌하지 않고 투명인간처럼 그 자리에 있도록 했다.

 

단, 격리수용 체계가 시작되는 시기, 즉 검은 수직선이 표시된 시기에는 그 때까지의 환자들이 일시에 격리수용되도록 했다.

 

역시 조건이 추가된 두 그래프를 비교해보자.

 

보통밀도, 집단감염, 슈퍼전파자
보통밀도, 집단감염, 슈퍼전파자, 확진자 격리

 

흠.... 안타깝게도 별 차이가 없다. 몇몇 사람들은 병에 걸리지 않은채로 남았지만 전체적인 곡선에 차이가 거의 없다.

 

 

 

확진자를 좀 더 빠르게 격리시키자

 

그럼 조건을 바꿔보자.

앞서 감염된 상태로 지내는 시간의 50%를 격리수용했다면, 이번에는 조금 더 빠르게 진단 후 확진자를 격리했다. 개별 감염자 기준으로 전체 감염기간 중 75%의 시간을 격리되도록 했다. (병에 걸린 줄 모르는 잠복기가 있으니 감염되지마자 격리하는 것은 불가능할 것이라 생각한다.)

 

 

이제 조금 차이가 보인다.

 

보통밀도, 집단감염, 슈퍼전파자, 확진자 격리
보통밀도, 집단감염, 슈퍼전파자, 확진자를 빠르게 격리

병에 걸리지 않은 사람들이 10%나 늘어났다.

그런데 이미 확진자를 격리하기 시작한 시점이 많이 늦은 것 같다. 전체의 80% 이상이 감염된 이후였기 때문에 이후의 감염은 많이 막아냈지만 이미 너무 많은 사람들이 병에 걸렸다.

 

 

 

 

감염병 확산을 조기에 판단해서 사회적 대응체계가 좀 더 신속하게 작동되도록 해보자

 

 

그러면 이번에는 상황 판단 시기를 좀 더 당겨보자.

빠르게 위기 상황을 탐지하여 확진자들의 격리 수용 시기를 전체적으로 앞당겼다고 가정했다.

 

 

 

보통밀도, 집단감염, 슈퍼전파자, 확진자를 빠르게 격리
보통밀도, 집단감염, 슈퍼전파자, 확진자를 빠르게 격리, 신속한 사회적 대응

역시 초기 대응이 빠를 수록 상황이 많이 좋아지는 것 같다. 전체 감염자 수도 많이 줄였고, 곡선의 기울기도 낮출 수 있었다. 그럼에도 불구하고 확진자 격리라는 사회적 대응이 작동된 이후로도 감염자들의 확산을 효과적으로 막아내는데는 부족한 듯 보인다.

 

 

 

보통 사람들의 참여 - 10% 시간동안 물리적 거리두기

 

그렇다면 이번에는 사람들의 참여가 필요한 시기다.

Social Distancing이라고 부르는데, '사회적 거리두기'라는 표현이 약간 섭섭한 측면이 있어 '물리적 거리두기'라고 표현해보겠다.

 

 

자발적으로 거리두기를 한 사람들은 확진자와 마찬가지로 흰색 원을 두른 채 그 자리에 머무른다. 워싱턴포스트 설정과 다른 점이 있는데, 거리두기를 한 사람들은 움직이는 감염자들과 충돌하지 않는다. 다른 움직이는 사람들은 거리두기를 한 사람이나 격리수용된 사람들을 마치 없는 것처럼 지나치게 된다.

(사실 이 부분이 워싱턴포스트 시뮬레이션에서 약간 아쉬운 부분이었는데, 그 자리에 멈춘 사람들이 움직이는 개체들을 방해하기도 하고, 거리두기를 하고 있음에도 불구하고 날아와서 충돌하는 감염자들에게는 속수무책으로 감염되도록 해 놓았다)

 

각각의 사람들은 자신의 활동 중 10%는 거리두기를 하고 90%는 기존과 같이 생활한다. 그래서 개체들은 정지와 이동을 반복한다.

 

보통밀도, 집단감염, 슈퍼전파자, 확진자를 빠르게 격리, 신속한 사회적 대응
보통밀도, 집단감염, 슈퍼전파자, 확진자를 빠르게 격리, 신속한 사회적 대응, 물리적 거리두기 10%

 

그런데! 

약간 의외의 결과가 나왔다. 곡선의 기울기를 낮추는데에는 효과적이었는데, 감염자들의 존속 기간이 길어지는 동시에 6%나 많은 사람들이 더 감염이 되었다.

시뮬레이션 설정이 부족해서 그럴 수도 있고, 더 많은 경우를 돌려본 후 평균적으로 봐야 하는데 이번에는 극단의 값이 나왔을 수도 있다. 일단 다음으로 진행해보자.

 

 

50% 시간동안 물리적 거리두기

 

그래서 10% 거리두기가 약간 애매한 수치인 듯 싶어 총 활동 시간의 50%를 멈추는 시간으로 설정했다.

(영상에는 30%라고 표시되어 있는데, 다시 보니 50%가 맞다. 잘못표기되었다)

 

 

이번에는 조금 나아졌다.

 

보통밀도, 집단감염, 슈퍼전파자, 확진자를 빠르게 격리, 신속한 사회적 대응
보통밀도, 집단감염, 슈퍼전파자, 확진자를 빠르게 격리, 신속한 사회적 대응, 물리적 거리두기 10%
보통밀도, 집단감염, 슈퍼전파자, 확진자를 빠르게 격리, 신속한 사회적 대응, 물리적 거리두기 50%

바이러스가 사회에 머무르는 시간은 길어졌지만 감염 속도와 전체 감염자 수를 64%로 낮추는데 효과적이었다.

"어느 정도 이상이 참여하여 거리두기를 해야 실제로 효과적인지"는 좀 더 전문가들의 연구가 필요할 것 같다.

 

그래도 뭔가 좀 아쉽다.

감염자들이 끝까지 잘 사라지지 않는데, 영상을 보면 밀집 장소 안에서 버티고 있는 것을 볼 수 있다

시뮬레이션 조건에 밀집 장소 안에서는 약간 특수한 조건을 주었다. 빠르게 이동하여 같은 시간 안에 많은 사람들이 접촉한다는 점 이외에, 격리수용 후에도 잘 회복되지 않는다는 부분이 들어가 있다. 그래서 해당 공간 안에서 나오지 않고 있는 사람들로 인해 감염자 숫자가 줄지 않는다.

(사실 이건 조건 수식을 잘못 짠 일종의 버그같은 것도 포함되어 있는데 그럭저럭 현실과 유사한 부분이 있어 수정하지 않고 그대로 두었다)

 

 

 

 

밀집 공간에 모이지 않는다면

 

그럼 마지막으로 조건을 하나 추가해보자.

 

앞에서는 사회적 대응이 발표된 이후로 두 가지 대응이 작동했다.

확진자의 빠른 격리 수용, 그리고 사람들이 50%의 활동 시간을 멈추기였다.

이번에는 밀집 공간, 즉 집회 장소가 사라진다. 모든 직장을 폐쇄할 수는 없으므로 현실에서는 가능하지 않다. 그래도 종교나 유흥시설 같은 회합 공간은 잠시 멈출 수 있지 않을까?

 

 

 

 

보통밀도, 집단감염, 슈퍼전파자, 확진자를 빠르게 격리, 신속한 사회적 대응, 물리적 거리두기 50%
보통밀도, 집단감염, 슈퍼전파자, 확진자를 빠르게 격리, 신속한 사회적 대응, 물리적 거리두기 50%,  회합 자제

 

검은 수직선이 표현된 이후로 모든 사람들이 감염병을 막기 위해 노력한다.

병이 전파되는 정도는 눈에 띄게 줄어들고, 확진자들이 모두 회복되는 순간 깔끔하게 종식된다.

 

 

결국, 어느 일부의 노력으로는 아무리 잘 해도 도달할 수 없는 지점들이 있는 것 같다.

제도적으로, 개인적으로, 집단적으로,

할 수 있는 모든 것들을 하면서 한마음으로 노력한다면 마스크를 벗는 날이 하루라도 빨리 올 수 있을 것이라 생각해본다.

 

대표