OpenModelica로 감염증의 수리 모델 「SIR 모델」을 구현한다(규제, 완화를 반복하는 예)

기본 SIR 모델에서 접촉률(감염률)을 주기적으로 변경



기사, 「 OpenModelica에서 감염의 수리 모델 "SIR 모델" 구현 (사망률, 재감염률을 반영) 」로 작성한 모델로 재감염율을 주기적으로 변화시켜, 규제 상태와 완화 상태를 반복하면 어떠한 그래프가 될지 시뮬레이션해 봅니다.

이 모델의 전제 조건
- 기본 SIR 모델로 하고, 사망률, 재감염률은 0으로 한다
- 백신은 사용하지 않음

덧붙여 이하의 시뮬레이션은 모두 임시의 파라미터로 모델의 검증을 한 것만으로, 실제의 수치를 반영·예상한 것이 아닌 것을 거절해 둡니다.

모델 변경



cl_SIRbetaInput 의 β값 입력에 TimeTable에서 15일마다 100%, 20%(80% 감소)를 반복하는 설정으로 합니다. 60일 이후에는 100%로 유지합니다.
β값의 변화를 그래프상에서 보기 쉽게 하기 위해 gain을 추가하여 100, 20으로 변환.

만든 모델





시뮬레이션 결과



감염가능자, 감염자, 신규 감염자, 회복자를 그래프로 보기





감염자, 신규 감염자 전용 그래프



감염자의 추이만 확대하고 확인합니다.
기본 SIR 모델에서 접촉률을 100%, 20%로 주기적으로 변화시키면 감염 초기에는 규제를 완화한 순간 신규 감염자 수가 증가하기 시작하고, 다시 규제하면 감소해 나가는 것이 확인 수 있습니다.
또, 시간이 경과해(그래프의 60일째 이후) 회복자(항체 획득자)가 50%를 넘을 정도로 늘어나면, 접촉율이 높아져도 신규 감염자수는 점감해 가는 것 같습니다.


완화시에도 접촉율을 50% 감소 정도로 관리했을 경우의 그래프



60일까지는 관리한 효과로 억제되고 있는 것처럼 보입니다.
그러나 거기에서 느슨해지면 신규 감염자가 급증합니다.
항체 획득자가 일정수에 못 미치는 사이에 완화하면 안되는 것 같습니다.


관련 기사



OpenModelica에서 감염의 수리 모델 "SIR 모델" 구현
OpenModelica에서 감염의 수리 모델 "SIR 모델" 구현 (백신의 효과보기)
OpenModelica에서 감염의 수리 모델 "SIR 모델" 구현 (사망률, 재감염률을 반영)
감염병의 수학 예측 모델의 소개(SIR 모델)

OpenModelica 모델



GitHub에 공개했습니다.
pk_SIRmodel.mo

좋은 웹페이지 즐겨찾기