forest plot: วิธีอ่านและรายงานผล meta-analysis
forest plot คือกราฟที่วางผลของแต่ละการศึกษา (สี่เหลี่ยมพร้อมช่วงเชื่อมั่น) และค่ารวม (เพชร) ไว้บนแกนเดียวกัน การอ่านให้ถูกต้องต้องดูเส้นไม่มีผล ขนาดสี่เหลี่ยม ความกว้างของเพชร และ prediction interval ไม่ใช่ดูแค่ว่าเพชรอยู่ข้างไหนของเส้น
forest plot คืออะไร และส่วนประกอบแต่ละส่วนบอกอะไร
Lewis และ Clarke (2001) อธิบายว่าแต่ละการศึกษาแสดงด้วยสี่เหลี่ยมที่จุดประมาณค่า (point estimate) เส้นแนวนอนที่ผ่านสี่เหลี่ยมคือช่วงเชื่อมั่น ซึ่งมักเป็น 95% และผลรวมของ meta-analysis อยู่ด้านล่างเป็นเพชร โดยกึ่งกลางเพชรคือค่าประมาณรวม และผลมีนัยสำคัญเมื่อเพชรอยู่พ้นเส้นไม่มีผล (line of no effect) Cochrane Handbook ข้อ 10.2.1 เสริมว่า พื้นที่ของสี่เหลี่ยมแสดงน้ำหนักที่การศึกษานั้นได้รับในการรวมผล และช่วงเชื่อมั่นแสดงช่วงของผลที่สอดคล้องกับข้อมูลของการศึกษานั้น
ภาพที่ 1 ใช้ข้อมูลจริงและใส่หมายเลขกำกับ 5 จุดที่ต้องอ่านทุกครั้ง ส่วนข้อมูลและโค้ดอยู่ในหัวข้อถัดไป

ข้อมูลขั้นต่ำที่ต้องมีก่อนวาดคือค่าประมาณของแต่ละการศึกษาและความแปรปรวนหรือช่วงเชื่อมั่นของมัน บนสเกลเดียวกันทั้งหมด หากมีเพียงตาราง 2×2 ของแต่ละการศึกษา ซอฟต์แวร์จะคำนวณ RR หรือ OR และความแปรปรวนให้ ข้อจำกัดที่ควรรู้คือ forest plot ไม่ได้แสดงความเสี่ยงจากผลที่ขาดหายไป (reporting bias) ซึ่ง PRISMA 2020 ข้อ 14 และ 21 กำหนดให้ประเมินและรายงานแยกต่างหาก และไม่ได้บอกว่าการศึกษาแต่ละงานมีอคติหรือไม่
ตัวอย่างจริง: 13 การทดลองวัคซีน BCG และโค้ด R ที่สร้างภาพ
ชุดข้อมูล dat.bcg ในแพ็กเกจ metafor ของ R มี 13 การศึกษาเกี่ยวกับประสิทธิผลของวัคซีน BCG ในการป้องกันวัณโรค ตารางข้อมูลเป็น 2×2 ของแต่ละการศึกษา เอกสารแพ็กเกจระบุที่มาจาก Colditz และคณะ (1994) ที่ตีพิมพ์ใน JAMA ข้อมูลชุดนี้ใช้สาธิตวิธีวิเคราะห์ ไม่ได้ใช้สรุปการใช้วัคซีนทางคลินิก ผู้เข้าร่วมรวม 357,347 คน ผู้ป่วยวัณโรครวม 2,575 ราย (รวมจากตาราง 2×2 ด้วย R) ขนาดผลคือ risk ratio (RR) คำนวณและวิเคราะห์ด้วยแพ็กเกจ metafor (Viechtbauer, 2010) ดังนี้
library(metafor) # เวอร์ชัน 5.0-1 ; ชุดข้อมูล dat.bcg (13 การทดลอง) ที่มา: Colditz et al. (1994) dat <- escalc(measure = "RR", ai = tpos, bi = tneg, ci = cpos, di = cneg, data = dat.bcg) # yi = ln(RR) ; vi = ความแปรปรวนของ ln(RR) ของแต่ละการศึกษา res <- rma(yi, vi, data = dat, method = "REML") # random-effects, ประมาณ tau^2 ด้วย REML res$tau2 # 0.3132 res$I2 # 92.22 (%) res$QE # 152.23 (df = 12, p < 0.0001) predict(res, transf = exp) # RR รวม 0.489 [0.344, 0.696] PI [0.155, 1.549] # คำนวณมือให้เห็นที่มาของตัวเลข w <- 1 / (dat$vi + res$tau2) # น้ำหนัก random-effects ของแต่ละการศึกษา mu <- sum(w * dat$yi) / sum(w) # -0.7145 (= ln 0.489) se <- sqrt(1 / sum(w)) # 0.1798 exp(mu + c(-1, 1) * 1.96 * se) # CI 95%: 0.344 0.696 exp(mu + c(-1, 1) * 1.96 * sqrt(res$tau2 + se^2)) # prediction interval 95%: 0.155 1.549 # วาดภาพมาตรฐานของแพ็กเกจ forest(res, atransf = exp, at = log(c(0.1, 0.25, 0.5, 1, 2)), xlab = "Risk ratio (สเกล log)")
ผลสรุป RR รวม 0.49 (95% CI 0.34–0.70) ด้วย random-effects (REML) τ² = 0.313, I² = 92.2% และ Q = 152.2 (df = 12, p < 0.0001) prediction interval 95% คือ 0.15–1.55 ตัวเลขเหล่านี้คือสิ่งที่ผู้อ่านต้องหาจาก forest plot ในหัวข้อต่อไป
อ่านทีละขั้น: เจ็ดจุดตรวจพร้อมตัวเลขจากภาพที่ 1
- หาเส้นไม่มีผลและทิศของแกน RR เส้นอยู่ที่ 1 ป้ายใต้แกนบอกว่าฝั่งซ้ายคือวัคซีนลดความเสี่ยงวัณโรค อ่านป้ายทุกครั้ง เพราะบางเรื่องค่าต่ำกว่าเส้นหมายถึงผลที่ไม่ดี
- นับทิศของผล 11 จาก 13 การศึกษามีจุดประมาณ RR น้อยกว่า 1
- ดูช่วงเชื่อมั่นเทียบเส้น มี 5 การศึกษาที่ช่วงเชื่อมั่นคร่อม 1 (Aronson 1948, Comstock & Webster 1969, Frimodt-Møller 1973, Comstock 1976 และ TPT Madras 1980) ส่วน Coetzee & Berjak 1968 อยู่ที่ขอบ (0.39–1.00) การที่ช่วงคร่อมเส้นหมายถึงข้อมูลของงานเดี่ยวไม่ตัดความเป็นไปได้ที่ผลเป็นศูนย์ ไม่ได้แปลว่าไม่มีผล
- ดูขนาดสี่เหลี่ยม ตัวใหญ่คือน้ำหนักมาก ในภาพคือ TPT Madras (10.2%) และ Stein & Aronson (10.1%) ส่วน Comstock & Webster ได้เพียง 3.8%
- ดูเพชร กึ่งกลางคือ RR รวม 0.49 ปลายซ้ายขวาคือ 0.34 และ 0.70 เพชรไม่แตะเส้น 1 ซึ่งหมายความว่าค่าเฉลี่ยของผลจริงต่างจาก 1 อย่างมีนัยสำคัญภายใต้โมเดลนี้
- ดูความกระจายของสี่เหลี่ยมเทียบกัน ถ้าสี่เหลี่ยมกระจายห่างกันจนช่วงเชื่อมั่นไม่ซ้อนกัน แสดงว่ามี heterogeneity ในภาพ ข้อมูล BCG ตั้งแต่ RR 0.20 ถึง 1.56 สอดคล้องกับ I² = 92.2%
- ดู prediction interval ช่วง 0.15–1.55 คร่อม 1 แม้เพชรจะไม่คร่อม แปลว่าในพื้นที่ใหม่ ผลจริงอาจเป็นประโยชน์มากหรือไม่มีประโยชน์เลยก็ได้
ลำดับนี้ตรงกับที่ PRISMA 2020 ข้อ 19 ขอให้แสดงค่าประมาณและความแม่นยำรายการศึกษา ควรใช้โครงสร้างตารางหรือกราฟ และข้อ 20b ที่ขอให้รายงานค่ารวม ช่วงเชื่อมั่น และตัวชี้วัด heterogeneity (Page et al., 2021)
อ่านผิดบ่อย: หกข้อที่ควรตรวจ
- อ่านเพชรอย่างเดียว เพชร RR 0.49 ฟังดูชัดเจน แต่ PI 0.15–1.55 บอกว่าผลในพื้นที่หนึ่ง ๆ ยังไม่แน่นอน ต้องอ่านเพชรร่วมกับ I² และ PI
- สรุปว่า “ไม่มีผล” จากช่วงเชื่อมั่นที่คร่อมเส้น ช่วงของ Aronson (1948) คือ 0.13–1.26 ซึ่งกว้างเพราะการศึกษาเล็ก ข้อมูลไม่พอที่จะตัดสิน ไม่ได้พิสูจน์ว่าไม่มีผล
- มองว่าสี่เหลี่ยมใหญ่คือหลักฐานที่ดีกว่าเสมอ ขนาดสะท้อนความแม่นยำทางสถิติเท่านั้น คุณภาพและอคติของการศึกษาต้องดูจากการประเมินความเสี่ยงของอคติแยกต่างหาก (Handbook ข้อ 10.1 เตือนว่าผลรวมอาจชวนให้เข้าใจผิดหากไม่ใส่ใจขั้นตอนก่อนหน้า)
- วาดแกน ratio เป็นเส้นตรง ทำให้ผล 0.5 กับ 2 ดูไม่สมมาตรทั้งที่เป็นขนาดเท่ากันคนละทิศ ใช้สเกล log เสมอ
- ไม่ระบุป้ายทิศ ผู้อ่านต้องรู้ว่าฝั่งใดคือฝั่งที่ดีกว่า โดยเฉพาะเมื่อผลลัพธ์เป็นเหตุการณ์ที่ไม่พึงประสงค์
- เปลี่ยนโมเดลหรือตัวประมาณหลังเห็นผล PRISMA 2020 ข้อ 24c ให้อธิบายการแก้ไขที่ต่างจากโปรโตคอล ถ้าการศึกษามีน้อย ตัวเลือก test = “knha” ของ metafor ให้ช่วงเชื่อมั่นที่ปรับแล้ว ในข้อมูลนี้ได้ 0.33–0.73 กว้างกว่าแบบปกติ (0.34–0.70) เล็กน้อย ควรกำหนดไว้ในโปรโตคอลล่วงหน้า
เส้นไม่มีผลอยู่ที่ใด: ratio กับ difference ต่างสเกลกัน
| ชนิดของผล | ตัวอย่าง | เส้นไม่มีผลอยู่ที่ | สเกลของแกน |
|---|---|---|---|
| ratio | risk ratio (RR), odds ratio (OR), hazard ratio (HR) | 1 | log (ค่า 0.5 กับ 2 อยู่ห่างจาก 1 เท่ากัน) |
| difference | mean difference, standardized mean difference, risk difference | 0 | เส้นตรง |
Handbook ข้อ 10.3.3 ระบุว่าผลแบบ ratio ต้องป้อนเป็นลอการิทึมธรรมชาติ และไม่ควรปะปนข้อมูลที่แปลงลอการิทึมกับที่ไม่แปลงในการวิเคราะห์เดียวกัน (ข้อ 10.5.3) ผลที่ตามมาคือ ในภาพที่ 1 ค่า 0.10, 0.25, 0.50, 1 และ 2 มีระยะห่างบนแกนไม่เท่ากันแบบเส้นตรง และเพชรอาจดูไม่สมมาตรเมื่อกลับเป็นสเกลเดิม ตัวเลขอย่างเช่น 0.49 [0.34, 0.70] ได้จาก exp ของค่าบนสเกล log ที่สมมาตร
Fixed-effect หรือ random-effects: น้ำหนักเปลี่ยนไปอย่างไร
Fixed-effect ใช้น้ำหนัก w = 1/v (ส่วนกลับของความแปรปรวน) ตามที่ Handbook ข้อ 10.3 อธิบาย ทำให้การศึกษาใหญ่ครอบงำผลรวม ส่วน random-effects เพิ่ม τ² เข้าไปในตัวส่วน w* = 1/(v + τ²) ซึ่ง Handbook ข้อ 10.10.4 ระบุว่าจะให้น้ำหนักแก่การศึกษาเล็กค่อนข้างมากขึ้น ในข้อมูล BCG ผลต่างเห็นชัด (คำนวณด้วย R)
| การศึกษา | RR | น้ำหนัก fixed (%) | น้ำหนัก random (%) |
|---|---|---|---|
| TPT Madras (1980) | 1.01 | 41.4 | 10.2 |
| Stein & Aronson (1953) | 0.46 | 23.8 | 10.1 |
| Comstock et al. (1974) | 0.71 | 13.2 | 9.9 |
| Hart & Sutherland (1977) | 0.24 | 8.2 | 9.7 |
| Rosenthal et al. (1960) | 0.26 | 0.4 | 4.4 |
| Comstock & Webster (1969) | 1.56 | 0.3 | 3.8 |
สามการศึกษาแรกได้น้ำหนัก fixed รวม 78.4% (41.4 + 23.8 + 13.2) ค่ารวมแบบ fixed-effect จึงเท่ากับ RR 0.65 (95% CI 0.60–0.70) ซึ่งถูกดึงไปตามสามงานใหญ่ที่มี RR ระหว่าง 0.46 ถึง 1.01 ขณะที่ random-effects ได้ 0.49 (0.34–0.70) ช่วงกว้างกว่ามากเพราะยอมรับว่าผลจริงต่างกันระหว่างการศึกษา Handbook ข้อ 10.10.3 ระบุว่า fixed-effect ไม่คำนึงถึง heterogeneity และข้อ 10.10.4.1 ว่าผล random-effects ตีความเป็น “ผลเฉลี่ย” ของการกระจายของผลจริง (Deeks et al.)
กฎปฏิบัติ ให้เลือกโมเดลและเขียนในโปรโตคอลล่วงหน้าตามสมมติฐานของคำถาม ไม่ใช่เลือกหลังเห็นกราฟ เมื่อ I² สูงขนาดนี้ ค่ารวมแบบ fixed-effect ไม่ตอบคำถามเดียวกับ random-effects และไม่ควรใช้เป็นข้อสรุปหลัก ควรรายงานทั้งสองแบบเป็นการวิเคราะห์ความไวถ้าผลต่างกันมาก
Heterogeneity, τ² และ prediction interval ใน forest plot
Q ทดสอบว่าผลต่างกันเกินความคลาดเคลื่อนจากการสุ่มหรือไม่ I² คือสัดส่วนของความแปรผันรวมที่มาจากความต่างระหว่างการศึกษา (Higgins et al., 2003) และ τ² คือขนาดของความต่างนั้นบนสเกลของผล ในข้อมูล BCG I² = 92.2% (95% CI 81.9–97.7) และ τ² = 0.313 (95% CI 0.120–1.112) Handbook ข้อ 10.10.2 ให้ช่วงอ้างอิงคร่าว ๆ เช่น 75–100% คือ heterogeneity มาก (considerable) แต่เตือนว่าเกณฑ์เหล่านี้อาจชวนให้เข้าใจผิด และความไม่แน่นอนของ I² มากเมื่อมีการศึกษาน้อย
prediction interval (PI) บอกช่วงที่ผลจริงของการศึกษาใหม่น่าจะอยู่ และ IntHout และคณะ (2016) เสนอให้รายงานเป็นประจำ สูตรที่ metafor ใช้เป็นค่าเริ่มต้นคือ exp(μ ± 1.96 × √(τ² + SE²)) ในข้อมูลนี้ √(0.3132 + 0.1798²) = 0.588 จึงได้ 0.155–1.549 (ถ้าใช้การแจกแจง t แทน z ช่วงจะกว้างขึ้น) IntHout และคณะตรวจ meta-analysis ของ Cochrane ปี 2009–2013 ที่ผลมีนัยสำคัญแบบ random-effects และ I² > 0 จำนวน 479 เรื่อง พบว่า 72.4% มี PI ที่บอกว่าผลอาจเป็นศูนย์หรือสวนทางกับค่าประมาณรวม ผลลัพธ์ BCG ของเราเป็นกรณีแบบนั้น อ่านตัวชี้วัดทั้งหมดอย่างละเอียดได้ใน Heterogeneity I² คืออะไร: อ่านค่า Q, tau² และ PI และเลือกรูปแบบการทบทวนก่อนถึงขั้นนี้ได้ใน systematic review กับ meta-analysis ต่างกันอย่างไร
รายงานผลและบริบทไทย: วิทยานิพนธ์และ HTA
ประโยคผลหนึ่งย่อหน้าควรมี ค่ารวมพร้อม CI จำนวนการศึกษา โมเดล ตัวชี้วัด heterogeneity และ PI ตัวอย่างด้านล่างเขียนจากข้อมูล BCG ที่คำนวณไว้ข้างต้น เพื่อสาธิตรูปแบบประโยค ไม่ใช่ข้อสรุปทางคลินิก
ตัวอย่างภาษาไทย
จาก 13 การศึกษา การรวมผลด้วยโมเดล random-effects (ประมาณ τ² ด้วย REML) ได้ risk ratio รวม 0.49 (95% CI 0.34–0.70) แสดงว่ากลุ่มได้รับวัคซีนมีความเสี่ยงเกิดวัณโรคต่ำกว่า พบ heterogeneity สูง (I² = 92.2%, τ² = 0.313, Q = 152.2, df = 12, p < 0.0001) และ prediction interval 95% คือ 0.15–1.55 ซึ่งคร่อมค่า 1 ดังนั้นผลในบริบทใหม่อาจแตกต่างจากค่ารวมอย่างมาก
English version
Across 13 studies, the random-effects pooled risk ratio (REML) was 0.49 (95% CI 0.34 to 0.70). Heterogeneity was substantial (I² = 92.2%, τ² = 0.313; Q = 152.2, df = 12, p < 0.0001), and the 95% prediction interval (0.15 to 1.55) included 1.
ในวิทยานิพนธ์ที่ใช้ meta-analysis ให้ใส่ forest plot ที่อ่านได้ในหน้าเดียว ระบุป้ายทิศของผล และระบุโปรแกรมกับเวอร์ชัน ซึ่งการใช้ R ไม่มีค่าลิขสิทธิ์ ดูการเลือกเครื่องมือได้ที่ SPSS vs R vs Python และการเขียนตัวเลขในส่วนผลได้ที่ Results Section ภาษาอังกฤษ
สรุป
รายการตรวจ forest plot ก่อนส่งงาน
- มีเส้นไม่มีผลที่ถูกค่า (1 สำหรับ ratio, 0 สำหรับ difference) และป้ายทิศของผล
- แกน ratio ใช้สเกล log และมีค่ากำกับที่อ่านได้
- ขนาดสี่เหลี่ยมสอดคล้องกับน้ำหนัก และมีคอลัมน์น้ำหนัก (%)
- ระบุโมเดล (fixed หรือ random) ตัวประมาณ τ² และโปรแกรมพร้อมเวอร์ชัน
- รายงาน I², τ², Q และ prediction interval ไม่ใช่เฉพาะค่า p ของค่ารวม
- ตีความเพชรร่วมกับ PI และไม่สรุปว่า “ไม่มีผล” จากช่วงเชื่อมั่นที่คร่อมเส้นของงานเดี่ยว
หากต้องการให้ผู้เชี่ยวชาญช่วยวางแผนและตรวจ meta-analysis ดูบริการ ทบทวนวรรณกรรมและ Systematic Review ของเรา หากต้องการสอบถามส่วนลดสำหรับนักศึกษาหรือนักวิจัยที่ไม่มีทุน หรือต้องการความชัดเจนเพิ่มเติม ติดต่อผ่าน แบบฟอร์มติดต่อ หรืออีเมล [email protected] บริการของเราดำเนินการตามแนวทาง ICMJE, COPE และ GPP3
เอกสารอ้างอิง
- Colditz, G. A., Brewer, T. F., Berkey, C. S., Wilson, M. E., Burdick, E., Fineberg, H. V., & Mosteller, F. (1994). Efficacy of BCG vaccine in the prevention of tuberculosis: meta-analysis of the published literature. JAMA, 271(9), 698–702. doi:10.1001/jama.1994.03510330076038 PMID: 8309034
- Higgins, J. P. T., Thompson, S. G., Deeks, J. J., & Altman, D. G. (2003). Measuring inconsistency in meta-analyses. BMJ, 327(7414), 557–560. doi:10.1136/bmj.327.7414.557 PMID: 12958120
- Higgins, J. P. T., Thomas, J., Chandler, J., Cumpston, M., Li, T., Page, M. J., et al. (Eds.). (2024). Cochrane Handbook for Systematic Reviews of Interventions (version 6.5), chapter 10: Analysing data and undertaking meta-analyses (Deeks, J. J., Higgins, J. P. T., Altman, D. G., McKenzie, J. E., & Veroniki, A. A., Eds.; last updated November 2024). Cochrane. https://www.cochrane.org/authors/handbooks-and-manuals/handbook/current/chapter-10
- IntHout, J., Ioannidis, J. P. A., Rovers, M. M., & Goeman, J. J. (2016). Plea for routinely presenting prediction intervals in meta-analysis. BMJ Open, 6(7), e010247. doi:10.1136/bmjopen-2015-010247 PMID: 27406637
- Lewis, S., & Clarke, M. (2001). Forest plots: trying to see the wood and the trees. BMJ, 322(7300), 1479–1480. doi:10.1136/bmj.322.7300.1479 PMID: 11408310
- Page, M. J., McKenzie, J. E., Bossuyt, P. M., Boutron, I., Hoffmann, T. C., Mulrow, C. D., et al. (2021). The PRISMA 2020 statement: an updated guideline for reporting systematic reviews. BMJ, 372, n71. doi:10.1136/bmj.n71 PMID: 33782057
- PRISMA. (2021). PRISMA 2020 checklist. https://www.prisma-statement.org/prisma-2020-checklist
- Viechtbauer, W. (2010). Conducting meta-analyses in R with the metafor package. Journal of Statistical Software, 36(3), 1–48. doi:10.18637/jss.v036.i03
มีคำถามหรือต้องการใบเสนอราคา?
ส่งข้อความสั้นๆ ถึงเรา ตอบกลับภายใน 24 ชั่วโมงในวันทำการ





