← All posts

ทำความเข้าใจกราฟ Bland–Altman: agreement, bias และเลือกใช้ percent หรือ absolute เมื่อไร

Clinical Epidemiology ResearchUniqcret doctor knowledgesMethodology and Research DesignDiagnosis [Methodology]
ทำความเข้าใจกราฟ Bland–Altman: agreement, bias และเลือกใช้ percent หรือ absolute เมื่อไร

กราฟ Bland–Altman (BA) ตอบคำถามที่ใช้งานได้จริงเพียงข้อเดียวคือ “วิธีวัดสองวิธีนี้ ใช้แทนกันได้ไหม?” มันคือเครื่องมือมาตรฐานของการศึกษาแบบ เปรียบเทียบวิธีวัด (method comparison / agreement) เช่น เครื่องใหม่เทียบเครื่องมาตรฐาน การตรวจข้างเตียงเทียบกับแล็บ หรือผู้วัดคนหนึ่งเทียบกับอีกคน บทความนี้จะค่อย ๆ ประกอบกราฟขึ้นมาใหม่ ให้เห็นว่ามัน คำนวณเป็นตัวเลข อะไรออกมาบ้าง (ไม่ใช่แค่ดูรูป) พร้อมตัวอย่างจริง และสอนให้คุณ อ่าน “รูปแบบ” ไม่กี่แบบที่บอกว่าอะไรผิดและต้องแก้อย่างไร

แนวคิดเดียวที่ต้องจำให้ขึ้นใจ

ค่าสหสัมพันธ์ (correlation, $r$) สูง ไม่ได้แปลว่า agreement ดี สองวิธีอาจ correlate กันเกือบสมบูรณ์ แต่ยังต่างกันมากจนอันตรายทางคลินิกได้ เพราะ correlation บอกแค่ว่าทั้งคู่ “ขยับไปด้วยกัน” ไหม ส่วน agreement บอกว่าให้ “ค่าเท่ากัน” ไหม — Bland–Altman สร้างมาเพื่อวัดอย่างหลัง

1) กายวิภาคของกราฟ Bland–Altman

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

  • แกน x — ค่าเฉลี่ยของสองวิธี $\frac{\text{ใหม่}+\text{มาตรฐาน}}{2}$ ใช้เป็นตัวแทนค่าจริงของคนนั้น (ปกติเราไม่รู้ค่าจริง จึงใช้ค่าเฉลี่ยแทน)
  • แกน y — ผลต่าง $\text{ใหม่}-\text{มาตรฐาน}$ คือความไม่ลงรอยของคนคนนั้น

จากนั้นลากเส้นแนวนอนสามเส้นจากผลต่างเหล่านี้:

  • bias (ผลต่างเฉลี่ย $\bar d$) — ช่องว่างเฉลี่ยระหว่างสองวิธี
  • ขอบบนและขอบล่าง — limits of agreement (LOA) $\bar d \pm 1.96\,s_d$ โดย $s_d$ คือ SD ของผลต่าง แถบที่แรเงาระหว่างสองเส้นนี้คือบริเวณที่ผลต่างรายบุคคลราว 95% จะตกอยู่
แต่ละจุดคือผู้ป่วยหนึ่งคนที่วัดด้วยทั้งสองวิธี เส้นทึบคือ bias (ในที่นี้ $+2.0$ mg/dL คือเครื่องใหม่อ่านสูงกว่าโดยเฉลี่ย $2$) เส้นประคือ limits of agreement แถบแรเงาครอบผลต่างราว 95% ทำไมต้อง $1.96$? เพราะถ้าผลต่างกระจายใกล้เคียง normal distribution ค่าราว 95% จะอยู่ในช่วง $\pm 1.96$ SD รอบค่าเฉลี่ย

2) Bland–Altman ให้ “ตัวเลข” ออกมา ไม่ใช่แค่ดูรูป

นี่คือจุดที่คนมองข้ามบ่อยที่สุด กราฟคือ ภาพ แต่การวิเคราะห์ให้ชุด ตัวเลขที่ต้องรายงาน ออกมาด้วย และตัวเลขเหล่านี้ต่างหาก — ไม่ใช่การกวาดตามองเมฆจุด — คือสิ่งที่เขียนลงเปเปอร์และใช้ตัดสิน

+2.0
Bias / ผลต่างเฉลี่ย (mg/dL) — โดยเฉลี่ยอ่านสูง/ต่ำไปเท่าไร
5.0
SD ของผลต่าง — ความต่างกระจายมากแค่ไหน
+11.8
ขอบบน upper LOA ($\bar d + 1.96\,s_d$)
−7.8
ขอบล่าง lower LOA ($\bar d - 1.96\,s_d$)
±95% CI
ช่วงความเชื่อมั่นของ bias และของขอบแต่ละเส้น — บอก precision ของค่าประมาณ
slope $b$
ตรวจ proportional bias: regress ผลต่างกับค่าเฉลี่ย (หัวข้อ 7)

ตัวอย่างจริง เทียบเครื่องวัดน้ำตาลใหม่กับแล็บใน $N$ คู่การวัด ผลที่ได้คือ:

Bias $\bar d = +2.0$ mg/dL, SD ของผลต่าง $s_d = 5.0$ mg/dL ดังนั้น limits of agreement $= 2.0 \pm 1.96 \times 5.0 = $ −7.8 ถึง +11.8 mg/dL

แปลเป็นภาษาคน: โดยเฉลี่ย เครื่องใหม่อ่านสูงกว่าแล็บ $2$ mg/dL แต่ใน ผู้ป่วยรายคน ความต่างจริง ๆ อาจแกว่งตั้งแต่ราว $8$ ต่ำกว่า ถึง $12$ สูงกว่าแล็บ — bias บอกแนวโน้มเป็นระบบ ส่วน LOA บอกว่าค่ารายคนเหวี่ยงได้ไกลแค่ไหน ทั้งคู่ออกมาจากข้อมูลโดยตรง ส่วนกราฟแค่ช่วยให้เห็นว่า เชื่อสองตัวเลขนี้แล้วปลอดภัยหรือไม่

เทมเพลตการรายงาน (ใช้ได้เลย)

“เราเปรียบเทียบวิธีใหม่กับวิธีมาตรฐานใน $N$ คู่การวัด ความต่างเฉลี่ย (bias) เท่ากับ $+2.0$ mg/dL (95% CI …) โดยมี 95% limits of agreement ตั้งแต่ $-7.8$ ถึง $+11.8$ mg/dL และจากกราฟไม่พบ proportional bias ชัดเจน ค่า LOA อยู่ภายในเกณฑ์ที่ยอมรับได้ทางคลินิกที่กำหนดไว้ล่วงหน้าที่ $\pm X$ mg/dL จึง (ใช้/ไม่ใช้) แทนกันได้”

เรื่อง 95% CI ควรพูดสักประโยค: bias มี standard error $s_d/\sqrt{N}$ ส่วนขอบ LOA แต่ละเส้นกว้างกว่าอย่างเห็นได้ชัด (ราว $1.71\,s_d/\sqrt{N}$ หรือราว $1.7\times$ ของ SE ของ bias) ถ้ากลุ่มตัวอย่างเล็ก ขอบเองก็ไม่แน่นอน — เป็นเหตุผลที่ไม่ควรเชื่อแถบแคบ ๆ จาก $n=12$ มากเกินไป

3) อ่านกราฟ — และตัดสินทางคลินิก

อ่านกราฟ BA ใด ๆ ด้วยสี่ขั้น:

  1. bias ใกล้ศูนย์ไหม? ถ้าเส้น bias อยู่ห่าง $0$ มาก แปลว่าวิธีหนึ่งสูง/ต่ำกว่าอย่างเป็นระบบ
  2. LOA ยอมรับได้ทางคลินิกไหม? นี่คือการตัดสินที่สำคัญที่สุด (ดูด้านล่าง)
  3. มีรูปแบบ (pattern) ไหม? เมฆแบนสุ่ม = noise; แถบเลื่อนขนาน = constant bias; เอียง/บานออก = proportional bias (หัวข้อ 5–7)
  4. สเกลเหมาะไหม? ถ้ากราฟ absolute บานออก ให้เปลี่ยนไปใช้แบบ percent หรือ log (หัวข้อ 6)

ขอบ LOA ตัดสินด้วยเกณฑ์คลินิก ไม่ใช่ค่า p

คำถามที่ว่า “ขอบแคบพอไหม?” ไม่มีคำตอบทางสถิติ มีแต่คำตอบทางคลินิก คุณต้องกำหนดเกณฑ์ที่ยอมรับได้ ก่อน ทำการศึกษา แล้วเทียบ LOA กับเกณฑ์นั้น:

  • น้ำหนักตัว: ต่างกัน $\pm 1$ kg มักไม่เป็นไร
  • โพแทสเซียมในเลือด: ต่างกัน $\pm 1$ mmol/L อาจอันตราย เพราะกินช่วงตั้งแต่ปกติถึงขั้นวิกฤต
  • ความดันโลหิต: ต่างกัน $\pm 10$ mmHg อาจพลิกการวินิจฉัย hypertension ได้

LOA ค่าเดียวกันอาจ “รับได้” กับค่าหนึ่ง แต่ “ใช้ไม่ได้” กับอีกค่าหนึ่ง อย่ารายงานขอบโดยไม่เทียบกับ ความต่างที่ยอมรับได้ทางคลินิกที่ตั้งไว้ล่วงหน้า

4) การคำนวณรายบุคคล

สำหรับผู้ป่วยคนที่ $i$ ที่มีค่าวิธีใหม่ $x_i$ และค่ามาตรฐาน $y_i$:

$$\text{mean}_i=\frac{x_i+y_i}{2}, \qquad d_i=x_i-y_i, \qquad \text{pct}_i = 100\times\frac{x_i-y_i}{(x_i+y_i)/2}$$

แล้วสรุปทั้งกลุ่ม: bias $\bar d=\operatorname{mean}(d_i)$, การกระจาย $s_d=\operatorname{SD}(d_i)$ และ $\text{LOA}=\bar d\pm 1.96\,s_d$ ลองหนึ่งคนตั้งแต่ต้นจนจบ: ใหม่ $=120$, มาตรฐาน $=118$ → mean $=119$, ผลต่าง $=+2$ mg/dL, เปอร์เซ็นต์ $=100\times 2/119 \approx 1.7\%$

5) Fixed bias เทียบกับ proportional bias

ความคลาดเคลื่อนเป็นระบบสองแบบนี้หน้าตาบนกราฟต่างกันสิ้นเชิง และต้องแก้คนละวิธี

Fixed bias (ค่าคงที่) คือต่างเท่ากันทุกระดับ สมมติเครื่องใหม่อ่านสูงไป $2$ หน่วยเสมอ:

มาตรฐานใหม่ผลต่าง
1012+2
5052+2
100102+2
200202+2

บนกราฟคือ แถบแบนที่เลื่อนห่างจากศูนย์ ส่วน proportional bias จะโตขึ้นตามขนาดของค่าที่วัด เช่น เครื่องใหม่อ่านสูงราว $10\%$ เสมอ:

มาตรฐานใหม่ผลต่าง (หน่วย)ผลต่าง (%)
1011+1+9.5%
5055+5+9.5%
100110+10+9.5%
200220+20+9.5%

ผลต่างแบบหน่วยไต่ขึ้น $+1 \to +5 \to +10 \to +20$ ทั้งที่ความคลาดเคลื่อนคงที่ราว $10\%$ ของค่าที่อ่าน บนกราฟ BA จุดจะ เอียงขึ้น / บานออก:

เส้นสีส้ม คือเส้นแนวโน้ม (regress ผลต่างกับค่าเฉลี่ย) — ให้เทียบความชันของสองภาพ ซ้าย — constant bias: แถบแบนที่ $+2$ และเส้นแนวโน้ม แบน (slope ≈ 0) ช่องว่างเท่ากันทุกระดับ ขวา — proportional bias: จุดไต่สูงขึ้นและเส้นแนวโน้ม ชันขึ้นชัด เพราะความคลาดเคลื่อนเป็นสัดส่วนคงที่ของขนาด วิธีแก้ต่างกัน: constant ให้ลบ offset ออก ส่วน proportional ต้องปรับสเกล (rescale) ไม่ใช่ลบค่าคงที่

6) Percent และ log Bland–Altman: ข้อมูลเดิม สเกลที่ยุติธรรมกว่า

หน่วยจริง (absolute) อาจหลอกเราเมื่อความคลาดเคลื่อนเป็นสัดส่วน ถ้าอ่านตรงตัว กราฟด้านขวาข้างบนดูเหมือนบอกว่า “เครื่องแย่ลงมากที่ค่าสูง ๆ” แต่จริง ๆ มันไม่ได้แย่ลง — ความคลาดเคลื่อนเป็นเปอร์เซ็นต์คงที่ มันแค่ ดู ใหญ่ขึ้น เพราะ $10\%$ ของเลขมาก ก็เป็นเลขมาก

กราฟ percent BA แก้เรื่องนี้โดยหารผลต่างแต่ละจุดด้วยค่าเฉลี่ยของสองวิธี: $\text{pct}_i = 100\times (x_i-y_i)/\text{mean}_i$ ข้อมูล proportional ชุดเดิมจะกลายเป็น แถบแบนราว $+10\%$:

ข้อมูลชุดเดียวกัน สองสเกล ซ้าย (absolute): bias +13.5 mg/dL, ขอบ +1.9 ถึง +25.2 — บานออก ตีความยาก ขวา (percent): bias 10%, ขอบ 2.6% ถึง 17.2% — แบนและอ่านง่ายว่า “สูงราว 10% ทุกช่วง” (บางตำราหารด้วยค่ามาตรฐานแทนค่าเฉลี่ย ภาพที่ได้ใกล้เคียงกัน)

ตรงนี้มีสองอย่างขยายไปพร้อมกัน และสเกล percent (หรือ log) ทำให้แบนทั้งคู่: ส่วนที่เป็นระบบ — % bias คงที่ ที่ทำให้เมฆ absolute เอียง — และส่วนสุ่ม — % scatter คงที่ (constant CV) ที่ทำให้มัน บานออก ถ้าเป็น proportional bias ล้วน ๆ ไม่มี noise ก็จะแค่เอียง แต่ความคลาดเคลื่อนแบบสัดส่วนจริง ๆ มักเกิดทั้งสองอย่างพร้อมกัน

log transform ไปอีกขั้นโดยเปลี่ยน “ผลต่าง” เป็น “อัตราส่วน” แทนที่จะดู $\text{ใหม่}-\text{มาตรฐาน}$ ก็วิเคราะห์ $\log(\text{ใหม่})-\log(\text{มาตรฐาน})=\log(\text{ใหม่}/\text{มาตรฐาน})$ แล้วแปลงกลับ ผลอ่านได้ว่า วิธีหนึ่งเป็น “กี่เท่า” ของอีกวิธี:

เช่น: geometric mean ratio $=1.08$, 95% limits of agreement $0.90$ ถึง $1.30$ — คือโดยเฉลี่ย วิธีใหม่อ่านสูงราว 8% และค่ารายคนวิ่งตั้งแต่ราว $10\%$ ต่ำกว่า ถึง $30\%$ สูงกว่า วิธีมาตรฐาน (ใน log analysis ค่า mean ratio คือจุดกึ่งกลางเชิงเรขาคณิตของขอบ $\sqrt{0.90\times1.30}\approx1.08$)

เมื่อไรไม่ควรใช้ percent หรือ log

ถ้าค่ามี ศูนย์หรือใกล้ศูนย์ เปอร์เซ็นต์จะระเบิด (หารด้วยเลขที่เกือบเป็นศูนย์) และ log ก็นิยามไม่ได้ กรณีนั้นให้อยู่กับสเกล absolute หรือสร้างแบบจำลองความแปรปรวนโดยตรง

7) กับดัก: bias เท่ากับศูนย์ที่ดูสมบูรณ์แบบ

นี่คือรูปแบบที่อันตรายที่สุด เพราะมันซ่อนอยู่หลังตัวเลขสรุปที่ดูน่าวางใจ ลองดู:

ค่าเฉลี่ยของสองวิธีผลต่าง (ใหม่ − มาตรฐาน)
10−10
50−5
1000
150+5
200+10

ผลต่างเฉลี่ยเท่ากับ $0$ พอดี ถ้ารายงานแค่ bias คุณจะบอกว่านี่คือวิธีที่สมบูรณ์แบบ แต่จริง ๆ มันผิดเกือบทุกที่: อ่าน ต่ำไป ที่ค่าต่ำ และ สูงไป ที่ค่าสูง ถูกพอดีแค่ตรงกลางเท่านั้น รูปแบบนี้มองไม่เห็นใน bias แต่ชัดเจนบนกราฟ:

bias $\approx 0$ แต่มีความชันขึ้นชัดเจนผ่านศูนย์ ค่าเฉลี่ยหักล้างกันหมด แต่ไม่มีผู้ป่วยรายไหน ถูกวัดดีเลยยกเว้นคนที่อยู่ใกล้กลาง บทเรียน: ดู pattern เสมอ อย่าเชื่อแค่ผลต่างเฉลี่ย

ตรวจ proportional bias ด้วยตัวเลข

ไม่ต้องเดาด้วยตา ให้ regress ผลต่างกับค่าเฉลี่ย:

$$d_i = a + b\cdot \text{mean}_i$$

ความชัน $b$ คือ proportional bias ถ้า $b\approx 0$ แถบแบน (ไม่มี proportional bias) ถ้า $b>0$ ค่ายิ่งสูงยิ่งอ่านสูงขึ้นเรื่อย ๆ ถ้า $b<0$ ค่ายิ่งสูงยิ่งอ่านต่ำลง ความชันที่ต่างจาก $0$ อย่างมีนัยสำคัญ คือการยืนยันทางสถิติของสิ่งที่ความเอียงบนกราฟแสดง

8) ห้ารูปแบบที่ต้องรู้จัก

กราฟ BA เกือบทุกอันเป็นหนึ่งในห้ารูปนี้ แต่ละแบบดูว่ากราฟ absolute เป็นอย่างไร กราฟ percent เป็นอย่างไร หมายความว่าอะไร และต้องทำอะไร

① Random difference (สุ่ม)

Absolute: เมฆสมมาตรรอบ $0$ การกระจายคงที่ Percent: เมฆคล้ายกัน แต่ % error เล็กลง เมื่อค่าเฉลี่ยมากขึ้น (noise เท่าเดิมหารด้วยเลขที่ใหญ่ขึ้น) หมายความว่า: ส่วนใหญ่เป็น random noise ทำ: เพิ่ม precision (calibrate, ฝึกผู้วัด) และเฉลี่ยค่าซ้ำ

② Constant difference (offset คงที่)

Absolute: แถบแบนเลื่อนจาก $0$ การกระจายสม่ำเสมอ Percent: % error ลดลง เมื่อค่าเฉลี่ยสูงขึ้น (offset เท่าเดิมหารด้วยค่าที่ใหญ่ขึ้น) หมายความว่า: วิธีหนึ่งสูง/ต่ำกว่า ด้วยจำนวนคงที่ ทำ: แก้ด้วย offset correction หรือ recalibrate

③ Proportional difference (ความคลาดเคลื่อนตามสเกล)

Absolute: ผลต่าง/การกระจายโตตามค่าเฉลี่ย เป็นรูปบานออก Percent: แถบแบนรอบ % คงที่ หมายความว่า: ความคลาดเคลื่อนเป็นสัดส่วนคงที่ของขนาด (CV คงที่) ทำ: ปรับสเกล — fit ผลต่างกับ ค่าเฉลี่ย (หรือ Passing–Bablok / Deming regression) แล้ว rescale และตรวจซ้ำ

④ Proportional + constant difference

Absolute: มีความชันชัดเจน บวกกับ จุดตัดแกนที่ไม่เป็นศูนย์ Percent: แถบอยู่เหนือ $0\%$ และเอียงเล็กน้อยเมื่อผลของ offset จางลงที่ค่าสูง หมายความว่า: มีทั้ง offset คงที่ และ ส่วนที่เป็นสัดส่วนพร้อมกัน ทำ: แก้ทั้ง intercept และ slope (เส้น calibration เต็มรูป) แล้วประเมินใหม่

⑤ Mixed (ผสม)

Absolute: มีทั้งความชัน offset และ การกระจายที่เปลี่ยนตามช่วง (heteroscedasticity) Percent: ส่วนที่เป็นสัดส่วนชัดขึ้น หมายความว่า: มีแหล่งความคลาดเคลื่อนหลายอย่างพร้อมกัน ทำ: วินิจฉัยเป็นส่วน ๆ — fit เส้น bias พิจารณาแบ่งช่วง ตรวจความแปรปรวนที่เปลี่ยนไป แก้ทีละขั้นแล้ว plot ใหม่ ถ้ามีการวัดซ้ำหลายครั้งต่อคน ให้ใช้วิธีแบบ within-subject (repeatability)

9) Agreement เทียบกับ reliability — อย่าสับสน

Agreement ถามว่า “สองวิธี ใกล้กัน ในหน่วยจริงไหม?” — นั่นคือ Bland–Altman, bias และ LOA ส่วน reliability ถามว่า “การวัดซ้ำ ๆ แยกผู้ป่วยออกจากกันได้สม่ำเสมอไหม?” — นั่นคือ ICC (ต่อเนื่อง) หรือ kappa (จัดกลุ่ม) ทั้งสองอาจขัดกันได้: การวัดอาจมี ICC สูง (จัดอันดับผู้ป่วยได้ดีเพราะค่ากระจายกว้าง) แต่ agreement แย่ (LOA กว้าง) Bland–Altman ตอบคำถามเรื่องใช้แทนกัน ส่วน ICC ไม่ได้ตอบ

10) ข้อผิดพลาดที่พบบ่อย

  • ใช้ correlation (หรือ $R^2$) อ้างว่า agreement ดี — มันวัดความสัมพันธ์ ไม่ใช่ความเท่ากัน
  • รายงาน LOA โดยไม่เทียบกับ เกณฑ์คลินิกที่ตั้งไว้ล่วงหน้า
  • ดู แค่ bias เฉลี่ย แล้วพลาด proportional pattern (หัวข้อ 7)
  • ใช้ percent/log ทั้งที่ค่าใกล้ศูนย์
  • ละเลย การวัดซ้ำ — หลายคู่ต่อคนต้องใช้วิธี within-subject ไม่งั้น LOA จะแคบเกินจริง

สรุปสาระสำคัญ

  • ตัวเลข Bland–Altman รายงาน bias, SD ของผลต่าง และ limits of agreement $\bar d\pm 1.96\,s_d$ — กราฟแค่ช่วยให้เราเชื่อมัน
  • bias vs LOA bias คือช่องว่างเฉลี่ย ส่วน ขอบ LOA บอกว่าค่ารายคน ของสองวิธีต่างกันได้ไกลแค่ไหน
  • ตัดสิน เทียบขอบกับ เกณฑ์คลินิก ที่ตั้งไว้ล่วงหน้า ไม่ใช่ค่า p
  • pattern เมฆแบน = noise; แถบเลื่อน = constant bias; เอียง/บาน = proportional bias; ความชันผ่านศูนย์อาจซ่อนหลัง bias ที่เป็น $0$ ได้
  • สเกล absolute BA สำหรับ error แบบบวก; percent หรือ log BA เมื่อ error โตตามขนาด
  • ไม่ใช่ ICC ใช้ Bland–Altman วัด agreement และ ICC/kappa วัด reliability

Comments

No comments yet. Be the first to share your thoughts.

Sign in to comment