อุบัติการณ์ ความชุก และตัวหารที่ถูกต้อง: ระบาดวิทยาเบื้องหลังต้นทุนความเจ็บป่วยและแบบจำลองมาร์คอฟ

On this page
อ่านฉบับภาษาอังกฤษ (English version)
บทคัดย่อ
สำนักงานสาธารณสุขจังหวัดแห่งหนึ่งมีโรคเรื้อรังหนึ่งโรคและมีคำถามสามข้อ ค่าดูแลปีนี้จะเป็นเท่าใด โครงการที่ลดผู้ป่วยใหม่ลงครึ่งหนึ่งมีมูลค่าเท่าใด และแบบจำลองเพื่อการวางแผนควรใช้โอกาสเกิดภาวะแทรกซ้อนรายปีเท่าใด ทุกคำตอบต้องใช้การนับที่มีตัวหารถูกต้อง คือใครมีโอกาสเกิดเหตุการณ์ และติดตามคนเหล่านั้นนานเท่าใด บทความนี้ติดตามจังหวัดสมมติที่มีประชากร 1,000,000 คน ซึ่งในเวลาติดตามรวม 1,000 คน-ปีของผู้ที่ยังไม่เป็นโรค มีผู้ป่วยใหม่เกิดขึ้น 2 คน และผู้ป่วยแต่ละคนป่วยอยู่ 5 ปี บทความแสดงว่าทำไมผู้ป่วยใหม่ปีละ 1,980 คนจึงทำให้มีผู้ป่วยอยู่ 9,901 คน และทำไมการสำรวจผู้ป่วยในวันนี้จึงพบผู้ที่ป่วยนานมากเกินจริง จากนั้นจังหวัดได้บิลสองใบ คือค่าดูแลปีนี้ 198.0 ล้านบาท และ 181.4 ล้านบาทในมูลค่าวันนี้สำหรับผู้ที่เริ่มป่วยในปีนี้ สุดท้าย ความเสี่ยงห้าปี 30% แปลงเป็นโอกาสรายปี 6.89% ไม่ใช่ 6.00%
จังหวัดเดียว สามคำถาม
สำนักงานสาธารณสุขจังหวัดแห่งหนึ่งวางแผนการดูแลโรคเรื้อรังหนึ่งโรคในจังหวัดที่มีประชากร 1,000,000 คน ทะเบียนของจังหวัดแสดงว่า เมื่อติดตามผู้ที่ยังไม่เป็นโรค 1,000 คนเป็นเวลาหนึ่งปี จะมีผู้ป่วยใหม่ประมาณ 2 คน ผู้ป่วยแต่ละคนป่วยอยู่เฉลี่ย 5 ปี แล้วจึงหายหรือเสียชีวิต และค่าดูแลต่อผู้ป่วยหนึ่งคนคือปีละ 20,000 บาท
เดือนนี้มีคำถามสามข้อมาถึงโต๊ะเดียวกัน ฝ่ายการเงินถามว่าค่าดูแลโรคนี้ในปีนี้จะเป็นเท่าใด ฝ่ายป้องกันโรคถามว่าถ้ามีโครงการที่ลดผู้ป่วยใหม่ลงครึ่งหนึ่ง จะเลี่ยงค่าดูแลในอนาคตได้เท่าใด ส่วนนักวิเคราะห์ฝ่ายวางแผนมีความเสี่ยงเกิดภาวะแทรกซ้อนในห้าปี 30% จากงานวิจัยที่ตีพิมพ์ และต้องการโอกาสรายปี
ทั้งสามคำถามเป็นเรื่องของโรคเดียวกันและคนกลุ่มเดียวกัน แต่แต่ละคำถามต้องใช้การนับต่างกัน ทางลัดที่พบบ่อยคือหยิบ "จำนวนผู้ป่วย" จากทะเบียนมาคูณกับราคา โดยไม่ถามว่านับใคร และนับในช่วงเวลาใด บทความนี้ตอบคำถามนั้น ด้วยตัวเลขสมมติเพื่อการสอน ไม่ใช่ข้อมูลจริงของไทย
นับใคร และนับนานเท่าใด
อ่านก่อนในเว็บไซต์นี้ บทความภาษาอังกฤษสามเรื่องนี้สอนตัววัดเหล่านี้อย่างครบถ้วน หัวข้อนี้เก็บไว้เฉพาะส่วนที่บิลของจังหวัดและแบบจำลองเพื่อการวางแผนต้องใช้
- ทำความเข้าใจความเสี่ยงในระบาดวิทยาคลินิก: อุบัติการณ์ ความชุก และตัววัดเชิงเปรียบเทียบ
- ตัววัดแบบอัตราในงานวิจัยทางคลินิก: อุบัติการณ์สะสมเทียบกับอัตราอุบัติการณ์
- อัตราอุบัติการณ์และอัตราส่วนอัตราอุบัติการณ์: การวิเคราะห์อัตราในระบาดวิทยาคลินิก
เริ่มจากการนับแบบง่ายที่สุด ติดตามผู้ที่ยังไม่เป็นโรค 1,000 คนเป็นเวลาหนึ่งปีเต็ม จะมีประมาณ 2 คนที่ป่วย สัดส่วนของคนในกลุ่มที่เกิดโรคภายในช่วงเวลาที่ระบุ เรียกว่าความเสี่ยง (risk) ในที่นี้คือ 2 ใน 1,000 ในหนึ่งปี ถ้าไม่มีคำว่า "ในหนึ่งปี" ตัวเลขความเสี่ยงก็ไม่มีความหมาย
ทะเบียนจริงไม่เรียบร้อยขนาดนั้น บางคนย้ายออก บางคนเสียชีวิต และคนที่ป่วยแล้วก็ไม่สามารถป่วยเป็นครั้งแรกได้อีก เราจึงรวมเวลาที่แต่ละคนถูกติดตามขณะที่ยังไม่เป็นโรค ผลรวมนี้เรียกว่าเวลาติดตามรวม (person-time) อัตราอุบัติการณ์ (incidence rate) คือจำนวนผู้ป่วยใหม่หารด้วยเวลาติดตามรวมนั้น ในที่นี้เท่ากับผู้ป่วยใหม่ 2 คนต่อ 1,000 คน-ปี
อัตราคือความเร็วในกลุ่มคนที่ยังป่วยได้ ไม่ใช่สัดส่วนของคน จึงไม่เรียกอัตราว่าความเสี่ยง เมื่อเปรียบเทียบสองกลุ่ม ตัววัดทั้งสองก็ยังคงชื่อเดิม ความเสี่ยงของกลุ่มหนึ่งหารด้วยความเสี่ยงของอีกกลุ่มคืออัตราส่วนความเสี่ยง (risk ratio) ส่วนอัตราของกลุ่มหนึ่งหารด้วยอัตราของอีกกลุ่มคืออัตราส่วนอัตราอุบัติการณ์ (incidence rate ratio) บทความถัดไปคำนวณทั้งสองค่าจากกลุ่มคนเดียวกัน และแสดงว่าทำไมจึงต่างกัน ในบทความ รูปแบบการศึกษา แบบจำลองทางสถิติ และเป้าหมายการประมาณค่า: แต่ละรูปแบบการศึกษาประมาณค่าอะไรได้จริง
ทะเบียนยังมีรายชื่อทุกคนที่กำลังป่วยด้วยโรคนี้ในวันนี้ คือ 9,901 คน เมื่อหารด้วยทุกคนที่มีชีวิตอยู่วันนี้ 1,000,000 คน ได้ 0.99% สัดส่วนนี้เรียกว่าความชุก (prevalence) [1] ในนั้นมีทั้งคนที่เริ่มป่วยปีนี้และคนที่เริ่มป่วยเมื่อสี่ปีก่อน ความชุกจึงเป็นภาพถ่าย ณ ขณะหนึ่ง ไม่ใช่ความเร็ว
ทำไมผู้ป่วยใหม่ปีละ 1,980 คนจึงทำให้มีผู้ป่วยอยู่ 9,901 คน
ลองนึกถึงผู้ป่วย 9,901 คนเป็นน้ำในถัง ผู้ป่วยใหม่ไหลเข้าทางก๊อก ส่วนการหายและการเสียชีวิตระบายน้ำออก ระดับน้ำในถังผู้ป่วยจะคงที่เมื่อจำนวนคนที่ออกในแต่ละปีเท่ากับจำนวนที่เข้ามา
เข้ามากี่คน มีเพียง 990,099 คนที่ยังไม่เป็นโรคเท่านั้นที่ป่วยได้ ผู้ป่วยใหม่จึงเท่ากับ 990,099 คูณ 2 ต่อ 1,000 คือ 1,980 คนต่อปี ถ้าใช้ประชากรทั้ง 1,000,000 คนเป็นตัวหารจะได้ 2,000 คน ซึ่งนับผู้ป่วย 9,901 คนที่ป่วยอยู่แล้ว เหมือนว่าพวกเขาป่วยใหม่ได้อีก ความคลาดเคลื่อนนี้เล็กเพราะโรคนี้พบน้อย แต่สำหรับโรคที่พบบ่อย ความคลาดเคลื่อนจะเพิ่มขึ้นตามขนาดของถังผู้ป่วย
ออกไปกี่คน ผู้ป่วยแต่ละคนป่วยอยู่เฉลี่ย 5 ปี ถังผู้ป่วยจึงพร่องลงในอัตราราว 0.2 ต่อคน-ปีของผู้ป่วย ใกล้เคียงกับการที่ราว 1 ใน 5 ของถังผู้ป่วยออกไปในแต่ละปี คือ 9,901 หารด้วย 5 ได้ 1,980 คน เข้าเท่ากับออก ถังผู้ป่วยจึงคงที่ที่ 9,901 คน สมดุลนี้เรียกว่าภาวะคงตัว (steady state)
สมดุลเดียวกันนี้เขียนเป็นสูตรได้ ลองเทียบคนที่เป็นโรคกับคนที่ไม่เป็นโรค คือ 9,901 ต่อ 990,099 ซึ่งเป็นอัตราส่วน 1 ต่อ 100 เมื่อปัดเศษ อุบัติการณ์คูณระยะเวลาป่วยเฉลี่ยให้อัตราส่วนเดียวกัน คือ 2 ต่อ 1,000 คูณ 5 ปี ได้ 10 ต่อ 1,000 หรือ 1 ต่อ 100 เช่นกัน
เมื่อให้ $P$ คือความชุกในรูปสัดส่วน $I$ คืออุบัติการณ์ (incidence) และ $\bar D$ คือระยะเวลาป่วยเฉลี่ย ภาวะคงตัวเขียนได้ว่า $P/(1-P)=I\bar D$ [2] เมื่อโรคพบน้อย $1-P$ จะใกล้ 1 การใช้ $P\approx I\bar D$ จึงใกล้เคียงพอ
สูตรนี้มีคำเตือนสำหรับผู้วางแผน ถ้าการรักษาแบบใหม่ทำให้ผู้ป่วยมีชีวิตอยู่และยังป่วยอยู่นาน 10 ปีแทน 5 ปี อัตราผู้ป่วยใหม่เท่าเดิมจะเติมถังผู้ป่วยจนถึง 19,608 คน ความชุกที่สูงขึ้นจึงอาจหมายถึงการรอดชีวิตที่ดีขึ้น ไม่ใช่โรคที่มากขึ้น
คนที่เราพบในถังผู้ป่วย
ถังผู้ป่วยยังบิดภาพของคนที่เราพบในนั้นด้วย สมมติว่าผู้ป่วยใหม่แต่ละปีครึ่งหนึ่งป่วย 1 ปี และอีกครึ่งหนึ่งป่วย 9 ปี ซึ่งยังเฉลี่ย 5 ปีเท่าเดิม ผู้ที่ป่วยนานอยู่ในถังนานกว่า 9 เท่า ในผู้ป่วย 9,901 คนวันนี้ จึงมี 9 ใน 10 คนที่เป็นแบบป่วยนาน
ความเจ็บป่วยแบบสั้นจบเร็ว ไม่ว่าด้วยการหายหรือการเสียชีวิตเร็ว ผู้ป่วยกลุ่มนี้เป็นครึ่งหนึ่งของผู้ป่วยใหม่ทั้งหมด แต่เป็นเพียง 1 ใน 10 ของผู้ป่วยในถังวันนี้ การสำรวจผู้ป่วยปัจจุบันจึงเห็นความเจ็บป่วยที่ยาวและคงตัวเป็นส่วนใหญ่ และแทบไม่เห็นผู้ป่วยแบบสั้นกับค่าใช้จ่ายของพวกเขา [3] ปรากฏการณ์นี้เรียกว่าอคติจากความยาว (length bias) ถ้าต้องการรู้ต้นทุนของผู้ป่วยใหม่ ให้ติดตามผู้ป่วยตั้งแต่วินิจฉัย คือกลุ่มผู้ป่วยรายใหม่ (incident cohort) แทนการสุ่มคนที่บังเอิญป่วยอยู่ในวันนี้
# One province, illustrative inputs: who is in the pool, and why (short and long are years ill).
population <- 1000000; incidence <- 2 / 1000; duration <- 5; short <- 1; long <- 9
pool <- function(stay) population * incidence * stay / (1 + incidence * stay)
existing <- pool(duration); disease_free <- population - existing
cat("Living with the disease today:", round(existing), "\n")
cat("Prevalence (%):", formatC(100 * existing / population, format = "f", digits = 2), "\n")
cat("Free of the disease, so able to fall ill:", round(disease_free), "\n")
cat("New cases a year, disease-free x incidence:", round(disease_free * incidence), "\n")
cat("New cases a year if everyone is counted:", population * incidence, "\n")
cat("Rate of leaving the pool, 1 / duration (per patient-year):", 1 / duration, "\n")
cat("Leaving the pool a year, existing / duration:", round(existing / duration), "\n")
cat("Living with it if each stays 10 years:", round(pool(10)), "\n")
# half the new cases are ill for 1 year, half for 9 years: still 5 years on average
cat("Long illnesses in today's pool (%):", sprintf("%.2f", 100 * long / (short + long)), "\n")
Living with the disease today: 9901
Prevalence (%): 0.99
Free of the disease, so able to fall ill: 990099
New cases a year, disease-free x incidence: 1980
New cases a year if everyone is counted: 2000
Rate of leaving the pool, 1 / duration (per patient-year): 0.2
Leaving the pool a year, existing / duration: 1980
Living with it if each stays 10 years: 19608
Long illnesses in today's pool (%): 90.00
บิลสองใบของจังหวัดเดียวกัน
ทีนี้มาถึงเรื่องเงิน คำถามของฝ่ายการเงินเป็นเรื่องของปีปฏิทินนี้ และผู้ป่วยทุกคนในถังต้องได้รับการดูแลในปีนี้ ไม่ว่าจะเริ่มป่วยเมื่อใด คำตอบจึงคิดราคาของทั้งถัง คือผู้ป่วย 9,901 คน คนละ 20,000 บาท วิธีนี้เรียกว่าต้นทุนความเจ็บป่วยฐานความชุก (prevalence-based cost of illness) และเป็นตัวเลขที่ถูกต้องสำหรับงบประมาณหรือแผนบริการ
คำถามของฝ่ายป้องกันโรคต่างออกไป โครงการที่ทำให้คนหนึ่งไม่ป่วยในปีนี้ ช่วยประหยัดค่าดูแลที่คนนั้นจะต้องใช้ตลอด 5 ปีข้างหน้า จึงต้องใช้ต้นทุนในอนาคตของผู้ป่วยใหม่ 1,980 คนของปีนี้ รวมตลอดช่วงที่ป่วย วิธีนี้เรียกว่าต้นทุนความเจ็บป่วยฐานอุบัติการณ์ (incidence-based cost of illness) [4]
เงินที่ต้องจ่ายในอนาคตมีค่าน้อยกว่าเงินที่จ่ายวันนี้ การปรับลดค่าตามเวลา (discounting) คือการแปลงต้นทุนในอนาคตเป็นมูลค่าวันนี้ โดยหารด้วย 1 บวกอัตราการปรับลด สำหรับทุกปีที่ห่างออกไป ที่อัตรา 3% ต้นทุน 1,834 บาทที่ต้องจ่ายในปีที่ 3 มีค่าเท่ากับ 1,678 บาทในวันนี้ อ่านคำอธิบายฉบับเต็มได้ที่ ต้นทุนของใคร ณ ปีใด: มุมมองการวิเคราะห์ ต้นทุนค่าเสียโอกาส การปรับค่าเงินเฟ้อ และการปรับลดค่าตามเวลา
จังหวัดใช้อัตรา 3% เดียวกัน และสมมติว่าค่าดูแลของแต่ละปีจ่ายตอนสิ้นปีนั้น เงินที่ต้องจ่ายในอีก 1 ปี จึงมีค่าเท่ากับ 1 หารด้วย (1 + 3%) คือ 0.971 ของเงินที่จ่ายวันนี้ เงินที่ต้องจ่ายในอีก 2 ปีหารสองครั้ง ได้ 0.943 และลดลงไปเรื่อย ๆ จนถึง 0.863 ในปีที่ 5 ตัวเลขเหล่านี้เรียกว่าน้ำหนัก ตัวอย่างคำนวณด้านล่างใช้น้ำหนักชุดนี้
คำนวณทั้งสองคำถาม
ใช้ผู้ป่วยในถัง 9,901 คน ผู้ป่วยใหม่ปีละ 1,980 คน และน้ำหนักทั้งห้าค่าจากหัวข้อก่อนหน้า ปัดเศษเฉพาะขั้นสุดท้าย
-
บิลของปีนี้: ผู้ป่วยทุกคนในถัง คนละหนึ่งปีของการดูแล
\[ 9901\times 20000 \]
บิลเท่ากับ 198.0 ล้านบาท นี่คือคำตอบฐานความชุก
-
ค่าดูแลหนึ่งปีของผู้ป่วยใหม่ของปีนี้
\[ 1980\times 20000 \]
ผู้ป่วยใหม่ 1,980 คนต้องใช้ค่าดูแล 39.6 ล้านบาทในแต่ละปีที่ป่วย
-
รวมน้ำหนักทั้งห้าค่า
\[ 0.971+0.943+0.915+0.888+0.863=4.580 \]
รวมกันมีค่าเท่ากับค่าดูแล 4.580 ปีที่จ่ายวันนี้ ไม่ใช่ 5 ปี เพราะเงินที่จ่ายช้ากว่ามีค่าน้อยกว่า
-
อนาคตของผู้ป่วยใหม่ในมูลค่าวันนี้
\[ 1980\times 20000\times 4.580 \]
5 ปีของผู้ป่วยกลุ่มนี้มีต้นทุน 181.4 ล้านบาท ถ้าไม่ใช้น้ำหนักจะเท่ากับ 5 คูณ 39.6 คือ 198.0 ล้านบาท เท่ากับบิลของปีนี้พอดี
ผลลัพธ์: ถ้าโครงการลดผู้ป่วยใหม่ลงครึ่งหนึ่ง ผู้ป่วยใหม่ของแต่ละปีจะใช้ค่าดูแลน้อยลง 90.7 ล้านบาทตลอดช่วงที่ป่วย แต่บิลปีนี้ 198.0 ล้านบาทจะลดลงเพียงช้า ๆ เพราะผู้ป่วย 9,901 คนที่ป่วยอยู่แล้วยังต้องได้รับการดูแล และถังผู้ป่วยต้องใช้เวลาราว 5 ปีจึงจะลดลง
การจ่ายเท่ากันทุกปีตลอดการป่วย 5 ปีเป็นข้อสมมติเพื่อให้คำนวณง่าย ต้นทุนจริงมักสูงกว่าในปีแรก ค่าดูแลในอนาคตที่เลี่ยงได้ไม่ใช่เงินสดที่ประหยัดได้ในปีนี้ และต้องนับต้นทุนของโครงการแยกต่างหาก
# Two cost questions for the same province, illustrative inputs.
population <- 1000000; incidence <- 2 / 1000; duration <- 5; annual_cost <- 20000; discount <- 0.03
prevalence <- incidence * duration / (1 + incidence * duration)
new_cases <- population * (1 - prevalence) * incidence; yearly_care <- new_cases * annual_cost
weights <- (1 + discount)^-(1:duration); thb_m <- function(x) sprintf("%.1f", x / 1e6)
cat("This year's bill, all patients (THB m):", thb_m(population * prevalence * annual_cost), "\n")
cat("One year of care for this year's new cases (THB m):", thb_m(yearly_care), "\n")
cat("Their five years, not discounted (THB m):", thb_m(yearly_care * duration), "\n")
cat("1,834 THB due in year 3, worth today at 3% (THB):", round(1834 / (1 + discount)^3), "\n")
cat("Weight of each year's payment:", formatC(weights, format = "f", digits = 3), "\n")
cat("Sum of the weights:", formatC(sum(weights), format = "f", digits = 3), "\n")
cat("Their five years, discounted (THB m):", thb_m(yearly_care * sum(weights)), "\n")
cat("Avoided each year if new cases halve (THB m):", thb_m(yearly_care * sum(weights) / 2), "\n")
This year's bill, all patients (THB m): 198.0
One year of care for this year's new cases (THB m): 39.6
Their five years, not discounted (THB m): 198.0
1,834 THB due in year 3, worth today at 3% (THB): 1678
Weight of each year's payment: 0.971 0.943 0.915 0.888 0.863
Sum of the weights: 4.580
Their five years, discounted (THB m): 181.4
Avoided each year if new cases halve (THB m): 90.7
จากความเสี่ยงห้าปีสู่โอกาสรายปี
อ่านก่อนในเว็บไซต์นี้ บทความภาษาอังกฤษเรื่องนี้อธิบายอย่างครบถ้วนว่าอัตราการเกิดเหตุการณ์เฉลี่ยต่างจากอัตรา ณ แต่ละขณะอย่างไร ในที่นี้เราใช้เพียงขั้นตอนจากความเสี่ยงห้าปีสู่โอกาสรายปี
นักวิเคราะห์ฝ่ายวางแผนต้องการติดตามผู้ป่วยใหม่ 1,980 คนทีละปี แบบจำลองแบ่งคนเป็นสถานะสุขภาพไม่กี่สถานะ คือยังไม่เกิดภาวะแทรกซ้อน เกิดภาวะแทรกซ้อนแล้ว และเสียชีวิต แบบจำลองพาคนเดินหน้าเป็นช่วงละหนึ่งปีเท่า ๆ กัน แต่ละช่วงเรียกว่ารอบ (cycle) และในแต่ละรอบ คนส่วนหนึ่งของแต่ละสถานะจะย้ายไปสถานะถัดไป ตอนนี้ขอพักสถานะเสียชีวิตไว้ก่อน แล้วจะกลับมาพูดถึงในตอนท้าย
แบบจำลองจึงต้องใช้โอกาสรายปี งานวิจัยที่ตีพิมพ์ติดตามผู้ป่วยใหม่และพบว่า 30% เกิดภาวะแทรกซ้อนภายใน 5 ปี
งานวิจัยบางเรื่องรายงานเป็นออดส์ (odds) แทนความเสี่ยง ออดส์คือจำนวนคนที่เกิดเหตุการณ์หารด้วยจำนวนคนที่ไม่เกิด ผู้ที่เกิดภาวะแทรกซ้อน 30 คนกับผู้ที่ไม่เกิด 70 คน ให้ออดส์ 30 หารด้วย 70 คือ 0.429 ออดส์ไม่ใช่สัดส่วนของคน 0.429 จึงใช้เป็นโอกาสไม่ได้ ถ้าหารออดส์ด้วย 1 บวกออดส์ จะได้ความเสี่ยง 0.30 กลับมา
ทางลัดที่หลายคนใช้คือหารด้วยห้า ได้ปีละ 6.00% แต่เมื่อเดินทางลัดนี้ไปข้างหน้า จะพบว่ามันไม่ผ่านการตรวจของตัวเอง ในปีที่ 1 ผู้ป่วย 6.00% เกิดภาวะแทรกซ้อน ในปีที่ 2 ตัวเลข 6.00% ใช้กับคนที่ยังไม่เกิดภาวะแทรกซ้อนเท่านั้น ซึ่งเป็นกลุ่มที่เล็กลง และเป็นเช่นนี้ทุกปี ผ่านไป 5 ปีจะมีผู้เกิดภาวะแทรกซ้อนเพียง 26.61% ไม่ใช่ 30% ตามที่งานวิจัยรายงาน
วิธีแก้คือมองกลุ่มที่เล็กลงนี้ไว้ตลอด สมมติว่าในแต่ละปี ผู้ที่ยังไม่เกิดภาวะแทรกซ้อนคงสภาพไว้ได้ในสัดส่วนเท่าเดิม เมื่อผ่านไป 5 ปียังไม่เกิดภาวะแทรกซ้อน 70% สัดส่วนรายปีนั้นคูณกันห้าครั้งจึงต้องได้ 70% คำตอบคือ 70% ยกกำลัง 1/5 แปลว่าแต่ละปีมี 93.11% ที่ยังไม่เกิดภาวะแทรกซ้อน โอกาสรายปีจึงเท่ากับ 6.89%
เบื้องหลังโอกาสรายปีนี้คือความเร็ว ณ แต่ละขณะ ที่ผู้ป่วยซึ่งยังไม่เกิดภาวะแทรกซ้อนจะเกิดภาวะนั้น ในที่นี้ความเร็วนี้คงที่ ความเร็วนี้เรียกว่าฮาซาร์ด (hazard) คืออัตรา ณ แต่ละขณะในคนที่ยังไม่เกิดเหตุการณ์ ในที่นี้เท่ากับ $-\ln(1-0.30)/5=0.071$ ต่อปี [5] ฮาซาร์ดเป็นอัตราต่อคน-ปีเช่นเดียวกับอัตราอุบัติการณ์ ไม่ใช่สัดส่วนของคน ส่วนลอการิทึมทำหน้าที่เพียงถอดการคูณซ้ำรายปีออก เมื่อแปลงฮาซาร์ด $r$ ที่ยังไม่ปัดเศษกลับด้วย $1-e^{-r}$ จะได้ 6.89% เท่าเดิม (ค่า 0.071 ที่ปัดแล้วให้ผลไม่ตรง) และปีละ 6.89% เป็นเวลา 5 ปีจะให้ 30.00% กลับมาพอดี
ฮาซาร์ดมีประโยชน์เพราะรอบไม่จำเป็นต้องยาวหนึ่งปี เมื่อฮาซาร์ด $r$ คงที่และรอบยาว $t$ โอกาสต่อรอบคือ $p=1-e^{-rt}$ ให้ $r$ และ $t$ ใช้หน่วยเวลาเดียวกัน และใช้ค่าที่ยังไม่ปัดเศษในแบบจำลอง ในรอบแรกที่ยาวหนึ่งปี ผู้ป่วยใหม่ 136 คนจาก 1,980 คนจะย้ายเข้าสู่สถานะเกิดภาวะแทรกซ้อน
# A five-year risk turned into a one-year chance; constant speed, no death from other causes.
risk_5y <- 0.30; years <- 5; new_cases <- 1980
pct <- function(p) formatC(100 * p, format = "f", digits = 2)
shortcut <- risk_5y / years; odds <- risk_5y / (1 - risk_5y)
kept <- (1 - risk_5y)^(1 / years); hazard <- -log(1 - risk_5y) / years
cat("Odds of the complication by year 5:", formatC(odds, format = "f", digits = 3), "\n")
cat("Shortcut, risk divided by years (%):", pct(shortcut), "\n")
cat("Five-year risk the shortcut gives back (%):", pct(1 - (1 - shortcut)^years), "\n")
cat("Share kept free each year (%):", pct(kept), "\n")
cat("One-year chance (%):", pct(1 - kept), "\n")
cat("Hazard, the constant speed (per year):", formatC(hazard, format = "f", digits = 3), "\n")
cat("Five-year risk the one-year chance gives back (%):", pct(1 - kept^years), "\n")
cat("New patients with it after the first year:", round(new_cases * (1 - kept)), "\n")
Odds of the complication by year 5: 0.429
Shortcut, risk divided by years (%): 6.00
Five-year risk the shortcut gives back (%): 26.61
Share kept free each year (%): 93.11
One-year chance (%): 6.89
Hazard, the constant speed (per year): 0.071
Five-year risk the one-year chance gives back (%): 30.00
New patients with it after the first year: 136
ทำไมแบบจำลองต้องใช้การไหล ไม่ใช่ความชุก
แบบจำลองไม่ต้องใช้ความชุก แต่ต้องใช้การไหล ในที่นี้คือไหลเข้า 2 คนต่อ 1,000 คน-ปี และไหลออกราว 1 ใน 5 ทุกปี ความชุก 0.99% บอกได้เพียงว่าในวันแรกมีผู้ป่วยอยู่ในแต่ละสถานะกี่คน เมื่อแบบจำลองเริ่มจากประชากรในวันนี้ แทนที่จะเริ่มจากผู้ป่วยใหม่
ทีนี้กลับมาที่สถานะเสียชีวิต ตัวเลข 6.89% สมมติว่าไม่มีใครเสียชีวิตจากสาเหตุอื่นก่อน ผู้ป่วยที่เสียชีวิตจากโรคหลอดเลือดสมองในปีที่ 2 จะไม่มีวันเกิดภาวะแทรกซ้อนได้อีก การเสียชีวิตที่ตัดโอกาสเกิดเหตุการณ์แบบนี้เรียกว่าความเสี่ยงแข่งขัน (competing risk) ถ้านับผู้ป่วยเหล่านี้เหมือนแค่ออกจากการศึกษาไป และอาจยังเกิดภาวะแทรกซ้อนได้ ความเสี่ยงของภาวะแทรกซ้อนจะดูสูงกว่าความจริง [6] วิธีนับที่ถูกต้องอยู่ในบทความเรื่องความเสี่ยงแข่งขัน คือบทความ ทำไม 1 ลบ Kaplan-Meier จึงประเมินความเสี่ยงสูงเกินจริงเมื่อผู้ป่วยอาจเสียชีวิตไปก่อน
สามทางที่ตัวหารผิดพลาด
-
นับครั้งที่มารับบริการเป็นผู้ป่วยใหม่
ผู้ป่วยแต่ละคนใน 9,901 คนมีการเบิกจ่ายหลายครั้งต่อปี การนับครั้งที่เบิก หรือนับทุกคนที่มีการเบิก เป็นผู้ป่วยใหม่ ทำให้ตัวเลข 1,980 สูงเกินจริง และทำให้การป้องกันดูมีค่ามากกว่าที่เป็น
วิธีแก้: ในทะเบียนหรือข้อมูลการเบิกจ่ายของไทย ให้นับคน ไม่ใช่นับครั้ง และนับเป็นผู้ป่วยใหม่ก็ต่อเมื่อไม่เคยมีการเบิกจ่ายด้วยโรคนี้เลยในช่วงก่อนหน้า เช่น 2 ปี (ช่วงย้อนดู) จำนวนผู้ป่วยใหม่ยังไม่ใช่อัตรา ต้องหารด้วยเวลาติดตามรวมของคนที่มีโอกาสป่วย
-
ใช้ผู้ป่วยวันนี้แทนผู้ป่วยใหม่
ผู้ป่วย 9 ใน 10 คนในถังวันนี้เป็นแบบป่วยนาน ต้นทุนของพวกเขาจึงบอกได้น้อยมากเกี่ยวกับผู้ป่วยแบบสั้น ซึ่งเป็นครึ่งหนึ่งของผู้ป่วยใหม่ทั้งหมด
วิธีแก้: ใช้ต้นทุนผู้ป่วยใหม่จากผู้ป่วยที่ติดตามตั้งแต่วินิจฉัย
-
นับค่าดูแลในอนาคตที่เลี่ยงได้เป็นเงินสดปีนี้
การลดผู้ป่วยใหม่ลงครึ่งหนึ่งเลี่ยงค่าดูแลได้ 90.7 ล้านบาทตลอดช่วงป่วยของผู้ป่วยใหม่แต่ละปี แต่บิลปีนี้ 198.0 ล้านบาทลดลงเพียงช้า ๆ เพราะผู้ป่วย 9,901 คนที่ป่วยอยู่แล้วยังต้องได้รับการดูแล
วิธีแก้: คาดการณ์รายจ่ายทีละปี และบวกต้นทุนของโครงการเข้าไปด้วย
อภิธานศัพท์
- Risk (ความเสี่ยง)
- สัดส่วนของคนในกลุ่มที่เกิดเหตุการณ์ภายในช่วงเวลาที่ระบุ เช่น 2 ใน 1,000 ในหนึ่งปี
- Person-time (เวลาติดตามรวม)
- เวลาที่แต่ละคนถูกติดตามขณะที่ยังเกิดเหตุการณ์ได้ รวมกันทีละคน
- Incidence rate (อัตราอุบัติการณ์)
- จำนวนผู้ป่วยใหม่หารด้วยเวลาติดตามรวม เช่น 2 ต่อ 1,000 คน-ปี
- Incidence rate ratio (อัตราส่วนอัตราอุบัติการณ์)
- อัตราอุบัติการณ์ของกลุ่มหนึ่งหารด้วยของอีกกลุ่ม เป็นอัตราส่วนของความเร็ว และไม่รายงานเป็นอัตราส่วนความเสี่ยง
- Prevalence (ความชุก)
- ทุกคนที่กำลังป่วยอยู่ ณ ขณะหนึ่งหารด้วยทุกคนที่มีชีวิตในขณะนั้น เช่น 0.99%
- Steady state (ภาวะคงตัว)
- ถังผู้ป่วยที่ระดับคงที่ เพราะจำนวนคนที่ออกในแต่ละปีเท่ากับจำนวนที่เข้า
- Length bias (อคติจากความยาว)
- ความเจ็บป่วยที่ยาวมีสัดส่วนเกินจริงในผู้ป่วยวันนี้ เพราะอยู่ในถังผู้ป่วยนานกว่า
- Incident cohort (กลุ่มผู้ป่วยรายใหม่)
- ผู้ป่วยที่ติดตามตั้งแต่วินิจฉัย ความเจ็บป่วยแบบสั้นและแบบยาวจึงปรากฏในสัดส่วนที่แท้จริง
- Odds (ออดส์)
- จำนวนคนที่เกิดเหตุการณ์หารด้วยจำนวนคนที่ไม่เกิด เช่น 30 ต่อ 70 หรือ 0.429
- Cycle (รอบ)
- ช่วงเวลาคงที่ที่แบบจำลองใช้ย้ายคนระหว่างสถานะสุขภาพ ในที่นี้คือหนึ่งปี
- Hazard (ฮาซาร์ด)
- ความเร็ว ณ แต่ละขณะ ที่เหตุการณ์เกิดขึ้นในคนที่ยังไม่เกิดเหตุการณ์นั้น
- Competing risk (ความเสี่ยงแข่งขัน)
- เหตุการณ์ เช่น การเสียชีวิตจากสาเหตุอื่น ที่ทำให้เหตุการณ์ที่สนใจไม่มีโอกาสเกิด
เอกสารอ้างอิง
- Noordzij M, Dekker FW, Zoccali C, Jager KJ. Measures of disease frequency: prevalence and incidence. Nephron Clin Pract. 2010;115(1):c17-c20. doi:10.1159/000286345
- Alho JM. On prevalence, incidence, and duration in general stable populations. Biometrics. 1992;48(2):587-592. doi:10.2307/2532312
- Zelen M, Feinleib M. On the theory of screening for chronic diseases. Biometrika. 1969;56(3):601-614. doi:10.1093/biomet/56.3.601
- Tarricone R. Cost-of-illness analysis. What room in health economics? Health Policy. 2006;77(1):51-63. doi:10.1016/j.healthpol.2005.07.016
- Fleurence RL, Hollenbeak CS. Rates and probabilities in economic modelling: transformation, translation and appropriate application. Pharmacoeconomics. 2007;25(1):3-6. doi:10.2165/00019053-200725010-00002
- Putter H, Fiocco M, Geskus RB. Tutorial in biostatistics: competing risks and multi-state models. Stat Med. 2007;26(11):2389-2430. doi:10.1002/sim.2712
ลำดับการเรียนในชุดนี้
- คู่มือชุดบทความเศรษฐศาสตร์สุขภาพ: อ่านหลักฐานก่อนอ่านต้นทุน
- อุบัติการณ์ ความชุก และตัวหารที่ถูกต้อง: ระบาดวิทยาเบื้องหลังต้นทุนความเจ็บป่วยและแบบจำลองมาร์คอฟ (บทความนี้)
- รูปแบบการศึกษา แบบจำลองทางสถิติ และเป้าหมายการประมาณค่า: แต่ละรูปแบบการศึกษาประมาณค่าอะไรได้จริง
- อัตราส่วนความเสี่ยง อัตราส่วนออดส์ ผลต่างความเสี่ยง และจำนวนที่ต้องรักษา: ตารางสองคูณสองเดียว คำตอบสี่แบบ
- อัตราส่วนฮาซาร์ดไม่ใช่อัตราส่วนความเสี่ยง: ข้อสมมติความเป็นสัดส่วนของฮาซาร์ด เวลารอดชีพเฉลี่ยแบบจำกัดช่วง และข้อมูลนำเข้าแบบจำลอง
- ความบังเอิญ อคติ และปัจจัยกวน: เหตุใดความสัมพันธ์ที่พบจึงยังไม่ใช่ผลของการรักษา
- พ้นจากพีระมิดหลักฐาน: ระดับความเชื่อมั่นตามแนวทาง GRADE และการเลือกข้อมูลประสิทธิผลเข้าสู่แบบจำลองทางเศรษฐศาสตร์
- จากความไวสู่ต้นทุนต่อผู้ป่วยหนึ่งรายที่ตรวจพบ: ค่าทำนายผลบวก ความชุก และเศรษฐศาสตร์ของการคัดกรอง
- ต้นทุนของใคร ณ ปีใด: มุมมองการวิเคราะห์ ต้นทุนค่าเสียโอกาส การปรับค่าเงินเฟ้อ และการปรับลดค่าตามเวลา
- ปีสุขภาวะ ปีสุขภาวะที่สูญเสีย และค่าอรรถประโยชน์: เรากำลังวัดอะไรกันแน่
- อัตราส่วนต้นทุนประสิทธิผลส่วนเพิ่มและระนาบต้นทุนประสิทธิผล: ทางเลือกที่ด้อยกว่า ผลประโยชน์สุทธิ และเกณฑ์ 160,000 บาทต่อปีสุขภาวะ
- ต้นไม้การตัดสินใจ แบบจำลองมาร์คอฟ และการวิเคราะห์ความไวเชิงความน่าจะเป็น: แบบจำลองแปลงหลักฐานเป็นการตัดสินใจได้อย่างไร
- คุ้มค่าไม่ได้แปลว่าจ่ายไหว มีประสิทธิภาพไม่ได้แปลว่าเป็นธรรม: ผลกระทบด้านงบประมาณและความเป็นธรรมทางสุขภาพ
- การคัดเลือกพารามิเตอร์ บัญชีต้นทุนอ้างอิง และฐานข้อมูลค่าอรรถประโยชน์เมื่อข้อมูลในประเทศมีจำกัด
- การประเมินเทคโนโลยีสุขภาพระยะเริ่มต้น เพดานราคาที่คุ้มค่า และการตัดสินใจชุดสิทธิประโยชน์
- การสื่อสารหลักฐานเศรษฐศาสตร์สุขภาพ: จากผลลัพธ์แบบจำลองสู่ข้อเสนอแนะเชิงนโยบาย
ประเด็นสำคัญ
- อัตราอุบัติการณ์คือผู้ป่วยใหม่หารด้วยเวลาติดตามรวม 2 ต่อ 1,000 คน-ปี เป็นความเร็ว ไม่ใช่ความเสี่ยง
- ความชุกเกิดจากการไหลเข้าคูณระยะเวลาที่อยู่: ผู้ป่วยใหม่ปีละ 1,980 คนที่ป่วยคนละ 5 ปี ทำให้มีผู้ป่วยในถัง 9,901 คน
- บิลปีนี้คิดราคาของทั้งถัง 198.0 ล้านบาท ส่วนการป้องกันประเมินจากผู้ป่วยใหม่ 181.4 ล้านบาทในมูลค่าวันนี้
- ความเสี่ยงห้าปี 30% คือปีละ 6.89% ไม่ใช่ 6.00% เพราะในแต่ละปี มีเพียงคนที่ยังไม่เกิดภาวะแทรกซ้อนเท่านั้นที่เกิดภาวะนี้ได้
- แบบจำลองใช้การไหล เข้า 2 ต่อ 1,000 คน-ปี และออกราว 1 ใน 5 ต่อปี ความชุก 0.99% ใช้เพียงกำหนดจุดเริ่มต้น
อ่านต่อในวิกิ: รูปแบบการศึกษา แบบจำลองทางสถิติ และเป้าหมายการประมาณค่า: แต่ละรูปแบบการศึกษาประมาณค่าอะไรได้จริง · อัตราส่วนฮาซาร์ดไม่ใช่อัตราส่วนความเสี่ยง: ข้อสมมติความเป็นสัดส่วนของฮาซาร์ด เวลารอดชีพเฉลี่ยแบบจำกัดช่วง และข้อมูลนำเข้าแบบจำลอง · ต้นไม้การตัดสินใจ แบบจำลองมาร์คอฟ และการวิเคราะห์ความไวเชิงความน่าจะเป็น: แบบจำลองแปลงหลักฐานเป็นการตัดสินใจได้อย่างไร · คุ้มค่าไม่ได้แปลว่าจ่ายไหว มีประสิทธิภาพไม่ได้แปลว่าเป็นธรรม: ผลกระทบด้านงบประมาณและความเป็นธรรมทางสุขภาพ · Rate-Based Measures in Clinical Research: Cumulative Incidence vs Incidence Rate · ทำไม 1 ลบ Kaplan-Meier จึงประเมินความเสี่ยงสูงเกินจริงเมื่อผู้ป่วยอาจเสียชีวิตไปก่อน · Understanding Risk in Clinical Epidemiology: Incidence, Prevalence, and Comparative Measures · Incidence Rate [IR] and Incidence Rate Ratio [IRR]: Analysis of Rates in Clinical Epidemiology Using Stata · Incidence Rate vs Hazard: Understanding Average and Instantaneous Event Rates in Survival Analysis