Tuyến Trần, MD
Phương pháp nghiên cứu

Meta-analysis cho bác sĩ: quy trình đầy đủ và chỗ dễ trích sai số

Hướng dẫn làm meta-analysis cho bác sĩ theo trình tự thật: từ câu hỏi PICO, tìm và sàng lọc tài liệu, trích số liệu, gộp kết quả đến vẽ forest plot.

Giữa lúc sửa bản chỉnh sửa lần hai cho một bài meta-analysis của mình, mình phát hiện đã trích sai một con số của bài gốc. Con số 43,7% mình từng hiểu là tỉ lệ hoàn tất điều trị, đọc lại bảng gốc mới thấy đó là tỉ lệ bệnh nhân còn theo dõi được. Làm meta-analysis cho bác sĩ, chỗ khó nhất không nằm ở phần mềm hay công thức gộp, mà ở những lần đọc lệch nguồn như vậy. Bài này đi qua trọn quy trình từ câu hỏi PICO đến forest plot, và chỉ ra các chỗ dễ sai.

Meta-analysis cho bác sĩ bắt đầu từ đâu: câu hỏi PICO và đề cương

Trước khi tìm bài nào, bạn cần một câu hỏi đủ hẹp để trả lời và đủ rộng để có dữ liệu. Khung PICO tách câu hỏi thành bốn phần: dân số nghiên cứu, can thiệp, nhóm so sánh, và kết cục quan tâm. Nếu chưa quen tách câu hỏi kiểu này, mình có viết riêng một bài về cách xây câu hỏi PICO trong 30 giây.

Sau khi có câu hỏi, viết đề cương nghiên cứu và đăng ký PROSPERO trước khi bắt đầu tìm tài liệu. Đề cương ghi rõ tiêu chí chọn và loại bài, các cơ sở dữ liệu sẽ tìm, cách trích số liệu, và mô hình gộp dự kiến. Đăng ký sớm giúp bạn không bị nghi là chỉnh tiêu chí theo kết quả về sau.

Một lỗi rất hay gặp là viết xong chiến lược tìm kiếm rồi mới nhớ đăng ký, và trượt ngay ở mốc thời gian đó. Chốt câu hỏi PICO và đăng ký đề cương trước, mọi bước sau đều bám theo hai thứ này.

Tìm tài liệu thế nào cho đủ mà không loạn?

Một lần tìm đạt yêu cầu cần ít nhất ba cơ sở dữ liệu, thường là PubMed, Embase và Cochrane CENTRAL. Với chủ đề khu vực, thêm một nguồn tiếng Việt hoặc châu Á. Câu tìm nên kết hợp từ khoá tự do với từ chuẩn hoá như MeSH, ghép bằng toán tử AND, OR cho từng nhánh PICO.

Đừng đặt giới hạn năm hay ngôn ngữ nếu không có lý do rõ. Giới hạn tuỳ tiện là một dạng sai lệch chọn lọc, và người phản biện sẽ hỏi. Sau khi có danh sách, chạy thêm một vòng tìm tay: đọc tài liệu tham khảo của các tổng quan cũ và các bài được chọn, để nhặt bài mà câu tìm bỏ sót.

Ghi lại mọi con số ở từng bước: số bản ghi mỗi cơ sở dữ liệu trả về, số trùng lặp bỏ đi, số còn lại. Sơ đồ PRISMA cần đúng những con số này. Mình có mô tả kỹ hơn phần tìm và quản lý tài liệu trong bài quy trình làm tổng quan hệ thống với AI. Một câu tìm tốt là câu bạn dám dán nguyên vào phần phụ lục cho người khác chạy lại.

Sàng lọc và chọn bài: hai người đọc độc lập

Sàng lọc chia hai vòng. Vòng một đọc tiêu đề và tóm tắt, loại nhanh bài rõ ràng không liên quan. Vòng hai đọc toàn văn các bài còn lại, đối chiếu từng tiêu chí chọn và loại. Cả hai vòng nên có hai người làm độc lập, sau đó so kết quả, tính chỉ số đồng thuận kappa, và giải quyết bất đồng bằng thảo luận hoặc người thứ ba.

AI có thể sắp xếp trước danh sách theo mức liên quan để bạn đọc phần khả nghi trước, nhưng bản ghi chính thức vẫn phải do người sàng lọc. Mình có viết một bài riêng về dùng AI sàng lọc tóm tắt và sai số thực tế.

Với mỗi bài bị loại ở vòng toàn văn, ghi một lý do duy nhất, rõ ràng. Danh sách bài loại kèm lý do là phần phụ lục người phản biện hay soi nhất. Hai người đọc độc lập tốn thời gian gấp đôi, nhưng đây là chỗ không nên cắt.

Trích số liệu: chỗ mình từng đọc sai nguồn

Khi trích số liệu từ bài gốc, mình từng chép lại một tỉ lệ 43,7% và hiểu đó là tỉ lệ bệnh nhân hoàn tất cả ba lần mổ. Trong lúc sửa bản chỉnh sửa lần hai, đọc lại bảng gốc mình mới thấy 43,7% là tỉ lệ bệnh nhân còn theo dõi được, không phải tỉ lệ hoàn tất điều trị. Bảng đó còn tự mâu thuẫn: phần tóm tắt của chính bài ghi 40%, ô trong bảng in 47%.

Cách xử lý là bỏ hẳn con số dẫn lại, quay về đếm thô, rồi báo hai tầng riêng: 458 trên 763 bệnh nhân (60%) hoàn tất cả ba lần mổ, và trong số 458 người đó, 200 người (43,7%) còn theo dõi được. Mình sửa đồng bộ ở phần đặt vấn đề, bàn luận và hạn chế.

Đây là lỗi mình tự bắt lúc sửa bài, không phải người phản biện chỉ ra. Nó không nói lên tỉ lệ trích sai chung của y văn, chỉ là một chỗ mình suýt để lọt. Mỗi số đưa vào bảng trích phải mở đúng bảng gốc mà đối chiếu, và khi nguồn tự mâu thuẫn thì báo số đếm thô an toàn hơn báo tỉ lệ.

Bảng trích số liệu tối thiểu

  • Mã bài, tác giả đầu, năm
  • Thiết kế nghiên cứu, quốc gia, thời gian thu thập
  • Cỡ mẫu mỗi nhóm
  • Số biến cố và số bệnh nhân mỗi nhóm cho từng kết cục
  • Trung bình hoặc trung vị, kèm độ lệch chuẩn hoặc khoảng tứ phân vị
  • Thời gian theo dõi
  • Nguồn tài trợ và xung đột lợi ích
  • Trang và bảng gốc của mỗi con số

Gộp kết quả: chọn mô hình và đọc tính không đồng nhất

Với dữ liệu lâm sàng từ nhiều nước và nhiều giai đoạn, mô hình tác động ngẫu nhiên (random-effects) hầu như luôn hợp lý hơn mô hình tác động cố định, vì bạn giả định hiệu quả thật khác nhau giữa các nghiên cứu chứ không phải một giá trị chung.

Tính không đồng nhất (heterogeneity) đo bằng chỉ số I bình phương. Nhiều người thấy I bình phương trên 50% là hoảng và muốn loại bớt bài. Nhưng không đồng nhất về mặt lâm sàng là điều dự kiến được: khác kỹ thuật mổ, khác tuổi bệnh nhân, khác định nghĩa kết cục. Cách đúng là báo trước sự khác biệt đó, dùng mô hình ngẫu nhiên, và phân tích dưới nhóm theo các yếu tố bạn nghi là nguồn khác biệt.

Kèm theo số gộp, báo cả khoảng dự đoán, vì nó cho biết một nghiên cứu mới có thể rơi vào đâu. Khi đọc số gộp, đừng bám mỗi giá trị điểm và ngưỡng p, hãy nhìn cả khoảng tin cậy, như mình bàn trong bài khoảng tin cậy và p-value. Số gộp không có khoảng tin cậy và khoảng dự đoán đi kèm thì chưa đọc được.

Vẽ forest plot bằng R

Gói meta trong R làm gần hết việc. Với kết cục nhị phân, đoạn dưới đây gộp theo tỉ số nguy cơ và vẽ luôn forest plot:

library(meta)

m <- metabin(event.e = bien_co_ct, n.e = n_ct,
             event.c = bien_co_chung, n.c = n_chung,
             studlab = ten_nghien_cuu, data = dat,
             sm = "RR", method = "MH",
             random = TRUE, common = FALSE)

forest(m,
       sortvar = TE,
       prediction = TRUE,
       label.left  = "Uu tien can thiep",
       label.right = "Uu tien nhom chung")

Khi đọc forest plot, nhìn bốn thứ. Hình thoi ở dưới cùng là số gộp và khoảng tin cậy của nó. Đường dọc ở giá trị 1 là mốc không khác biệt; khoảng tin cậy cắt qua đường này nghĩa là chưa đủ dữ liệu để kết luận. Kích thước ô vuông mỗi nghiên cứu là trọng số của nó trong số gộp. Và dòng ghi I bình phương cho biết mức không đồng nhất.

So với phần mềm bấm chuột, R cho bạn chỉnh nhãn, phông và màu để hình đạt chuẩn nộp báo, và quan trọng hơn là chạy lại được khi số liệu thay đổi. Lưu đoạn mã cùng bảng số liệu, lần sửa sau chỉ việc chạy lại.

Đánh giá nguy cơ sai lệch và bậc chứng cứ

Trước khi tin số gộp, đánh giá nguy cơ sai lệch của từng bài bằng công cụ hợp thiết kế: RoB 2 cho thử nghiệm ngẫu nhiên, ROBINS-I cho nghiên cứu quan sát. Trình bày kết quả này thành bảng hoặc biểu đồ, đừng để lẫn trong phần chữ.

Kiểm sai lệch xuất bản bằng biểu đồ phễu khi có từ mười nghiên cứu trở lên, kèm kiểm định Egger. Cuối cùng, chấm bậc chứng cứ cho từng kết cục theo GRADE: bắt đầu từ mức của thiết kế, rồi hạ bậc vì nguy cơ sai lệch, thiếu nhất quán, thiếu trực tiếp, thiếu chính xác, hoặc nghi sai lệch xuất bản.

Một bài meta-analysis đọc được là bài mà người phản biện lần theo được từng con số về đúng bảng gốc, và biết bạn tin kết quả tới mức nào. Mình bàn kỹ hơn phần đọc số gộp và chấm GRADE trong khoá Y học thực chứng, ở các bài về phê bình tài liệu và bậc chứng cứ.