SIR model คืออะไร? และใช้อธิบายการระบาดของโรคได้อย่างไร

New Naveen
data น่าฟาด
6 min readApr 27, 2020

บล็อกที่แล้ว เราเล่าไปแล้วว่าหากเราทำ curve fitting จากฟังก์ชันแบบตรงไปตรงมา เราอาจได้พารามิเตอร์ต่างๆ ที่ควบคุมลักษณะของเส้นโค้งเช่นการโค้งมากน้อย จุดสูงสุดอยู่ตรงไหน เติบโตเร็วแค่ไหน แต่ไม่สามารถเข้าใจธรรมชาติของโรคระบาดได้เลย ในบล็อกนี้จึงจะมาเล่าแบบจำลองอีกประเภทหนึ่งที่แบ่งประชากรออกเป็นกลุ่ม แล้วคิดว่าพารามิเตอร์ต่างๆ ที่กำหนดพฤติกรรมการระบาดของโรค เช่น อัตราการแพร่เชื้อ ระยะเวลาที่แสดงอาการ การเคลื่อนย้ายของประชากร ฯลฯ ว่าส่งผลต่อการเปลี่ยนแปลงของประชากรแต่ละกลุ่มอย่างไร

เราเรียกแบบจำลองประเภทนี้ว่า compartmental model และหนึ่งในโมเดลประเภทนี้ที่ใช้กันอย่างแพร่หลายคือ SIR model นั่นเอง

Compartmental model

ในบล็อกนี้ขอเล่าเฉพาะแบบจำลองที่ไม่ซับซ้อนมากนัก แบบจำลองลักษณะนี้จะแบ่งประชากรออกเป็นกลุ่มๆ และในแบบจำลองที่ซับซ้อนน้อยที่สุด เราจะกำหนดเงื่อนไขดังนี้
1. จำนวนประชากรในระบบที่เราพิจารณาจะคงที่เสมอ ประชากรไม่เกิด ไม่ตาย ไม่อพยพเคลื่อนย้ายไปไหน
2. ประชากรทุกคนมีโอกาสติดเชื้อเท่ากัน ไม่ว่าจะมีโปรไฟล์เป็นแบบไหน (เพศ อายุ สถานะทางสังคม เชื้อชาติ ฯลฯ ไม่ส่งผลต่อโอกาสติดเชื้อ)
3. ประชากรทุกคนมีปฏิสัมพันธ์กับคนรอบตัวแบบสุ่ม ด้วยโอกาสและความถี่เท่าๆกัน

SI model

วิธีแบ่งกลุ่มประชากรที่เรียบง่ายที่สุดคือ แบ่งเป็น 2 กลุ่มได้แก่ กลุ่มคนที่ติดเชื้อได้ (Susceptible:S) และกลุ่มคนที่ติดเชื้อแล้ว (Infectious: I)

เมื่อประชากรกลุ่ม S ติดเชื้อจะย้ายข้ามไปกลุ่ม I แต่พออยู่กลุ่ม I แล้วจะย้อนกลับมากลุ่ม S ไม่ได้ นั่นหมายความว่าประชากรกลุ่ม S จะลดลงหรือคงที่ และประชากรกลุ่ม I จะเพิ่มขึ้นหรือคงที่เท่านั้น

SI model จึงนำมาใช้กับโรคที่รักษาไม่หาย

การสร้างแบบจำลองลักษณะนี้ เราเริ่มต้นด้วยพิจารณาเป็นความเปลี่ยนแปลงต่อหนึ่งหน่วยเวลา (ในกรณีนี้ขอสมมติเป็นหน่วยวัน) เช่นสมมติว่าในเมืองหนึ่งมีประชากร 101 คน มีผู้ติดเชื้อ 1 คน และทำให้เกิดผู้ติดเชื้อ 20 คนต่อวัน

จากตารางนี้จะเห็นว่าเมื่อเวลาผ่านไป 5 วัน ประชากรฝั่ง S จะย้ายมาเป็นประชากรฝั่ง I ทั้งหมด อยากให้สังเกตด้วยว่าประชากรฝั่งที่ลดลงจาก S จะเท่ากับประชากรฝั่งที่เพิ่มขึ้นของ I (S ลดลง 20, I ก็จะเพิ่มขึ้น 20) เมื่ออัตราการเปลี่ยนแปลงเป็นตัวเลขคงที่ กราฟจำนวนสมาชิกของแต่ละกลุ่มก็จะเปลี่ยนแปลงแบบเส้นตรง

แต่อัตราการติดเชื้อไม่ได้เป็นตัวเลขคงที่แบบกราฟด้านบน แต่ขึ้นกับจำนวนประชากรของทั้ง S และ I

ถ้ากลุ่ม S มีเยอะ (คนที่ติดเชื้อได้มีมาก) เวลาติดเชื้อก็ติดได้หลายคน จำนวนผู้ติดเชื้อต่อวันยิ่งสูง

และถ้ากลุ่ม I มีเยอะ(คนติดเชื้อมาก) กลุ่ม S ยิ่งมีโอกาสเจอคนติดเชื้อบ่อย โอกาสติดเชื้อยิ่งสูง จำนวนผู้ติดเชื้อต่อวันยิ่งมากตามไปด้วย

เราอาจกล่าวได้ว่า จำนวนคนติดเชื้อต่อวันแปรผันตรงกับจำนวนประชากร S และ I ที่มีอยู่ ณ วันนั้น

ในความเป็นจริง เราไม่ได้คิดอัตราการเปลี่ยนแปลงเป็นรายวัน แต่จะคิดอัตราการเปลี่ยนแปลง ณ ขณะใดขณะหนึ่ง จากสมการด้านบน เราสามารถเขียนในรูปของสมการเชิงอนุพันธ์ได้ว่า

สังเกตว่าการเปลี่ยนแปลงของกลุ่ม S จะติดลบ (เพราะ S ลดลง) และการเปลี่ยนแปลงของกลุ่ม I จะเป็นบวก (เพราะ I เพิ่มขึ้น) ด้วยจำนวนเท่ากัน

β เป็นค่าคงที่บอกถึงอัตราการการแพร่เชื้อ (transmission rate) เป็นตัวกำหนดว่าประชากรจะติดเชื้อมากแค่ไหนเมื่อกลุ่ม S กับ I มาเจอกันจนเชื้อแพร่ได้ ขอยกตัวอย่างการหาค่า β ดังนี้

โดยปกติหากเรายังไม่ป่วยแล้วอาศัยอยู่ร่วมกับคนป่วยโดยไม่ป้องกันอะไร เราจะติดเชื้อแน่ๆ อยู่แล้ว แต่ละคนอาจมีระยะเวลาจนกว่าจะติดเชื้อแตกต่างกัน บางคน 1 วันก็ติดแล้ว บางคน อาจเป็น 2, 3 หรือ 10 วัน ฯลฯ เราจะเอาเวลาที่ทุกคนจะติดเชื้อมาหาค่าเฉลี่ย

หากเราหาค่าเฉลี่ยนี้ออกมาเป็น 5 วัน เราตีความได้ว่า
โดยเฉลี่ยแล้วในเวลา 5 วัน ผู้ป่วยเดิมจะทำให้มีผู้ป่วยใหม่เพิ่มขึ้น 1 คน
ดังนั้นใน 1 วัน จะมีผู้ป่วยใหม่เพิ่มขึ้นโดยเฉลี่ย 1/5 = 0.2 คน

ในกรณีนี้ เราจะให้ β = 0.2 ต่อวัน เราอาจกล่าวได้ว่า β เป็นค่าคาดหวัง (expected value) ว่าคนป่วยหนึ่งคน จะแพร่เชื้อให้กี่คนใน 1 วัน

ขอข้ามเรื่องวิธีการแก้สมการเชิงอนุพันธ์ไป จากสมการด้านบน หากเรารู้ว่าโดยเฉลี่ยแล้วผู้ป่วย 1 คนจะทำให้มีผู้ติดเชื้อรายใหม่ในเวลา 10 วัน ดังนั้นใน 1 วันจะมีคนติดเชื้อ 1/10 =0.1 คน นั่นคือ β = 0.1 นั่นเอง เราสามารถจำลองการติดเชื้อออกมาได้หน้าตาแบบนี้

ผลการแก้สมการ SI model จะได้ออกมาเป็นฟังก์ชัน sigmoid กรณีนี้กำหนดให้ β =0.1 ต่อวัน และ I กับ S แสดงออกมาในรูปของสัดส่วน (สูงสุดที่ 1 ) S0 = 0.99 I0 =0.01

เพื่อตัดปัญหาว่าประชากรในพื้นที่มีกี่คน เรามักแทน S และ I ในรูปสัดส่วนของประชากรทั้งหมด (เช่น ณ ขณะนี้ S=60% I=40% ของประชากรทั้งหมด) โดยที่ S+I =100% หรือ 1 เสมอ

กราฟนี้บอกกับเราว่าเริ่มแรก ประชากรประชากรกลุ่ม S (สีน้ำเงิน) มี 99% ของประชากรทั้งหมด แล้วลดลงเรื่อยๆ ส่วนประชากรกลุ่ม I จะเริ่มต้นจาก 1% ของประชากร แล้วค่อยๆ เติบโตแบบฟังก์ชัน sigmoid จนเข้าใกล้ 100% ประมาณวันที่ 100 หากเราปล่อยไว้ไม่ทำอะไรเลย เมื่อเวลาผ่านไปนานมากพอ ประชากรทุกคนจะติดเชื้อ (แต่ในชีวิตจริง เรามีมาตรการควบคุมโรค และการระบาดอาจเกิดขึ้นได้ยาก ดังนั้น ช่วงเวลาที่จะระบาดจนถึง 100% ของประชากร อาจนานเกินอายุขัยของคนไปแล้ว)

SIS model

แบบจำลองนี้คล้ายกับแบบจำลองก่อนหน้า แต่จะเพิ่มโอกาสในการรักษาหายกลับมาด้วย แบบจำลองนี้มักใช้กับโรคที่หายแล้วกลับมาเป็นซ้ำได้อีก เช่นโรคหวัด

เราจะเพิ่มอัตราการหายป่วย (γ) เข้ามา นั่นทำให้สมการเชิงอนุพันธ์ของเรามีอีกพจน์หนึ่งเพิ่มเข้ามาดังนี้

สมการนี้บอกเราว่ากลุ่ม S ไม่ได้ลดลงอย่างเดียว แต่เพิ่มขึ้นได้ จากประชากรกลุ่ม I ที่หายดีแล้ว ในขณะเดียวกันกลุ่ม I ก็ไม่ได้เพิ่มขึ้นอย่างเดียวแต่ลดลงด้วย เพราะผู้ป่วยหายจากโรค ส่วนจะหายป่วยมากน้อยแค่ไหนก็ขึ้นอยู่กับประชากร I ณ ขณะนั้น ถ้ามีผู้ป่วยมาก เวลาหายก็หายพร้อมกันหลายคน แต่ถ้ามีผู้ป่วยน้อย เวลาหายก็หายไม่กี่คน อัตราการหายป่วยควบคุมด้วยค่าคงที่ γ (อัตราการหายป่วย)

หากเรารู้ว่าโดยเฉลี่ยแล้ว คนจะติดหวัดกันใน 4 วัน เราจะได้ β =1/4 = 0.25 และโดยเฉลี่ยแล้วคนเราจะหายป่วยในเวลา 10 วัน ดังนั้นใน 1 วันจะหายป่วย 1/10 = 0.1 คน เราจะได้ γ = 0.1 เมื่อเราแก้สมการออกมาจะพบว่า หน้าตาเป็นแบบนี้

ผลการแก้สมการ SI model ยังคงได้ออกมาเป็นฟังก์ชัน sigmoid กรณีนี้กำหนดให้ β =0.25 ต่อวัน γ =0.1 ต่อวัน S0 = 0.99 I0 =0.01

กราฟนี้บอกกับเราว่า ประชากรกลุ่ม I จะเพิ่มขึ้นเรื่อยๆ ถึงจุดหนึ่งเท่านั้น (ไม่ถึง 100% แบบ SI model) และจะเข้าสู่จุดสมดุลที่ประมาณ 60% นั่นแสดงว่าเมื่อเวลาผ่านไปนานมากพอ จะมีคนป่วยอยู่ประมาณ 60% ของประชากรทั้งหมด

SIR model

แบบจำลองถัดมาจะเพิ่มกลุ่มคนที่หายดี (Recovered) เข้ามา กลุ่มคนที่หายดีแล้วจะมีภูมิคุ้มกันทำให้ไม่กลับมาเป็นโรคเดิมซ้ำอีก ซึ่งนำมาใช้กับโรคที่ร่างกายสร้างภูมิคุ้มกันได้เช่นอีสุกอีใส หรือ COVID-19 (แม้ว่าจะยังหาข้อสรุปไม่ได้แน่ชัดว่าป่วยเป็น COVID-19 แล้วจะกลับมาเป็นซ้ำได้หรือเปล่า แต่แบบจำลองส่วนใหญ่จะให้ COVID-19 ตกอยู่ในกรณีนี้)

เราจะใช้อัตราการหายป่วย (γ) ตัวเดิม แต่จะส่งประชากรกลุ่ม I ไปยังกลุ่มหายป่วยและมีภูมิต้านทาน (Recovered: R)

สมการเชิงอนุพันธ์ก็จะต่างจาก SIS ออกไปเล็กน้อย ตรงที่ประชากรกลุ่มที่หายแล้ว (γI) จะย้ายมาเข้ากลุ่ม R แทนที่จะกลับไปอยู่กลุ่ม S

หากเราใช้ β = 0.25 และ γ = 0.1 เหมือนกรณี SIS model จำนวนประชากรในแต่ละกลุ่มสามารถแสดงออกมาได้ดังกราฟนี้

จำนวนประชากรในแต่ละกลุ่มของ SIR model เมื่อกำหนดให้ β =0.25 ต่อวัน γ =0.1 ต่อวัน S0 = 0.99 I0 =0.01

กราฟนี้บอกกับเราว่าจำนวนผู้ติดเชื้อ (I) จะค่อยๆ เพิ่มขึ้นถึงจุดสูงสุดประมาณ 35% ของประชากร แล้วจะค่อยๆลดลง สุดท้ายแล้วประชากรกลุ่ม S จะค่อยๆ ติดเชื้อกลายเป็นกลุ่ม I และทุกคนจะกลายเป็นกลุ่มหายป่วย (R) เมื่อเวลาผ่านไปนานมากพอ

R₀ กับการระบาดของโรค
เราจะเห็นว่าปัจจัยที่กำหนดว่าโรคจะระบาดได้แค่ไหนถูกควบคุมด้วยค่าคงที่ β และ γ เราสามารถพิสูจน์ได้ว่า ถ้า β > γ แล้วจะทำให้เกิดโรคระบาด

ในช่วงเริ่มต้นของการระบาด หาก β > γ จำนวนผู้ป่วยจะเพิ่มเร็วกว่าคนที่หายป่วยทำให้เกิดโรคระบาด แต่ถ้า β < γ จำนวนคนที่หายป่วยจะเพิ่มเร็วกว่าจำนวนคนป่วยทำให้โรคไม่ระบาด

เราเรียกอัตราส่วนระหว่าง β และ γ ว่า R₀ หรือ basic reproduction number ที่เล่าไปเมื่อบล็อกที่แล้วนี่เอง (อ่านคำอธิบายเพิ่มเติมได้ที่ส่วน ของแถม ท้ายบล็อกข้อ 1)

ค่า R₀ บอกกับเราว่าโดยเฉลี่ยแล้วคนคนหนึ่งจะแพร่เชื้อให้คนรอบตัวได้กี่คน (ในสังคมที่ไม่มีใครมีภูมิคุ้มกันเลย) หาก R₀>1 จะทำให้เกิดโรคระบาด (อ่านบทพิสูจน์ได้ที่ส่วน ของแถม ท้ายบล็อกข้อ 2)

องค์การอนามัยโลกประเมินว่า R₀ ของ COVID-19 อยู่ที่ประมาณ 2–2.5 เป้าหมายของเราคือทำให้ R₀ ต่ำที่สุดเท่าที่จะเป็นไปได้ ซึ่งมาตรการต่างๆ เช่น การล้างมือบ่อยๆ ลดปฏิสัมพันธ์แบบใกล้ชิด สวมหน้ากากป้องกัน ก็จะช่วยลด R₀ ให้ต่ำลงได้

กราฟด้านล่างนี้ แสดงจำนวนสัดส่วนผู้ติดเชื้อที่ R₀ ต่างๆกัน

จำนวนประชากรกลุ่ม I จาก SIR model เมื่อกำหนดให้ γ =0.1 ต่อวัน S0 = 0.99 I0 =0.01 และค่า R₀=2.5, 2 และ 1.5

จะเห็นได้ว่า ยิ่ง R₀ น้อย จำนวนผู้ติดเชื้อจะยิ่งเพิ่มขึ้นช้า และจำนวนผู้ป่วยก็ไม่พุ่งสูงมาก ซึ่งสอดคล้องกับกระบวนการ Flatten the curve ซึ่งควบคุมไม่ให้มีผู้ป่วยเพิ่มเร็วเกินไป จนเกิดขีดความสามารถของระบบสาธารณสุข

การเปลี่ยนแปลงของจำนวนผู้ป่วย ยังสามารถถูกแทรกแซง (intervene) จากมาตรการควบคุมโรคหรือปัจจัยอื่นๆ ได้ ยกตัวอย่างเช่น หากรัฐบาลประกาศเคอร์ฟิว สามารถลดค่า R₀ จาก 2.5 เหลือ 1.5 ได้ (ตัวเลขสมมติ) จำนวนผู้ติดเชื้อในแต่ละวันจะเปลี่ยนไปดังนี้

กราฟสัดส่วนผู้ติดเชื้อ (I) เมื่อมีมาตรการควบคุมโรคในวันที่ 75 สามารถลดค่า R₀ จาก 2.5 (เส้นแดง) เหลือ 1.5 (เส้นน้ำเงิน) จะมีผู้ป่วยรายวันลดลง และมีจำนวนผู้ป่วยสูงสุดต่ำลงด้วย

ในทางกลับกัน หากมาตรการควบคุมโรคเราดีมากจนลดค่า R₀ ได้เหลือ 1.5 แต่พอกราฟผู้ป่วยเริ่มหักลงแล้วเราชะล่าใจ จนผ่อนปรนมาตรการควบคุมโรคต่างๆ จน R₀ เพิ่มขึ้นเป็น 2.5 (ตัวเลขสมมติ) จำนวนผู้ติดเชื้อในแต่ละวันจะเปลี่ยนไปดังนี้

กราฟสัดส่วนผู้ติดเชื้อ (I) เมื่อผ่อนปรนมาตรการควบคุมโรคในวันที่ 270 ค่า R₀ เพิ่มจาก 1.5 (เส้นประ) เป็น 2.5 (เส้นน้ำเงินทึบ) จำนวนผู้ติดเชื้อจะกลับมาเพิ่มขึ้นอีกครั้งและกลับมาระบาดรุนแรงกว่าเดิม

เพราะฉะนั้นเราไม่ควรชะล่าใจเมื่อเห็นจำนวนผู้ติดเชื้อน้อยลงจนดูเหมือนจะหมดไป เพราะเดิมทีมาตรการควบคุมโรคต่างๆ อาจกด R₀ ต่ำมาก หากเราปลดล็อคมาตรการต่างๆ แบบปุบปับ R₀ อาจพุ่งทะยานจนเกิดการระบาดที่รุนแรงกว่าเดิม

ในแบบจำลองที่ซับซ้อนเราสามารถใส่จุดแทรกแซงการระบาดได้หลายจุด ในแต่ละช่วงเวลา ทำให้แบบจำลองสมจริง สอดคล้องกับมาตรการต่างๆ ที่ออกมา

โมเดลสำหรับ COVID-19

COVID-19 เป็นโรคที่มีระยะฟักตัว (ติดเชื้อแต่ยังไม่แพร่เชื้อ) แบบจำลองที่นิยมใช้ จะเพิ่ม กลุ่ม E (Exposed) ก่อนเข้ากลุ่ม I กลายเป็น SEIR model แต่ระยะฟักตัวของ COVID-19 ยังเป็นที่ถกเถียงกันอยู่ว่ากินเวลานานแค่ไหน บ้างก็บอกว่ามีระยะฟักตัว บ้างก็บอกว่าพอเข้าระยะฟักตัวก็แพร่เชื้อได้ในบางกรณี สำหรับบล็อกนี้เราจะใช้แค่ SIR model ให้ดูเป็นตัวอย่าง นั่นแปลว่าเมื่อผู้ป่วยติดเชื้อ จะแพร่เชื้อได้ทันที

ขอยึด R₀ =2.5 ระยะแพร่เชื้อ =14 วัน (ตามจำนวนวันที่ต้องกักตัว) ดังนั้น γ = 1/14 = 0.071 และเราจะได ้ β =R₀ × γ =0.179 ถ้าให้ที่จุดเริ่มต้นมีผู้ป่วยแค่ 0.01% ของประชากร เราจะได้กราฟแสดงการเปลี่ยนแปลงของประชากรแต่ละกลุ่มเป็นดังนี้

จำนวนประชากรในแต่ละกลุ่มของ SIR model เมื่อกำหนดให้ β =0.179 ต่อวัน γ =0.071 ต่อวัน S0 = 1, I0 =0.0001 (เนื่องจาก I0 น้อยมาก เราจะให้ S0 ≈ 1)

นั่นหมายความว่าถ้าไม่มีการควบคุมโรคใดๆ การระบาดจะถึงจุดสูงสุดประมาณวันที่ 112 เมื่อมีผู้ติดเชื้อสะสม (กลุ่ม I + กลุ่ม R รวมกัน) เท่ากับ 0.2+0.4 = 0.6 หรือ 60% ของประชากรทั้งหมด จากนั้นจำนวนผู้ป่วยจะค่อยๆ ลดลง เราเรียกสภาวะนี้ว่า ประชากรมีภูมิคุ้มกันกลุ่ม (herd immunity) จะเกิดขึ้นเมื่อคนในสังคมมีภูมิต้านทานในสัดส่วน 1–1/R₀ ซึ่งในกรณีของ COVID-19 คือ 60% (อ่านบทพิสูจน์ได้ที่ส่วน ของแถม ท้ายบล็อกข้อ 3)

ฟิตเส้นโค้งกับข้อมูลจริง

วิธีหาค่า β, γ และ R₀ ของโรคระบาด ทำได้โดยสร้างแบบจำลองขึ้นมา (เช่น SI model, SIS model ฯลฯ) ด้วยสมการคณิตศาสตร์ แล้วหาพารามิเตอร์ที่ทำให้แบบจำลองฟิตกับข้อมูลจริงที่สุด

เราอาจนำ SIR model มาใช้กับข้อมูลผู้ติดเชื้อในประเทศไทยแบบตัวอย่างด้านล่างนี้ ซึ่งเป็นโมเดลที่เบสิกมาก จนละเลยธรรมชาติของโรคระบาดหลายประการ ทำให้พารามิเตอร์ β, γ ที่ประมาณออกมา ไม่สามารถเอาไปใช้อ้างอิงอะไรได้เลย วิธีการนี้ยังมีปัญหาเรื่องการกำหนดค่า N (จำนวนประชากรทั้งหมด) ว่าควรเป็นเท่าไหร่ดี จึงจะสอดคล้องกับเงื่อนไขของ SIR model

ผลการฟิตเส้นโค้ง I เข้ากับจำนวน active cases ระหว่างวันที่ 12 มกราคม — 20 เมษายน 2020 ด้วยวิธี maximum likelihood estimation โดยที่ I มีการแจกแจงแบบ poisson ได้ผลลัพธ์เป็น β = 0.204 , γ = 0.109, R₀ =1.863 (กำหนดให้ S0 = 10,000 I0 =1 และ R0=0)

ในชีวิตจริง R₀ ไม่ได้คงที่ตลอดเพราะมีมาตรการควบคุมโรค ประชากรในสังคมเดินทางตลอดเวลา มีพฤติกรรมแตกต่างกัน แต่ละช่วงอายุมีภูมิต้านทานไม่เท่ากัน และประชากรไม่ได้ติดต่อถึงกันหมด (คนบนเกาะห่างไกลย่อมเสี่ยงน้อยกว่าคนในเมือง)การประเมิน R₀ และพารามิเตอร์อื่นๆ ของโรคที่สมจริง จะสร้างแบบจำลองการระบาดที่ซับซ้อนกว่า SIR model ซึ่งจาก survey ฉบับนี้ ผู้เขียนประเมินว่า R₀ น่าจะมีค่าอยู่ระหว่าง 2–3 สอดคล้องกับที่องค์การอนามัยโลกประเมินไว้แต่แรก

สู่แบบจำลองที่ซับซ้อนยิ่งขึ้น

แบบจำลองที่เล่ามาทั้งหมดตั้งแต่ SI, SIS จนถึง SIR model เป็นแบบจำลองพื้นฐาน ที่ต่อยอดไปสู่แบบจำลองที่ซับซ้อนกว่านี้ เช่น เพิ่มกลุ่มที่ติดเชื้อแล้วแต่ยังอยู่ในระยะฟักตัว (SEIR) เพิ่มกลุ่มมีภูมิคุ้มกันโดยกำเนิด (MSEIR) แยกกลุ่มที่หายป่วยกับเสียชีวิตออกจากกัน แบ่งประชากรออกตามช่วงอายุ เพิ่มปัจจัยต่างๆ เช่นการเกิดหรือตายของประชากร การเคลื่อนย้ายประชากร มาตรการควบคุมโรค การใช้วัคซีน หรือจำลองการระบาดจากเครือข่าย (network) ของคนในสังคม หากใครอยากศึกษาเพิ่มเติมบทความนี้ยกตัวอย่างปัจจัยต่างๆ ที่ส่งผลต่อการระบาดได้ครอบคลุมระดับนึง และชี้ให้เห็นว่าโมเดลโรคระบาดซับซ้อนและท้าทายแค่ไหน

นอกจากนี้ยังมีเรายังต่อยอด compartmental model ไปใช้สร้างแบบจำลองการระบาดของซอมบี้ได้ด้วย

แบบจำลองการระบาดของซอมบี้ แบ่งเป็นกลุ่มคนเป็น (S) กลุ่มซอมบี้ (Z) และกลุ่มคนตายกับซอมบี้ที่ถูกฆ่า (R)

หวังว่าบล็อกนี้เป็นประโยชน์ในแง่ของการศึกษา สำหรับผู้สนใจหรือต้องการไปต่อยอด โค้ดทั้งหมดที่ใช้ในโปรเจ็กต์นี้อยู่ใน github และ colab สามารถเอามาศึกษาด้วยตัวเองได้เลย

สำหรับคนที่ไม่อยากเขียนโค้ด ขอเชิญชวนให้แวะไปชม Epidemic Calculator หน้าเว็บที่จำลองการระบาดด้วย SEIR model โดยสามารถปรับค่าพารามิเตอร์ต่างๆ แล้วดูผลจำลองการระบาดได้เลย นอกจากนี้ยังสามารถแทรกแซงการระบาดของโรคโดยเปลี่ยนค่า R₀ ระหว่างทางด้วย

ของแถม

เนื้อหาหลัก ในบล็อกหมดแล้ว ส่วนนี้เป็นของแถมปิดท้าย เผื่อใครสนใจเรื่องการหาข้อสรุปต่างๆ ที่อ้างอิงในบล็อกนี้ด้วยสมการคณิตศาสตร์ ใครไหวไปก่อนเลย…

1) ทำไม R₀ = β/γ
R₀ ระบุว่าโดยเฉลี่ยแล้วคนหนึ่งคนจะแพร่เชื้อให้คนรอบตัวกี่คนในสังคมที่ไม่มีภูมิคุ้มกันเลย

สมมติว่าเรามีโรคหวัดสายพันธ์ุใหม่ ที่คนป่วยมีโอกาสแพร่เชื้อให้คนสุขภาพดี 20% และในหนึ่งวัน คนคนหนึ่งมีปฏิสัมพันธ์กับคนรอบตัวโดยเฉลี่ย 5 คน เราจะคาดหวัง (expected) ได้ว่า ใน 1 วันจะมีผู้ป่วยใหม่ 20% ⋅ 5=1 คน และนี่คือ ค่า β นั่นเอง

β เป็นค่าคาดหวัง (expected value) ว่าคนป่วยหนึ่งคน จะแพร่เชื้อให้กี่คนใน 1 วัน
ดังนั้น ถ้าโดยเฉลี่ยแล้ว คนติดเชื้อจะป่วยและแพร่เชื้อนาน D วัน เราจะได้ว่า

สมมติว่า β=1 และ D = 14 วัน แปลว่าในหนึ่งวันคนป่วยจะแพร่เชื้อให้คนรอบตัว 1 คน และถ้าคนนี้ป่วยนาน 14 วัน จะแพร่เชื้อให้คนรอบตัว 1⋅14 = 14 คน จึงสรุปได้ว่า โรคนี้มี R₀=14 นั่นเอง

ถ้า D=14 แปลว่าผู้ติดเชื้อต้องป่วยอยู่ 14 วัน จึงจะหายป่วย เราอาจเปรียบเทียบการหายป่วยเหมือนกับเราเพิ่มขีดพลังจาก 0% ไปเต็มที่ 100% (โดยที่เมื่อขีดพลังเต็ม แปลว่าเราหายดีแล้ว) เราสามารถหาได้ว่าใน 1 วัน ขีดพลังนี้ฟื้นฟูขึ้นมาเท่าไหร่ โดยการเทียบบัญญัติไตรยางค์
ใน 14 วัน ขีดพลังจะฟื้นฟู 100%
ใน 1 วัน ขีดพลังจะฟื้นฟู 100%/14 =1/14
ซึ่ง 1/14 นี้คือค่า γ ซึ่งบอกถึงอัตราการหายป่วย เป็นค่าคาดหวัง (expected value) ว่าคนป่วยหนึ่งคน จะหายป่วยไปแล้วเป็นสัดส่วนเท่าไหร่ใน 1 วัน

เราอาจสรุปได้ว่า γ =1/D หรือจัดรูปใหม่เป็น D=1/γ นั่นเอง

จาก R₀=β ∙ D เราจะได้ว่า R₀=β/γ

2) การระบาดเกิดขึ้นเมื่อ R₀ > 1
การระบาดจะเกิดขึ้นเมื่ออัตราการเปลี่ยนแปลงของประชากรกลุ่ม I > 0

ที่จุดเริ่มต้นของการระบาด S จะมีค่าสูงมาก และมีสัดส่วนสูงเกือบ 100% ดังนั้น S ≈ 1 เราจะได้

ดังนั้นจะเกิดการระบาดเมื่อ β/γ > 1 หรือ R₀> 1 นั่นเอง

3) Herd immunity หรือภูมิคุ้มกันกลุ่มเกิดขึ้นเมื่อประชากรมีภูมิคุ้มกันอย่างน้อย 1–1/R₀
การระบาดจะถึงจุดสูงสุดเมื่อเมื่ออัตราการเปลี่ยนแปลงของประชากรกลุ่ม I = 0

ดังนั้นการระบาดจะถึงจุดสูงสุดเมื่อ S=1/R₀
เนื่องจาก S,I,R เขียนในรูปสัดส่วน นั่นคือ S+I+R =100%=1
นั่นคือ I+R = 1-S = 1–1/R₀

ดังนั้นการระบาดจะถึงจุดสูงสุดเมื่อประชากรติดเชื้อหรือมีภูมิคุ้มกันในสัดส่วน 1–1/R₀

ใครมีคำถามหรือความคิดเห็นอะไร มาพูดคุยกันได้ที่หน้า facebook fanpage ของ Data น่าฟาด นะครับ

--

--

New Naveen
data น่าฟาด

Data Scientist at Infinitas by Krungthai, Science Blogger, Marathoner and Hamster Lover