
Đường cong ROC là gì? Cách đọc và chạy trong SPSS
Đường cong ROC là gì
Bạn dùng đường cong ROC khi muốn đánh giá một biến hoặc một mô hình có phân biệt được hai nhóm hay không. Ví dụ, mô hình dự đoán khách hàng có mua sản phẩm hay không, bệnh nhân có nguy cơ hay không, hoặc người trả lời thuộc nhóm đạt và chưa đạt. Kết quả đầu ra thường gồm một biểu đồ ROC, bảng Area Under the Curve và bảng Coordinates of the Curve.
ROC là viết tắt của Receiver Operating Characteristic. Đường cong này đặt 1 - Specificity trên trục hoành và Sensitivity trên trục tung, tương ứng với nhiều ngưỡng phân loại khác nhau. Mỗi ngưỡng tạo ra một cặp Sensitivity và Specificity. Khi nối các điểm đó lại, bạn có đường cong ROC.
Chỉ số thường được đọc cùng ROC là AUC, viết đầy đủ là Area Under the Curve. AUC là diện tích nằm dưới đường cong ROC, phản ánh khả năng xếp hạng một quan sát thuộc nhóm dương tính cao hơn một quan sát thuộc nhóm âm tính. AUC càng lớn thì khả năng phân biệt của biến hoặc mô hình càng tốt trong chính mẫu dữ liệu bạn đang phân tích.
ROC không trả lời toàn bộ câu hỏi về mô hình. Nó không tự cho biết mô hình có phù hợp với mục tiêu nghiên cứu, có gây ra nhiều false positive hay false negative, hoặc ngưỡng nào phù hợp khi triển khai thực tế. Bạn cần đọc ROC cùng bối cảnh nghiên cứu và chi phí của từng loại sai phân loại.
Ý nghĩa của đường cong ROC trong nghiên cứu định lượng
Trong nghiên cứu định lượng, đường cong ROC giúp bạn đánh giá một biến dự báo hoặc điểm số phân loại trước khi chọn một cut-off. Nếu biến kết quả có hai nhóm, chẳng hạn 0 = không mua và 1 = có mua, bạn có thể kiểm tra xem điểm dự báo có phân biệt được hai nhóm này không.
Khi chọn một ngưỡng, bạn đang biến một điểm số liên tục thành quyết định nhị phân. Những người có điểm từ ngưỡng trở lên được dự đoán là nhóm dương tính, còn những người dưới ngưỡng được dự đoán là nhóm âm tính. Ngưỡng thấp thường bắt được nhiều trường hợp dương tính hơn nhưng có thể làm tăng số trường hợp báo động nhầm. Ngưỡng cao có thể giảm báo động nhầm nhưng bỏ sót nhiều trường hợp dương tính.
Có bốn khái niệm bạn nên giữ riêng khi đọc ROC:
- Sensitivity cho biết tỷ lệ các trường hợp thật sự dương tính được mô hình nhận diện đúng.
- Specificity cho biết tỷ lệ các trường hợp thật sự âm tính được nhận diện đúng.
- False positive là trường hợp thực tế âm tính nhưng mô hình dự đoán dương tính.
- False negative là trường hợp thực tế dương tính nhưng mô hình dự đoán âm tính.
AUC tóm tắt khả năng phân biệt qua nhiều ngưỡng, còn Sensitivity và Specificity tại một ngưỡng cụ thể giúp bạn ra quyết định phân loại. Vì vậy, chỉ báo cáo AUC mà không xem Coordinates of the Curve là chưa đủ nếu đề tài cần đề xuất một cut-off.
ROC khác mục tiêu với ANOVA hoặc t-test. ANOVA tập trung vào sự khác biệt trung bình giữa các nhóm, còn t-test thường kiểm tra sự khác biệt trung bình giữa hai nhóm. Bạn có thể xem thêm các bài ANOVA trong nghiên cứu định lượng, t test và kiểm định t test nếu đang nhầm giữa câu hỏi so sánh trung bình và câu hỏi phân loại.
Đường cong ROC bao nhiêu là tốt
Câu hỏi “đường cong ROC bao nhiêu là tốt” thường thực chất đang hỏi AUC bao nhiêu là chấp nhận được. Tuy nhiên, bộ nguồn được phép trích dẫn của DoThesis không có tài liệu chuẩn hóa các mốc AUC cụ thể. Vì vậy, bạn không nên tự đưa các mốc số quen thuộc vào luận văn rồi ghi như một quy tắc có tính phổ quát.
Bạn có thể kết luận thận trọng theo ba lớp. Thứ nhất, xem AUC có cho thấy khả năng phân biệt tốt hơn mức ngẫu nhiên trong mẫu hay không. Thứ hai, kiểm tra khoảng tin cậy và kiểm định đi kèm trong output, nếu phiên bản SPSS của bạn cung cấp. Thứ ba, xem Sensitivity và Specificity tại ngưỡng bạn định sử dụng có phù hợp với mục tiêu thực tế hay không.
Bảng dưới đây là khung quyết định để bạn không biến một con số AUC thành kết luận quá mức. Đây là hướng đọc kết quả, không phải bảng ngưỡng được gán cho một nguồn ngoài danh mục cho phép.
| Thành phần cần đọc | Câu hỏi cần trả lời | Cách diễn giải thận trọng |
|---|---|---|
| AUC | Biến hoặc mô hình có phân biệt hai nhóm trong mẫu không | AUC càng lớn, khả năng xếp hạng hai nhóm càng tốt, nhưng cần xem khoảng tin cậy và bối cảnh |
| Đường ROC | Đường cong nằm ở vị trí nào so với đường tham chiếu | Đường cong càng lệch về góc trên bên trái thì nhiều ngưỡng cho sự cân bằng tốt hơn |
| Sensitivity | Mô hình bắt được bao nhiêu trường hợp dương tính | Ưu tiên chỉ số này khi bỏ sót nhóm dương tính có hậu quả lớn |
| Specificity | Mô hình loại đúng bao nhiêu trường hợp âm tính | Ưu tiên chỉ số này khi báo động nhầm gây chi phí hoặc xử lý không cần thiết |
| Coordinates of the Curve | Ngưỡng nào tạo ra cặp chỉ số phù hợp | Chọn ngưỡng theo mục tiêu nghiên cứu, không chỉ chọn dòng có AUC cao nhất |
Bạn cũng cần phân biệt đánh giá khả năng phân biệt với đánh giá độ phù hợp hoặc hiệu chỉnh. Một mô hình có AUC tốt vẫn có thể dự báo xác suất lệch so với tỷ lệ thực tế. Nếu luận văn của bạn chỉ dùng ROC để chọn cut-off, hãy nói đúng phạm vi đó và không gọi ROC là bằng chứng cho mọi mặt của mô hình.
Cách đọc đường cong ROC trên output
Trong SPSS, bảng quan trọng nhất thường là Area Under the Curve. Bạn tìm dòng tương ứng với biến kiểm định và đọc cột Area, Std. Error, Asymptotic Sig. cùng khoảng tin cậy nếu có. Area chính là AUC. Asymptotic Sig. là p-value của kiểm định so sánh AUC với mức tham chiếu do SPSS sử dụng, nên bạn cần đọc tên và chú thích trong chính output của phiên bản đang dùng.
Tiếp theo, xem biểu đồ ROC Curve. Trục dọc là Sensitivity, còn trục ngang là 1 - Specificity. Đường chéo thường được dùng làm đường tham chiếu cho khả năng phân loại ngẫu nhiên. Đừng đọc trục ngang là Specificity, vì làm vậy bạn sẽ diễn giải ngược chiều.
Sau đó mở bảng Coordinates of the Curve. Cột Positive if Greater Than or Equal To cho biết ngưỡng mà SPSS đang xét. Các cột còn lại thường chứa Sensitivity và 1 - Specificity. Muốn suy ra Specificity, bạn lấy 1 trừ giá trị ở cột 1 - Specificity. Tên cột có thể khác đôi chút tùy phiên bản và cách chọn tùy chọn trong hộp thoại.
Số liệu minh họa
Bảng dưới đây là số liệu minh họa, không phải kết quả của một nghiên cứu thật. Cấu trúc được viết theo các trường thường gặp trong output SPSS để bạn biết cần tìm gì trong file của mình.
| Bảng output SPSS | Chỉ số hoặc dòng | Giá trị minh họa | Cách đọc |
|---|---|---|---|
| Area Under the Curve | Area | 0.781 | Biến kiểm định có khả năng phân biệt hai nhóm ở mức thể hiện qua AUC này trong mẫu minh họa |
| Area Under the Curve | Std. Error | 0.036 | Sai số chuẩn của AUC, dùng cùng khoảng tin cậy và kiểm định |
| Area Under the Curve | Asymptotic Sig. | 0.001 | p-value do SPSS báo cho kiểm định của AUC |
| Coordinates of the Curve | Positive if Greater Than or Equal To | 3.50 | Ngưỡng đang xét |
| Coordinates of the Curve | Sensitivity | 0.744 | Tỷ lệ nhóm dương tính được nhận diện đúng tại ngưỡng này |
| Coordinates of the Curve | 1 - Specificity | 0.214 | Phần âm tính bị dự đoán dương tính tại ngưỡng này |
| Coordinates of the Curve | Specificity, tính từ dòng trên | 0.786 | Một trừ 0.214, nếu cột được hiển thị là 1 - Specificity |
Từ dòng minh họa trên, bạn có thể mô tả rằng tại ngưỡng 3.50, Sensitivity là 0.744 và Specificity suy ra là 0.786. Đây chỉ là cách tính và cách viết số liệu. Khi làm bài, bạn phải thay bằng giá trị trong output của mình.
Đừng chọn ngưỡng chỉ vì nó nằm gần giữa bảng. Bạn cần xác định mục tiêu trước. Nếu đề tài coi việc bỏ sót trường hợp dương tính là nghiêm trọng, bạn có thể ưu tiên Sensitivity. Nếu việc gắn nhãn nhầm cho nhóm âm tính gây hậu quả lớn hơn, Specificity cần được cân nhắc nhiều hơn.
Khi đường cong ROC không đạt thì xử lý thế nào
Đầu tiên, kiểm tra mã hóa biến trạng thái. SPSS cần biết nhóm dương tính là giá trị nào. Nếu bạn đặt 1 = có và 0 = không nhưng khai báo nhầm giá trị dương tính, toàn bộ cách đọc Sensitivity, Specificity và hướng đường cong có thể bị đảo.
Thứ hai, kiểm tra biến kiểm định. Biến này thường là điểm số liên tục hoặc thứ hạng có ý nghĩa phân biệt. Nếu bạn đưa một biến định danh không có thứ tự vào Test Variable List, ROC sẽ không phản ánh đúng câu hỏi nghiên cứu.
Thứ ba, kiểm tra dữ liệu thiếu, các giá trị ngoài phạm vi và số lượng quan sát ở từng nhóm. Một nhóm quá ít quan sát có thể làm kết quả không ổn định. Bạn cũng nên xem có nhập nhầm mã 99, 999 hoặc giá trị tương tự vào biến phân tích hay không.
Thứ tư, thử lại với biến tổng hợp hoặc điểm dự báo được xây dựng đúng theo mô hình. Việc đổi biến chỉ để làm AUC đẹp hơn là khó giải trình. Nếu bỏ một biến hoặc thay đổi cách tính điểm, bạn cần ghi lại lý do lý thuyết và quy trình thực hiện.
Cuối cùng, nếu AUC chưa hỗ trợ mục tiêu phân loại, hãy thừa nhận giới hạn đó. Bạn có thể báo cáo rằng biến hoặc mô hình chưa cho thấy khả năng phân biệt đủ rõ trong mẫu nghiên cứu, thay vì liên tục thử nhiều cut-off để tìm một dòng có vẻ thuận lợi. Nếu câu hỏi thật sự là so sánh nhóm, hãy quay lại xác định có nên dùng t-test hoặc một phân tích khác hay không. Khi cần đối chiếu cách trình bày bảng phân tích nhóm, bạn có thể xem bảng ANOVA và one factor ANOVA.
Phân biệt đường cong ROC với Accuracy và AUC
ROC là biểu đồ và quy trình đánh giá nhiều ngưỡng. AUC là diện tích dưới đường cong. Accuracy là tỷ lệ dự đoán đúng tại một ngưỡng cụ thể. Ba khái niệm này liên quan nhưng không thay thế cho nhau.
Accuracy có thể gây hiểu nhầm khi hai nhóm mất cân bằng. Ví dụ, nếu phần lớn quan sát thuộc nhóm âm tính, một mô hình luôn dự đoán âm tính có thể có Accuracy nhìn qua khá cao nhưng bỏ sót toàn bộ nhóm dương tính. ROC cho phép xem sự đánh đổi giữa Sensitivity và Specificity qua nhiều ngưỡng, nên phù hợp hơn khi bạn chưa chốt cut-off.
AUC cũng không cho bạn biết ngưỡng triển khai. Hai mô hình có AUC tương tự nhau vẫn có thể cho Sensitivity và Specificity rất khác tại ngưỡng mà đề tài quan tâm. Vì vậy, nếu mục tiêu của bạn là đưa ra quy tắc “từ điểm bao nhiêu thì xếp vào nhóm dương tính”, bảng Coordinates of the Curve phải xuất hiện trong quá trình giải thích.
ROC cũng khác các kiểm định so sánh trung bình. Bạn có thể dùng các phân tích như ANOVA hoặc t-test để trả lời một câu hỏi khác, nhưng không nên lấy p-value của ANOVA để thay cho AUC hoặc dùng AUC để kết luận hai nhóm có trung bình khác nhau.
Lỗi thường gặp
Đọc nhầm trục hoành
Trục hoành của ROC là 1 - Specificity, không phải Specificity. Nếu bạn viết rằng đường cong đi lên khi Specificity tăng, câu diễn giải có thể bị ngược. Hãy nhìn nhãn trục trên biểu đồ trước khi mô tả.
Chỉ báo cáo AUC
AUC chưa cho biết cut-off nào được chọn. Một đoạn kết quả đầy đủ hơn cần nêu AUC, thông tin kiểm định hoặc khoảng tin cậy mà output cung cấp, cùng Sensitivity và Specificity tại ngưỡng được lựa chọn.
Tự gán nhãn “tốt” cho mọi AUC
Một con số cao hơn không tự động có nghĩa là mô hình phù hợp với mọi quyết định. Bạn cần nêu nhóm dương tính, biến kiểm định, cách mã hóa và mục đích chọn ngưỡng.
Chọn cut-off sau khi xem quá nhiều kết quả
Nếu bạn thử nhiều biến, nhiều cách tính điểm và nhiều ngưỡng nhưng chỉ báo cáo kết quả đẹp nhất, người đọc không biết quy trình thật. Hãy ghi lại các bước làm sạch, biến đưa vào ROC và lý do chọn ngưỡng cuối cùng.
Viết ROC như một bằng chứng nhân quả
ROC đánh giá khả năng phân biệt, không chứng minh biến dự báo gây ra kết quả. Kết luận của bạn nên dùng các cụm như “có khả năng phân biệt trong mẫu” hoặc “cho thấy hiệu năng phân loại”, tùy output thực tế.
Cách viết vào luận văn: “Kết quả phân tích ROC cho thấy biến [TÊN BIẾN] có AUC bằng [GIÁ TRỊ AUC], với [p-value/khoảng tin cậy] là [GIÁ TRỊ]. Tại ngưỡng [CẮT-OFF], Sensitivity đạt [GIÁ TRỊ] và Specificity đạt [GIÁ TRỊ]. Ngưỡng này được lựa chọn dựa trên mục tiêu [ưu tiên Sensitivity/ưu tiên Specificity/cân bằng hai chỉ số] của nghiên cứu.” Hãy thay toàn bộ phần trong ngoặc vuông bằng số liệu và lập luận thật của bạn.
Câu hỏi thường gặp
Đường cong ROC dùng cho biến nào
ROC thường được dùng khi biến trạng thái có hai nhóm và biến kiểm định có thể tạo ra nhiều mức điểm để phân loại. Trước khi chạy, bạn cần xác định rõ nhóm dương tính và nhóm âm tính, đồng thời kiểm tra cách mã hóa trong file SPSS.
Nếu biến kết quả có nhiều hơn hai nhóm, quy trình ROC nhị phân thông thường không trả lời trọn vẹn câu hỏi. Bạn cần xem lại mục tiêu phân tích và cách định nghĩa nhóm trước khi đưa dữ liệu vào SPSS.
Đường cong ROC trong SPSS nằm ở đâu
Trong SPSS, bạn vào Analyze > Classify > ROC Curve. Đưa biến điểm hoặc biến dự báo vào Test Variable, đưa biến trạng thái vào State Variable, sau đó khai báo giá trị đại diện cho nhóm dương tính. Kiểm tra lại tùy chọn hiển thị biểu đồ và bảng tọa độ trước khi bấm chạy.
Sau khi chạy, hãy tìm các bảng Area Under the Curve và Coordinates of the Curve. Nếu biểu đồ hoặc bảng không giống hướng dẫn, kiểm tra phiên bản SPSS và cách bạn khai báo State Variable.
AUC bằng bao nhiêu thì được xem là đạt
Không nên dùng một mốc AUC duy nhất cho mọi đề tài nếu bạn không có nguồn phù hợp và không xem bối cảnh quyết định. Hãy báo cáo giá trị AUC, khoảng tin cậy hoặc p-value mà output cung cấp, sau đó giải thích Sensitivity và Specificity tại ngưỡng được chọn.
Nếu mục tiêu là sàng lọc, bạn có thể ưu tiên bắt được nhiều trường hợp dương tính. Nếu mục tiêu là tránh báo động nhầm, Specificity có thể được đặt nặng hơn. Tiêu chí “đạt” cần gắn với câu hỏi nghiên cứu, không chỉ với một con số đứng riêng.
Vì sao đường cong ROC của tôi đi ngược
Nguyên nhân thường gặp là bạn khai báo sai giá trị dương tính trong State Variable hoặc biến kiểm định có chiều điểm ngược với trạng thái. Hãy kiểm tra lại mã 0 và 1, xem điểm cao đang đại diện cho nhóm nào, rồi chạy lại với khai báo đúng.
Bạn cũng cần chắc rằng không nhập mã thiếu như 99 vào biến phân tích. Một vài giá trị sai có thể làm thay đổi hướng đường cong và các chỉ số đi kèm.
Có cần đưa biểu đồ ROC vào chương 4 không
Nếu ROC là phân tích chính để đánh giá khả năng phân biệt hoặc chọn cut-off, bạn nên đưa biểu đồ hoặc bảng tóm tắt phù hợp vào chương kết quả. Phần diễn giải cần nêu biến trạng thái, biến kiểm định, AUC và chỉ số tại ngưỡng được chọn.
Bạn không nhất thiết chép toàn bộ output SPSS vào luận văn. Có thể giữ output đầy đủ trong phụ lục và trình bày bảng kết quả đã chọn trong chương 4, miễn là cách tính và tiêu chí chọn ngưỡng có thể kiểm tra lại.
Mở file SPSS của bạn, kiểm tra lại State Variable và Test Variable trước, sau đó chạy lại Area Under the Curve cùng Coordinates of the Curve để ghi đúng AUC, Sensitivity, Specificity và cut-off vào chương kết quả. Nếu cần chạy phân tích trên chính file .sav hoặc .csv, bạn có thể dùng module M4 phân tích của DoThesis.