🎯 MỤC TIÊU
Về kiến thức:
- Hiểu vai trò của trực quan hóa dữ liệu trong nghiên cứu y khoa.
- Phân biệt được biểu đồ dùng cho mô tả, so sánh, tương quan, sống còn, chẩn đoán và meta-analysis.
- Chọn được loại biểu đồ phù hợp với loại biến và câu hỏi nghiên cứu.
- Mô tả được các nguyên tắc thiết kế hình khoa học: rõ ràng, đơn giản, đúng dữ liệu, dễ đọc, thân thiện với người mù màu.
- Hiểu yêu cầu của một hình “publication-ready”: độ phân giải, nhãn trục, đơn vị đo, chú thích, p-value, confidence interval, legend.
- Nhận diện được các lỗi thường gặp khi tạo hình: biểu đồ sai loại, quá nhiều màu, thiếu cỡ mẫu, thiếu đơn vị, làm đẹp quá mức, gây hiểu nhầm.
Về kỹ năng:
- Tạo được bar chart có error bars và p-value annotation.
- Tạo được box plot hoặc violin plot để mô tả phân phối.
- Tạo được scatter plot kèm đường hồi quy.
- Tạo được ROC curve cho mô hình chẩn đoán hoặc prediction model.
- Hiểu cách tạo Kaplan–Meier curve, forest plot và CONSORT flow diagram ở mức cơ bản.
- Dùng AI để viết code Python/R tạo biểu đồ.
- Dùng công cụ no-code như Flourish hoặc Datawrapper để tạo biểu đồ/dashboard đơn giản.
- Xuất hình đúng định dạng cho manuscript, poster hoặc slide.
Về thái độ:
- Không dùng biểu đồ để “trang trí” dữ liệu.
- Không chọn biểu đồ vì nhìn đẹp nhưng sai thông điệp.
- Không để AI tự quyết định hoàn toàn cách biểu diễn kết quả.
- Có thói quen kiểm tra lại từng con số trong biểu đồ.
- Nhớ rằng biểu đồ đẹp mà sai dữ liệu thì không phải khoa học — đó là nghệ thuật gây tai nạn.
🔄 KẾT NỐI VỚI BÀI 11 VÀ BÀI 12
Ở Bài 11, học viên đã học cách phân tích thống kê cơ bản: mô tả dữ liệu, so sánh nhóm, hồi quy, p-value, confidence interval và effect size.
Ở Bài 12, học viên đã học cách xây dựng mô hình Machine Learning và đánh giá mô hình bằng AUROC, confusion matrix, calibration plot và feature importance.
Bài 13 biến các kết quả đó thành hình ảnh khoa học rõ ràng:
Dữ liệu đã làm sạch
↓
Phân tích thống kê / mô hình ML
↓
Bảng kết quả
↓
Biểu đồ khoa học
↓
Manuscript / poster / slide / dashboard
Thông điệp chính:
Một biểu đồ tốt không chỉ “đẹp”. Nó giúp người đọc hiểu kết quả nhanh, đúng và không bị đánh lừa.
PHẦN 1: VÌ SAO TRỰC QUAN HÓA DỮ LIỆU QUAN TRỌNG?
1.1. Dữ liệu dạng bảng thường khó đọc
Ví dụ, bảng kết quả sau:
| Nhóm | HbA1c giảm trung bình | KTC 95% | p-value |
|---|---|---|---|
| Treatment A | 1.2% | 0.9–1.5 | |
| Treatment B | 0.6% | 0.3–0.9 | 0.004 |
Bảng này đúng, nhưng người đọc phải “đọc và tưởng tượng”.
Nếu chuyển thành biểu đồ cột có error bars hoặc dot plot, người đọc sẽ thấy ngay:
- Nhóm A giảm HbA1c nhiều hơn.
- Khoảng tin cậy hai nhóm.
- Mức khác biệt có ý nghĩa.
- Kết quả chính trong 3 giây.
Trong bài báo, poster hoặc slide, 3 giây là nhiều lắm rồi. Người đọc không phải lúc nào cũng có tâm trạng ngồi giải sudoku bằng bảng số.
1.2. Biểu đồ tốt giúp trả lời câu hỏi nghiên cứu
Một biểu đồ tốt phải trả lời được ít nhất một trong các câu hỏi:
- Mẫu nghiên cứu có đặc điểm gì?
- Hai nhóm có khác nhau không?
- Phân phối dữ liệu ra sao?
- Biến A có liên quan biến B không?
- Mô hình dự đoán tốt đến đâu?
- Hiệu quả điều trị thay đổi theo thời gian không?
- Kết quả nghiên cứu có nhất quán giữa các phân nhóm không?
Nếu biểu đồ không trả lời được câu hỏi nào, rất có thể nó chỉ đang làm màu. Khoa học không cấm đẹp, nhưng đẹp phải có ích.
1.3. Biểu đồ xấu có thể gây hiểu nhầm
Ví dụ:
- Trục y không bắt đầu từ 0 trong bar chart, làm khác biệt trông lớn hơn.
- Dùng biểu đồ 3D khiến tỷ lệ bị bóp méo.
- Chỉ vẽ mean mà không vẽ độ phân tán.
- Dùng màu đỏ/xanh lá khiến người mù màu khó phân biệt.
- Dùng pie chart với 12 lát, nhìn như bánh pizza bị tai nạn.
- Dùng bar chart cho dữ liệu phân phối lệch nặng.
- Không ghi cỡ mẫu, khiến người đọc không biết mỗi nhóm có bao nhiêu người.
PHẦN 2: NGUYÊN TẮC DATA VISUALIZATION
Khung chương trình gốc nhấn mạnh các nguyên tắc: Clarity > Complexity, dùng bảng màu thân thiện với người mù màu, chọn loại biểu đồ phù hợp và viết figure legends đầy đủ.
2.1. Clarity > Complexity
Nguyên tắc số 1:
Rõ ràng quan trọng hơn phức tạp.
Biểu đồ không cần chứng minh bạn biết dùng 17 loại layer trong ggplot2. Biểu đồ cần giúp người đọc hiểu đúng kết quả.
Biểu đồ yếu
- Quá nhiều đường.
- Quá nhiều màu.
- Font nhỏ.
- Legend khó hiểu.
- Không có đơn vị.
- Không biết kết quả chính nằm ở đâu.
Biểu đồ tốt
- Có một thông điệp chính.
- Trục rõ.
- Đơn vị rõ.
- Màu vừa đủ.
- Cỡ mẫu có ghi.
- Chú thích đầy đủ.
- Người đọc hiểu được mà không cần gọi tác giả tới giải cứu.
2.2. Chọn biểu đồ theo câu hỏi, không theo sở thích
Không nên hỏi:
“Biểu đồ nào đẹp?”
Nên hỏi:
“Tôi muốn người đọc hiểu điều gì?”
Ví dụ:
| Câu hỏi | Biểu đồ phù hợp |
|---|---|
| Tỷ lệ biến cố giữa hai nhóm khác nhau không? | Bar chart, stacked bar |
| HbA1c phân phối ra sao trong từng nhóm? | Box plot, violin plot |
| BMI có liên quan HbA1c không? | Scatter plot |
| Điều trị A có cải thiện sống còn không? | Kaplan–Meier curve |
| Mô hình chẩn đoán tốt không? | ROC curve |
| Yếu tố nào liên quan outcome? | Forest plot |
| Quy trình tuyển chọn bệnh nhân thế nào? | Flow diagram |
| Dashboard theo dõi chỉ số bệnh viện? | Interactive dashboard |
2.3. Luôn ghi cỡ mẫu
Một biểu đồ so sánh nhóm mà không ghi cỡ mẫu thường chưa đủ.
Ví dụ:
Treatment A (n=100)
Treatment B (n=98)
Cỡ mẫu giúp người đọc đánh giá độ tin cậy. Chênh lệch 10% ở nhóm 20 người khác rất xa chênh lệch 10% ở nhóm 2.000 người.
2.4. Báo cáo uncertainty
Không chỉ báo cáo point estimate.
Nên thêm:
- SD.
- SE.
- 95% CI.
- IQR.
- Min–max nếu phù hợp.
- Error bars.
- Confidence band.
- Prediction interval nếu cần.
Ví dụ:
Không nên:
HbA1c giảm 1.2%.
Tốt hơn:
HbA1c giảm trung bình 1.2% với KTC 95%: 0.9–1.5%.
Biểu đồ không có uncertainty giống một bác sĩ rất tự tin nhưng không cho biết đã khám bao nhiêu bệnh nhân.
2.5. Dùng màu có mục đích
Màu nên dùng để:
- Phân biệt nhóm.
- Nhấn mạnh kết quả chính.
- Làm biểu đồ dễ đọc hơn.
Màu không nên dùng để:
- Trang trí quá mức.
- Tạo cầu vồng không cần thiết.
- Biến biểu đồ thành pháo hoa hội nghị.
Nguyên tắc màu
- Dùng ít màu.
- Nhất quán giữa các biểu đồ.
- Tránh cặp đỏ/xanh lá nếu không cần.
- Dùng bảng màu colorblind-friendly.
- In thử đen trắng nếu bài báo có thể in trắng đen.
2.6. Figure legend phải đủ thông tin
Một figure legend tốt nên có:
- Biểu đồ thể hiện điều gì.
- Dữ liệu gồm bao nhiêu người/nhóm.
- Error bars là gì: SD, SE hay 95% CI.
- Test thống kê nếu có.
- Viết tắt được giải thích.
- Ngưỡng p-value nếu có.
- Ghi chú nếu có missing data.
Legend yếu
Figure 1. HbA1c reduction.
Legend tốt hơn
Figure 1. Mean HbA1c reduction after 12 weeks by treatment group. Error bars represent 95% confidence intervals. The between-group difference was tested using an independent t-test.
PHẦN 3: CÁC LOẠI BIỂU ĐỒ THƯỜNG GẶP TRONG NGHIÊN CỨU Y KHOA
Khung chương trình gốc liệt kê các loại hình thường dùng trong nghiên cứu y khoa: bar chart, box plot, scatter plot, Kaplan–Meier curve, forest plot và ROC curve.
3.1. Bar chart — So sánh tỷ lệ hoặc trung bình
Khi dùng
Dùng để so sánh:
- Tỷ lệ biến cố giữa các nhóm.
- Tỷ lệ đạt mục tiêu HbA1c.
- Tỷ lệ tái nhập viện.
- Trung bình outcome nếu có error bars phù hợp.
Ví dụ
So sánh tỷ lệ đạt HbA1c <7% giữa Treatment A và Treatment B.
Lưu ý
Bar chart không phải lúc nào cũng tốt cho biến liên tục. Nếu muốn mô tả phân phối HbA1c, box plot hoặc violin plot thường tốt hơn.
Nên có
- Cỡ mẫu từng nhóm.
- Error bars nếu là trung bình/tỷ lệ.
- p-value nếu mục tiêu là so sánh.
- Đơn vị rõ ràng.
3.2. Box plot — Mô tả phân phối
Khi dùng
Dùng cho biến định lượng, đặc biệt khi dữ liệu lệch hoặc có outliers:
- HbA1c.
- BMI.
- CRP.
- D-dimer.
- Thời gian nằm viện.
- Chi phí điều trị.
- Điểm stress.
Box plot cho biết
- Median.
- IQR.
- Outliers.
- Độ lệch phân phối.
- Sự khác biệt giữa các nhóm.
Ví dụ
So sánh phân phối thời gian nằm viện giữa nhóm có biến chứng và không biến chứng.
Lưu ý
Nếu cỡ mẫu nhỏ, nên thêm jittered dots để thấy từng điểm dữ liệu.
3.3. Violin plot — Phân phối chi tiết hơn box plot
Violin plot cho thấy hình dạng phân phối rõ hơn box plot.
Phù hợp khi:
- Cỡ mẫu tương đối lớn.
- Muốn so sánh phân phối giữa nhóm.
- Dữ liệu có nhiều dạng phân phối khác nhau.
Không nên dùng nếu người đọc của bạn không quen loại biểu đồ này. Reviewer khó tính có thể nhìn violin plot rồi tưởng đang xem nội soi thanh quản.
3.4. Scatter plot — Tương quan giữa hai biến định lượng
Khi dùng
Dùng khi muốn xem mối quan hệ giữa:
- BMI và HbA1c.
- Tuổi và huyết áp.
- Thời gian mắc bệnh và điểm chất lượng sống.
- BNP và nguy cơ tái nhập viện.
- Số giờ làm việc và điểm stress.
Nên có
- Điểm dữ liệu.
- Đường hồi quy nếu phù hợp.
- Confidence band.
- Hệ số tương quan r hoặc rho.
- p-value nếu cần.
- Nhắc rõ tương quan không chứng minh nhân quả.
Ví dụ caption
Figure 2. Association between BMI and HbA1c. The solid line represents the fitted linear regression line, and the shaded area represents the 95% confidence interval.
3.5. ROC curve — Đánh giá chẩn đoán hoặc mô hình dự đoán
Khi dùng
Dùng cho:
- Test chẩn đoán.
- Prediction model.
- Machine learning model.
- Biomarker dự đoán outcome.
- So sánh mô hình A và B.
ROC curve cho biết
- Trade-off giữa sensitivity và 1-specificity.
- AUROC.
- Khả năng phân biệt người có outcome và không có outcome.
Cần báo cáo
- AUROC.
- 95% CI.
- Threshold nếu dùng.
- Sensitivity/specificity tại threshold.
- Test set hay validation set.
Lưu ý
AUROC cao chưa đủ. Nếu mô hình dùng cho quyết định lâm sàng, cần calibration plot và decision curve nếu phù hợp.
3.6. Kaplan–Meier curve — Phân tích sống còn
Khi dùng
Dùng cho outcome dạng thời gian đến biến cố:
- Tử vong.
- Tái nhập viện.
- Tái phát bệnh.
- Thời gian đến thất bại điều trị.
- Thời gian sống không bệnh.
Cần có
- Trục x: thời gian.
- Trục y: xác suất sống còn hoặc không biến cố.
- Number at risk table.
- Log-rank p-value nếu so sánh nhóm.
- Hazard ratio nếu có Cox regression.
Không nên dùng Kaplan–Meier nếu
- Không có thời gian theo dõi.
- Chỉ có outcome có/không.
- Không biết thời điểm xảy ra biến cố.
3.7. Forest plot — Hồi quy, subgroup hoặc meta-analysis
Khi dùng
Dùng để trình bày:
- Odds ratio từ hồi quy logistic.
- Hazard ratio từ Cox regression.
- Risk ratio trong trial.
- Subgroup analysis.
- Kết quả meta-analysis.
Forest plot tốt cho người đọc vì
- Thấy effect size.
- Thấy khoảng tin cậy.
- Thấy yếu tố nào tăng/giảm nguy cơ.
- Thấy kết quả chính trong một hình.
Cần có
- Tên biến/subgroup.
- Effect size.
- 95% CI.
- Đường null: OR/HR/RR = 1.
- Scale phù hợp, thường log scale.
- Ghi rõ mô hình đã hiệu chỉnh gì.
3.8. CONSORT flow diagram — Quy trình nghiên cứu thử nghiệm
CONSORT flow diagram dùng cho RCT.
Nó cho thấy:
- Số người được đánh giá đủ điều kiện.
- Số người bị loại.
- Số người được randomize.
- Số người vào từng nhóm.
- Số người mất theo dõi.
- Số người được phân tích.
Khung chương trình gốc đưa CONSORT flow diagram vào phần advanced charts, có thể tạo bằng AI để draft text rồi dựng bằng PowerPoint hoặc Draw.io.
PHẦN 4: CHỌN BIỂU ĐỒ THEO LOẠI DỮ LIỆU
4.1. Biến định tính
Ví dụ:
- Giới tính.
- Hút thuốc.
- Có tăng huyết áp.
- Đạt HbA1c <7%.
- Có biến chứng.
Biểu đồ phù hợp:
| Mục tiêu | Biểu đồ |
|---|---|
| Tỷ lệ trong một nhóm | Bar chart |
| Tỷ lệ giữa nhiều nhóm | Grouped bar chart |
| Thành phần tổng thể | Stacked bar chart |
| Thay đổi tỷ lệ theo thời gian | Line chart hoặc stacked bar |
Không nên lạm dụng pie chart. Pie chart chỉ ổn khi có ít nhóm và mục tiêu là thành phần tổng thể. Nếu có nhiều hơn 4–5 lát, pie chart bắt đầu giống món bánh không ai muốn chia.
4.2. Biến định lượng
Ví dụ:
- Tuổi.
- BMI.
- HbA1c.
- Huyết áp.
- Thời gian nằm viện.
- Điểm stress.
Biểu đồ phù hợp:
| Mục tiêu | Biểu đồ |
|---|---|
| Phân phối một biến | Histogram, density plot |
| So sánh phân phối giữa nhóm | Box plot, violin plot |
| So sánh trung bình | Dot plot, bar chart có CI |
| Trước–sau cùng bệnh nhân | Paired line plot |
| Tương quan hai biến | Scatter plot |
4.3. Outcome nhị phân
Ví dụ:
- Tử vong: có/không.
- Tái nhập viện: có/không.
- Đạt mục tiêu điều trị: có/không.
Biểu đồ phù hợp:
| Mục tiêu | Biểu đồ |
|---|---|
| So sánh tỷ lệ | Bar chart |
| Hồi quy logistic | Forest plot |
| Prediction model | ROC curve, calibration plot |
| Confusion matrix | Heatmap |
4.4. Dữ liệu theo thời gian
Ví dụ:
- Huyết áp theo tuần.
- HbA1c trước/sau.
- Số ca nhiễm khuẩn theo tháng.
- Tỷ lệ tái nhập viện theo quý.
Biểu đồ phù hợp:
| Mục tiêu | Biểu đồ |
|---|---|
| Xu hướng theo thời gian | Line chart |
| Trước–sau | Paired plot |
| Nhiều timepoints | Line chart with CI |
| Time-to-event | Kaplan–Meier curve |
PHẦN 5: PUBLICATION-READY FIGURES
5.1. Một hình publication-ready cần gì?
Một hình sẵn sàng đưa vào manuscript cần:
- Đúng loại biểu đồ.
- Dữ liệu chính xác.
- Nhãn trục rõ.
- Đơn vị rõ.
- Font đủ lớn.
- Màu dễ phân biệt.
- Không dư chi tiết.
- Có cỡ mẫu.
- Có uncertainty.
- Có figure legend đầy đủ.
- Xuất đúng định dạng.
- Độ phân giải đủ cao.
5.2. Định dạng file
| Mục đích | Định dạng gợi ý |
|---|---|
| Manuscript | TIFF, EPS, PDF, SVG tùy tạp chí |
| Vector figure | PDF, SVG, EPS |
| Poster/slide | PNG độ phân giải cao, PDF |
| Dashboard/web | HTML, PNG, SVG |
Khung chương trình gốc nhấn mạnh nên dùng vector formats như PDF/SVG cho publication và duy trì sự nhất quán giữa các hình.
5.3. DPI
- 300 DPI thường dùng cho hình màu/ảnh.
- 600 DPI hoặc cao hơn có thể cần cho line art.
- Luôn kiểm tra “Instructions for Authors”.
5.4. Figure legend mẫu
Figure 1. Mean HbA1c reduction after 12 weeks by treatment group. Error bars represent 95% confidence intervals. The p-value was calculated using an independent t-test. HbA1c, glycated hemoglobin.
Bản tiếng Việt để học:
Hình 1. Mức giảm HbA1c trung bình sau 12 tuần theo nhóm điều trị. Thanh sai số thể hiện khoảng tin cậy 95%. Giá trị p được tính bằng kiểm định t độc lập. HbA1c: glycated hemoglobin.
PHẦN 6: AI HỖ TRỢ TRỰC QUAN HÓA NHƯ THẾ NÀO?
6.1. AI có thể giúp gì?
AI có thể:
- Gợi ý loại biểu đồ phù hợp.
- Viết code Python/R.
- Sửa lỗi code.
- Tạo figure legend.
- Tạo caption.
- Gợi ý cách báo cáo p-value/CI.
- Tối ưu màu sắc.
- Chuyển bảng kết quả thành forest plot.
- Tạo dashboard bằng mô tả tự nhiên.
- Kiểm tra biểu đồ có gây hiểu nhầm không.
6.2. AI không nên làm gì?
AI không nên:
- Tự bịa dữ liệu để vẽ hình.
- Tự thêm p-value nếu chưa tính.
- Tự thay đổi trục để làm kết quả “đẹp hơn”.
- Tự chọn biểu đồ mà không dựa vào câu hỏi.
- Tự kết luận lâm sàng.
- Tạo biểu đồ từ dữ liệu định danh đưa vào công cụ công cộng.
- Tạo hình ảnh khoa học không kiểm chứng.
6.3. Quy trình an toàn
Xác định câu hỏi hình muốn trả lời
↓
Chọn loại biểu đồ phù hợp
↓
Dùng AI tạo code nháp
↓
Chạy code trên dữ liệu đã ẩn danh
↓
Kiểm tra số liệu trong hình với bảng phân tích
↓
Chỉnh nhãn, màu, legend
↓
Xuất hình đúng định dạng
↓
Lưu code để tái lập
PHẦN 7: CÔNG CỤ TRONG BÀI
7.1. Python: Matplotlib và Seaborn
Khung chương trình gốc đề xuất Python với Matplotlib và Seaborn cho trực quan hóa dữ liệu.
Matplotlib
Mạnh ở:
- Kiểm soát chi tiết.
- Xuất hình chất lượng cao.
- Phù hợp publication.
- Tạo hầu hết biểu đồ cơ bản.
Seaborn
Mạnh ở:
- Cú pháp ngắn hơn.
- Đẹp hơn mặc định.
- Tốt cho box plot, violin plot, scatter plot, regression plot.
- Dễ dùng với DataFrame.
Lưu ý
Seaborn đẹp nhanh, nhưng vẫn phải kiểm tra:
- Màu.
- Trục.
- Legend.
- Font.
- Cỡ mẫu.
- Dữ liệu có bị tự động xử lý không.
7.2. R: ggplot2
ggplot2 rất mạnh để tạo hình publication-ready.
Ưu điểm:
- Cấu trúc rõ.
- Dễ tạo nhiều layer.
- Cộng đồng lớn.
- Rất phù hợp nghiên cứu y sinh.
Ví dụ tư duy ggplot:
Data + Aesthetics + Geometry + Theme + Labels
Nếu học viên đã dùng R, ggplot2 là lựa chọn rất đáng học. Nếu chưa dùng R, Python hoặc no-code tools vẫn ổn. Không cần biến Bài 13 thành trận chiến Python vs R. Cả hai đều vẽ được, miễn là người dùng biết mình đang vẽ cái gì.
7.3. ChatGPT/Claude
Dùng để:
- Viết code.
- Giải thích code.
- Sửa lỗi.
- Viết caption.
- Chọn biểu đồ.
- Gợi ý cải thiện hình.
Ví dụ prompt:
Tôi có dữ liệu gồm Group, HbA1c_baseline, HbA1c_12w.
Tôi muốn vẽ mức giảm HbA1c giữa hai nhóm.
Hãy gợi ý loại biểu đồ phù hợp và viết code Python.
7.4. Flourish và Datawrapper
Khung chương trình gốc gợi ý Flourish và Datawrapper như lựa chọn no-code cho biểu đồ tương tác và dashboard.
Phù hợp khi
- Muốn tạo biểu đồ nhanh.
- Không quen code.
- Cần dashboard đơn giản.
- Trình bày dữ liệu cho quản lý bệnh viện.
- Làm báo cáo nội bộ.
Cẩn thận
Không upload dữ liệu định danh bệnh nhân lên nền tảng cloud nếu chưa được phép.
PHẦN 8: THỰC HÀNH TRÊN LỚP
Tổng thời lượng thực hành: 55–60 phút
Dataset thực hành: diabetes dataset đã làm sạch từ Bài 10–11, gồm các biến như Group, Age, BMI, HbA1c_baseline, HbA1c_12w, HbA1c_reduction, Gender, Hypertension, Smoking, HbA1c_target.
Thực hành 1: Basic Charts — 25 phút
Khung chương trình gốc yêu cầu học viên trực quan hóa diabetes dataset, gồm bar chart với error bars, 95% CI, p-value annotation, màu thân thiện với người mù màu và chất lượng publication 300 DPI.
A. Bar chart với error bars
Câu hỏi:
Mức giảm HbA1c trung bình có khác giữa Treatment A và Treatment B không?
Dữ liệu cần có
| Biến | Ý nghĩa |
|---|---|
| Group | Treatment A/B |
| HbA1c_reduction | HbA1c_baseline − HbA1c_12w |
Prompt AI mẫu
Create Python code for a publication-quality bar chart:
Dataset columns:
- Group: Treatment A or Treatment B
- HbA1c_reduction: reduction in HbA1c after 12 weeks
Requirements:
1. Calculate mean HbA1c reduction by group
2. Calculate 95% confidence intervals
3. Create a bar chart with error bars
4. Add individual data points as jittered dots
5. Add p-value annotation from an independent t-test
6. Use a colorblind-friendly palette
7. Add clear axis labels and units
8. Export as PNG 300 DPI and PDF
9. Include comments in Vietnamese
Sản phẩm cần có
- Một biểu đồ cột có 95% CI.
- Có p-value.
- Có individual data points.
- Có nhãn trục.
- Có caption ngắn.
Caption mẫu
Figure 1. Mean HbA1c reduction after 12 weeks by treatment group. Error bars represent 95% confidence intervals; dots represent individual participants.
B. Box plot cho phân phối HbA1c reduction
Câu hỏi:
Phân phối mức giảm HbA1c ở hai nhóm có giống nhau không?
Prompt AI mẫu
Write Python code using seaborn to create a box plot comparing HbA1c_reduction between Treatment A and Treatment B.
Requirements:
1. Show median and IQR
2. Overlay individual data points
3. Add group sample sizes to x-axis labels
4. Add p-value from Mann-Whitney U test
5. Use a clean publication theme
6. Export as 300 DPI PNG and PDF
7. Write a figure legend
Khi nào box plot tốt hơn bar chart?
- Dữ liệu lệch.
- Có outliers.
- Muốn thấy phân phối.
- Cỡ mẫu không quá nhỏ.
- Không muốn chỉ trình bày mean.
C. Scatter plot BMI và HbA1c
Câu hỏi:
BMI có liên quan đến HbA1c nền không?
Prompt AI mẫu
Create a scatter plot to show the association between BMI and baseline HbA1c.
Dataset columns:
- BMI
- HbA1c_baseline
Requirements:
1. Plot individual points
2. Add linear regression line with 95% CI
3. Calculate Pearson and Spearman correlation
4. Annotate correlation coefficient and p-value
5. Label axes clearly
6. Use publication-quality formatting
7. Export as PNG 300 DPI and PDF
Diễn giải mẫu
BMI showed a weak positive correlation with baseline HbA1c. However, this association does not imply causality.
Bản tiếng Việt:
BMI có tương quan dương yếu với HbA1c nền. Tuy nhiên, mối liên quan này không chứng minh quan hệ nhân quả.
Thực hành 2: Advanced Charts — 20 phút
Khung chương trình gốc đưa các advanced charts gồm CONSORT flow diagram, Kaplan–Meier survival curve và forest plot.
A. CONSORT Flow Diagram
Tình huống:
Một nghiên cứu RCT có dữ liệu:
| Giai đoạn | Số lượng |
|---|---|
| Assessed for eligibility | 350 |
| Excluded | 80 |
| Randomized | 270 |
| Allocated to Treatment A | 135 |
| Allocated to Treatment B | 135 |
| Lost to follow-up A | 10 |
| Lost to follow-up B | 12 |
| Analyzed A | 125 |
| Analyzed B | 123 |
Prompt AI mẫu
Create the text content for a CONSORT flow diagram using the following numbers:
- Assessed for eligibility: 350
- Excluded: 80
- Randomized: 270
- Allocated to Treatment A: 135
- Allocated to Treatment B: 135
- Lost to follow-up in Treatment A: 10
- Lost to follow-up in Treatment B: 12
- Analyzed in Treatment A: 125
- Analyzed in Treatment B: 123
Please:
1. Organize into CONSORT flow structure
2. Provide box text for each step
3. Suggest layout for PowerPoint or Draw.io
4. Write a short figure legend
Công cụ dựng
- PowerPoint.
- Draw.io.
- Canva.
- CONSORT diagram template.
B. Kaplan–Meier Curve
Khi dùng:
- Có thời gian theo dõi.
- Có biến cố.
- Có censoring.
Ví dụ:
So sánh thời gian tái nhập viện giữa hai nhóm sau xuất viện.
Biến cần có
| Biến | Ý nghĩa |
|---|---|
| time | Thời gian theo dõi |
| event | 1 = có biến cố, 0 = censored |
| group | Treatment A/B |
Prompt AI mẫu
Write Python code to create a Kaplan-Meier survival curve.
Dataset columns:
- time: follow-up time in days
- event: 1 if readmission occurred, 0 if censored
- group: Treatment A or Treatment B
Requirements:
1. Plot Kaplan-Meier curves by group
2. Add number at risk table if possible
3. Add log-rank test p-value
4. Label axes clearly
5. Use publication-ready formatting
6. Export as PNG 300 DPI and PDF
7. Write a figure legend
C. Forest Plot cho hồi quy logistic
Tình huống:
Outcome: đạt HbA1c <7% sau 12 tuần.
Predictors:
- Treatment A vs B.
- Age.
- BMI.
- Duration_DM.
- Baseline_HbA1c.
Prompt AI mẫu
I have logistic regression results with adjusted odds ratios:
Variable, OR, lower_CI, upper_CI, p_value:
Treatment A vs B, 1.80, 1.10, 2.95, 0.02
Age, 0.98, 0.95, 1.01, 0.18
BMI, 0.92, 0.86, 0.99, 0.03
Duration_DM, 0.90, 0.84, 0.97, 0.005
Baseline_HbA1c, 0.70, 0.58, 0.84, <0.001
Create Python code for a forest plot:
1. Use log scale for OR
2. Add vertical reference line at OR=1
3. Show OR and 95% CI
4. Mark statistically significant variables
5. Use publication-ready formatting
6. Export PNG 300 DPI and PDF
7. Write a figure legend
Thực hành 3: Interactive Dashboard — 15 phút
Khung chương trình gốc yêu cầu học viên tạo dashboard tương tác bằng Flourish hoặc Google Data Studio, gồm demographics, outcomes by group và subgroup analyses.
Mục tiêu
Tạo dashboard đơn giản cho báo cáo nội bộ bệnh viện.
Nội dung dashboard
- Tổng số bệnh nhân.
- Tuổi trung bình.
- Tỷ lệ nữ.
- HbA1c nền.
- HbA1c reduction theo nhóm.
- Tỷ lệ đạt HbA1c <7%.
- Kết quả theo subgroup: giới, nhóm tuổi, BMI.
Công cụ
- Flourish.
- Datawrapper.
- Google Looker Studio.
- Excel dashboard nếu không có internet tốt.
Lưu ý bảo mật
Không upload dữ liệu có:
- Tên bệnh nhân.
- Mã hồ sơ.
- Ngày sinh đầy đủ.
- Số điện thoại.
- Địa chỉ.
- Thông tin có thể định danh.
Nếu dùng dashboard cloud, hãy dùng dữ liệu giả lập hoặc đã ẩn danh kỹ. Đừng để dashboard đẹp quá rồi vô tình thành “phòng trưng bày dữ liệu bệnh nhân”.
PHẦN 9: VIẾT FIGURE LEGEND VÀ RESULTS TEXT
9.1. Figure legend cho bar chart
Figure 1. Mean HbA1c reduction after 12 weeks in Treatment A and Treatment B groups. Error bars represent 95% confidence intervals. Individual points represent participants. The p-value was calculated using an independent t-test.
9.2. Figure legend cho box plot
Figure 2. Distribution of HbA1c reduction after 12 weeks by treatment group. Boxes represent the interquartile range, horizontal lines indicate medians, whiskers indicate 1.5 times the interquartile range, and dots represent individual participants.
9.3. Figure legend cho scatter plot
Figure 3. Association between BMI and baseline HbA1c. The solid line represents the fitted linear regression line, and the shaded area represents the 95% confidence interval.
9.4. Results text mẫu
The mean HbA1c reduction was greater in the Treatment A group than in the Treatment B group (1.2% vs. 0.6%; mean difference, 0.6%; 95% CI, 0.2–1.0; p = 0.004; Figure 1).
Bản tiếng Việt:
Mức giảm HbA1c trung bình ở nhóm Treatment A cao hơn nhóm Treatment B (1,2% so với 0,6%; khác biệt trung bình 0,6%; KTC 95%: 0,2–1,0; p = 0,004; Hình 1).
PHẦN 10: KIỂM TRA BIỂU ĐỒ TRƯỚC KHI ĐƯA VÀO BÀI BÁO
10.1. Checklist nội dung
- Biểu đồ trả lời đúng câu hỏi nghiên cứu.
- Loại biểu đồ phù hợp với loại dữ liệu.
- Không có dữ liệu định danh.
- Số liệu trong biểu đồ khớp bảng phân tích.
- Có cỡ mẫu.
- Có đơn vị đo.
- Có uncertainty: SD, IQR hoặc 95% CI.
- Có p-value chính xác nếu cần.
- Không kết luận quá mức.
- Có figure legend đầy đủ.
10.2. Checklist thiết kế
- Font đủ lớn.
- Trục x/y rõ.
- Màu thân thiện với người mù màu.
- Không dùng 3D chart.
- Không dùng quá nhiều màu.
- Không có gridlines dư thừa.
- Legend không che dữ liệu.
- Hình vẫn đọc được khi in đen trắng.
- Xuất file đúng định dạng.
- Có bản code để tái lập.
PHẦN 11: CASE STUDY THẢO LUẬN
Case 1: Biểu đồ cột che giấu phân phối
Một nhóm báo cáo HbA1c reduction bằng bar chart mean ± SD. Tuy nhiên, dữ liệu có nhiều outliers và phân phối lệch mạnh.
Câu hỏi
- Bar chart có phù hợp không?
- Biểu đồ nào tốt hơn?
- Cần báo cáo thêm gì?
Gợi ý trả lời
Box plot hoặc violin plot kèm individual data points sẽ phù hợp hơn. Cần báo cáo median, IQR nếu dữ liệu lệch nhiều. Có thể giữ bar chart nếu mục tiêu là mean difference, nhưng nên kiểm tra giả định và không che giấu outliers.
Case 2: Pie chart có 12 nhóm
Một biểu đồ thể hiện 12 loại biến chứng bằng pie chart. Người xem không phân biệt được lát nào với lát nào.
Câu hỏi
- Vấn đề là gì?
- Biểu đồ nào thay thế tốt hơn?
- Có nên gộp nhóm không?
Gợi ý trả lời
Bar chart sắp xếp giảm dần sẽ dễ đọc hơn. Các nhóm hiếm có thể gộp thành “Other” nếu hợp lý và được chú thích rõ.
Case 3: ROC curve đẹp nhưng không có calibration
Một mô hình dự đoán tái nhập viện có AUROC 0.86. Nhóm nghiên cứu chỉ báo cáo ROC curve và kết luận mô hình sẵn sàng triển khai.
Câu hỏi
- Thiếu gì?
- Có thể kết luận triển khai chưa?
- Cần thêm biểu đồ nào?
Gợi ý trả lời
Thiếu calibration plot, decision curve, external validation và phân tích subgroup. AUROC tốt không đủ để triển khai lâm sàng.
Case 4: Forest plot không ghi mô hình hiệu chỉnh
Một forest plot trình bày adjusted OR nhưng không nói đã hiệu chỉnh biến nào.
Câu hỏi
- Vì sao nguy hiểm?
- Cần bổ sung gì trong legend?
- Có cần ghi rõ reference category không?
Gợi ý trả lời
Người đọc không biết OR là crude hay adjusted. Cần ghi mô hình đã hiệu chỉnh các biến nào, reference category, outcome và ý nghĩa OR >1.
PHẦN 12: PROMPT THƯ VIỆN CHO BÀI 13
Prompt 1: Chọn loại biểu đồ
Tôi có kết quả nghiên cứu sau:
Câu hỏi nghiên cứu:
[Dán câu hỏi]
Loại biến:
- Outcome:
- Predictor/group:
- Số nhóm:
- Có thời gian theo dõi không:
- Có phân phối lệch không:
- Mục tiêu: mô tả / so sánh / tương quan / dự đoán / sống còn
Hãy gợi ý:
1. Loại biểu đồ phù hợp nhất
2. Vì sao chọn biểu đồ đó
3. Biểu đồ thay thế nếu dữ liệu không đạt giả định
4. Những thông tin bắt buộc cần ghi trên hình
5. Figure legend mẫu
Prompt 2: Tạo publication-ready figure bằng Python
Tôi muốn tạo biểu đồ publication-ready từ dataset CSV.
Thông tin:
- File:
- Biến x:
- Biến y:
- Biến nhóm:
- Test thống kê đã dùng:
- Effect size:
- p-value:
- 95% CI:
Hãy viết code Python dùng matplotlib/seaborn để:
1. Load dữ liệu
2. Kiểm tra missing values trong các biến cần vẽ
3. Tạo biểu đồ phù hợp
4. Thêm cỡ mẫu mỗi nhóm
5. Thêm 95% CI/error bars nếu phù hợp
6. Thêm p-value annotation
7. Dùng bảng màu thân thiện với người mù màu
8. Xuất PNG 300 DPI và PDF
9. Viết figure legend
10. Comment code bằng tiếng Việt
Prompt 3: Tạo figure bằng R ggplot2
Tôi muốn tạo biểu đồ bằng R ggplot2.
Dataset:
[Dán mô tả dataset]
Mục tiêu biểu đồ:
[Mô tả]
Biến:
- x:
- y:
- group:
- facet nếu có:
Yêu cầu:
1. ggplot2 code đầy đủ
2. Theme sạch, phù hợp publication
3. Colorblind-friendly palette
4. Axis labels có đơn vị
5. Export bằng ggsave ở 300 DPI
6. Figure legend bằng tiếng Anh
Prompt 4: Kiểm tra biểu đồ có gây hiểu nhầm không
Dưới đây là mô tả biểu đồ của tôi:
Loại biểu đồ:
Dữ liệu:
Trục x:
Trục y:
Màu sắc:
Error bars:
p-value:
Caption:
Hãy đóng vai reviewer khó tính và đánh giá:
1. Biểu đồ có phù hợp với dữ liệu không?
2. Có thiếu cỡ mẫu, đơn vị hoặc uncertainty không?
3. Có nguy cơ gây hiểu nhầm không?
4. Caption đã đủ chưa?
5. Nên sửa gì trước khi đưa vào manuscript?
Prompt 5: Viết Results text từ biểu đồ
Dưới đây là thông tin biểu đồ:
Figure type:
Key result:
Group values:
Effect size:
95% CI:
p-value:
Statistical test:
Hãy viết đoạn Results 2–4 câu cho manuscript.
Yêu cầu:
- Khách quan, không bàn luận nguyên nhân
- Có nhắc Figure number
- Báo cáo effect size và 95% CI
- Không phóng đại
- Có bản tiếng Việt và tiếng Anh
PHẦN 13: LỖI THƯỜNG GẶP VÀ CÁCH SỬA
| Lỗi | Ví dụ | Cách sửa |
|---|---|---|
| Chọn sai biểu đồ | Pie chart cho 12 nhóm | Dùng bar chart |
| Không ghi đơn vị | HbA1c reduction không ghi % | Thêm đơn vị vào trục |
| Không ghi cỡ mẫu | Hai nhóm không biết n | Ghi n trên label hoặc caption |
| Error bars không rõ | Không biết SD hay CI | Ghi rõ trong legend |
| Dùng 3D chart | Cột 3D bóp méo dữ liệu | Dùng 2D |
| Màu khó đọc | Đỏ/xanh lá | Dùng colorblind-friendly palette |
| Font quá nhỏ | Không đọc được trên slide | Tăng font, giảm chi tiết |
| Chỉ báo p-value | Không có effect size | Thêm mean difference/OR/CI |
| Biểu đồ không khớp bảng | Số liệu lệch | Kiểm tra code và dữ liệu |
| AI tự thêm dữ liệu | Code tạo sample data rồi vẽ | Chỉ dùng dữ liệu thật hoặc ghi rõ dữ liệu giả lập |
PHẦN 14: BÀI TẬP VỀ NHÀ
Bài tập chính: Figure Package cho manuscript
Mỗi học viên dùng dataset của mình hoặc dataset mẫu để tạo một bộ hình khoa học.
Yêu cầu nộp
- Figure 1: Biểu đồ mô tả hoặc so sánh
- Ví dụ: bar chart, box plot, histogram.
- Có cỡ mẫu, đơn vị, caption.
- Figure 2: Biểu đồ phân tích chính
- Ví dụ: outcome chính giữa hai nhóm, scatter plot, forest plot.
- Có effect size/CI/p-value nếu phù hợp.
- Figure 3: Biểu đồ nâng cao
- ROC curve, Kaplan–Meier curve, forest plot, CONSORT diagram hoặc dashboard screenshot.
- Figure legends
- Mỗi hình có legend tiếng Anh hoặc tiếng Việt học thuật.
- Code hoặc mô tả workflow
- Python/R code, hoặc screenshot workflow nếu dùng no-code tool.
- Reflection 150–200 từ
- AI giúp gì?
- AI gợi ý sai gì?
- Bạn kiểm tra số liệu trong hình thế nào?
- Biểu đồ nào bạn đã bỏ vì không phù hợp?
Mẫu bài nộp
Tên đề tài:
Hiệu quả của Treatment A so với Treatment B trong cải thiện HbA1c ở bệnh nhân đái tháo đường type 2.
Figure 1:
Box plot mô tả phân phối HbA1c_reduction theo nhóm điều trị.
Figure 2:
Bar chart với mean difference và 95% CI cho HbA1c_reduction.
Figure 3:
Forest plot trình bày adjusted OR cho khả năng đạt HbA1c <7%.
AI use:
ChatGPT được dùng để tạo code Python ban đầu và viết figure legend. Toàn bộ số liệu trong hình được đối chiếu với bảng phân tích từ SPSS.
PHẦN 15: RUBRIC CHẤM ĐIỂM
| Tiêu chí | Điểm |
|---|---|
| Chọn biểu đồ phù hợp với dữ liệu và câu hỏi | 2 |
| Hình rõ, dễ đọc, có nhãn trục và đơn vị | 1.5 |
| Có cỡ mẫu, uncertainty, p-value/effect size khi phù hợp | 1.5 |
| Figure legend đầy đủ | 1 |
| Hình đạt chuẩn publication hoặc gần publication-ready | 1 |
| Code/workflow có thể tái lập | 1 |
| Biểu đồ nâng cao hoặc dashboard hợp lý | 1 |
| Reflection về sử dụng AI có trách nhiệm | 1 |
| Tổng | 10 |
PHẦN 16: CHECKLIST SAU BÀI HỌC
Checklist kiến thức
- Biết chọn biểu đồ theo loại dữ liệu.
- Biết khi nào dùng bar chart.
- Biết khi nào dùng box plot.
- Biết khi nào dùng scatter plot.
- Biết ý nghĩa ROC curve.
- Biết Kaplan–Meier dùng cho dữ liệu sống còn.
- Biết forest plot dùng cho OR/HR/RR hoặc meta-analysis.
- Biết figure legend cần những gì.
Checklist kỹ năng
- Tạo được ít nhất 1 biểu đồ bằng Python/R.
- Tạo được biểu đồ có error bars.
- Thêm được p-value annotation.
- Xuất được hình 300 DPI.
- Tạo được caption/legend.
- Biết dùng AI để sửa code.
- Biết kiểm tra số liệu trong biểu đồ.
- Biết dùng no-code tool nếu cần.
Checklist đạo đức và bảo mật
- Không đưa dữ liệu định danh lên AI/no-code cloud.
- Không để AI tạo dữ liệu giả cho nghiên cứu thật.
- Không dùng hình gây hiểu nhầm.
- Không chỉnh trục để phóng đại kết quả.
- Không che giấu outliers nếu chúng quan trọng.
- Có lưu code hoặc workflow.
- Có khai báo AI nếu AI hỗ trợ đáng kể trong phân tích/hình ảnh.
PHẦN 17: THÔNG ĐIỆP KẾT THÚC
Bài 13 giúp học viên biến kết quả phân tích thành hình ảnh khoa học rõ ràng, chính xác và thuyết phục.
Hãy nhớ 8 câu:
1. Biểu đồ tốt bắt đầu từ câu hỏi tốt.
2. Đừng hỏi “biểu đồ nào đẹp”, hãy hỏi “biểu đồ nào giúp hiểu đúng kết quả”.
3. Clarity > complexity. Hình càng rối, reviewer càng cau mày.
4. Luôn ghi cỡ mẫu, đơn vị và uncertainty.
5. p-value không đủ; effect size và confidence interval mới làm biểu đồ có chiều sâu.
6. AI viết code rất nhanh, nhưng bạn phải kiểm tra từng con số.
7. Biểu đồ đẹp mà sai dữ liệu là tai nạn học thuật mặc áo thiết kế.
8. Một hình tốt có thể giúp người đọc hiểu trong 5 giây điều mà một bảng số cần 5 phút mới giải thích được.
Soạn giả: Jack Doan
Phiên bản: 1.0
- Đăng nhập để gửi ý kiến