ניתוח ROC

כמה טוב ציון – שאלון סינון, סולם, ציון סיכון או הסתברות ממודל – מבחין בין מי שיש לו מצב מסוים (אבחנה, נשירה, הצלחה) למי שאין? עקומת ה-ROC מציגה את הרגישות מול שיעור החיוביים-השגויים בכל הספים האפשריים, והשטח מתחתיה (AUC) מסכם אותה במספר אחד. העמוד מחשב את השטח עם טעות התקן ורווח הסמך של DeLong, מצייר את העקומות, מוצא את הסף לפי מדד יודן ומחשב בו רגישות, סגוליות, ערכים מנבאים ויחסי נראות – ובכל סף אחר שתבחרו – ומשווה בין כמה מדדים על אותם נבדקים במבחן של DeLong. הפלט: לוחות בפורמט APA, תרשים, פסקת ממצאים בעברית ובאנגלית, Word, סינטקס SPSS וקובץ אקסל עם כל הספים.

מחשבון

טעינת הנתונים

גוררים לכאן קובץ אקסל או קובץ SPSS (.sav), או לוחצים לבחירה
בתבנית התקנית של האתר: שורה = נבדק, עמודה = משתנה, שורת כותרות ראשונה. גם CSV מתקבל.
נדרשים משתנה מצב דו-ערכי – תקן הזהב (למשל 0 = אין אבחנה, 1 = יש) – ומדד מספרי אחד לפחות. אם המדד הוא הסתברות חזויה ממודל, הורידו אותה מעמוד רגרסיה לוגיסטית כעמודה בקובץ.
רוצים רק להתנסות? הורידו קובץ נתונים לדוגמה (220 משיבים במחקר תיקוף של שאלון סינון לדיכאון: אבחנה בראיון קליני, שאלון ארוך, גרסה קצרה וסולם רווחה נפשית, עם מקרא): דוגמה בעברית דוגמה באנגלית
או

מדביקים עמודות ישירות מהגיליון (כולל שורת הכותרות) – מסמנים באקסל, מעתיקים, ומדביקים כאן:

A
B
C
D
E
F
אפשר גם פשוט להדביק – הנתונים ייטענו ויוצגו אוטומטית.

בחירת המשתנים והגדרות

מדריך

מתי משתמשים?

כשיש תקן זהב – דרך מקובלת לקבוע מי במצב ומי לא (ראיון קליני, נשירה בפועל, הצלחה בבחינה) – ומדד מספרי שאמור לנבא אותו, ושואלים כמה טוב המדד מבחין בין שתי הקבוצות. הדוגמה הקלאסית היא תיקוף של שאלון סינון מול אבחנה, אבל השאלה רחבה יותר: Pepe (2003, עמ' 74) מזכירה שעקומת ה-ROC "מתארת את ההפרדה בין שתי התפלגויות", ולכן היא שימושית "בכל מקום שבו ההפרדה בין התפלגויות מעניינת" – ציון סיכון לנשירה מול נשירה, הסתברות חזויה מרגרסיה לוגיסטית מול התוצאה, ציון בחינת כניסה מול הצלחה בלימודים.

Pepe (2003, עמ' 73, לוח 4.1) מונה ארבעה שימושים: תיאור מלא של הביצועים האפשריים של המדד; השוואה ושילוב בין מחקרים שהשתמשו בספים שונים; הכוונה בבחירת סף; והשוואה בין מדדים שנמדדים בסולמות שונים – שאלון של 27 נקודות מול סולם של 1-5. כשהמדד עצמו כבר דו-ערכי (חיובי/שלילי), אין עקומה אלא נקודה אחת – לוח 2×2; מבחן הקשר שלו – בעמוד חי-בריבוע. ומדדי הביצוע של מודל למידת מכונה – כולל ROC מול עקומת precision-recall במחלקה נדירה – בעמוד מדדי ביצוע ואימות למודל.

ההיגיון: מסף אחד לכל הספים

סף אחד. כדי להחליט על סמך ציון, קובעים סף: מי שמעליו "חיובי". Pepe (2003, עמ' 67) מסבירה שבחירת הסף "תשתנה עם הנסיבות" – משאבים, מחיר הבירור או הטיפול, חומרת המצב – ושהיא נשענת על הפשרה המקובלת "בין אי-גילוי המצב לבין זיהוי שגוי שלו". בסף נתון מקבלים לוח 2×2 ושני שיעורים: רגישות – שיעור המזוהים מבין מי שבמצב (שיעור החיוביים-האמיתיים), וסגוליות – שיעור השליליים מבין מי שאינו במצב; 1 − סגוליות הוא שיעור החיוביים-השגויים (Fawcett, 2006, p. 862).

כל הספים. העקומה היא אוסף כל זוגות (שיעור חיוביים-שגויים, רגישות) שאפשר להשיג בהזזת הסף (Pepe, 2003, p. 67, Equation 4.3) – "אמצעי שפשוט מתאר את טווח הפשרות שהבדיקה יכולה להשיג". הפינה השמאלית העליונה, (0, 1), היא סיווג מושלם; האלכסון הוא ניחוש אקראי – מי שמנחש "חיובי" ב-70% מהמקרים יקבל 70% רגישות ו-70% חיוביים-שגויים (Fawcett, 2006, pp. 862-863). נקודות בצד השמאלי של העקומה הן ספים "שמרניים" – חיובי רק עם ראיות חזקות, מעט התראות שווא ומעט גילויים; בצד הימני העליון – "ליברליים" (Fawcett, 2006, p. 863).

רק הסדר חשוב. העקומה אינה משתנה בשום טרנספורמציה עולה של הציון (Pepe, 2003, עמ' 69, תוצאה 4.1), והעקומה האמפירית "היא פונקציה של הדירוגים בלבד" (Pepe, 2003, p. 98). לכן משווים בה מדדים ביחידות שונות, ולכן היא מתאימה גם לציון סדר עם מעט ערכים – אז העקומה מדורגת, עם קפיצות גדולות וקטעים אלכסוניים במקומות שבהם יש שוויון בין מי שבמצב למי שלא (Pepe, 2003, p. 98).

השטח מתחת לעקומה

השטח מתחת לעקומה (AUC) הוא 1 במדד מושלם ו-0.5 במדד חסר מידע (Pepe, 2003, p. 77). יש לו שתי קריאות, והמקורות חלוקים באיזו להעדיף – ולכן "גם וגם":

הסתברות לדירוג נכון. השטח הוא ההסתברות שנבדק אקראי מקבוצת המצב יקבל ציון גבוה יותר מנבדק אקראי מהקבוצה האחרת (Hanley & McNeil, 1982, p. 29; Fawcett, 2006, p. 868), וזו בדיוק הכמות שאומד מבחן מאן-ויטני (וילקוקסון לשני מדגמים): השטח מתחת לעקומה האמפירית שווה לסטטיסטי U חלקי מספר הזוגות (Pepe, 2003, עמ' 103, תוצאה 5.3; Hanley & McNeil, 1982, עמ' 31-32). שוויון בין שני נבדקים נספר כחצי. Hanley ו-McNeil (1982, עמ' 31) מדגישים שהקשר הזה "אינו מניח דבר על צורת ההתפלגויות" – בניגוד לשטח של העקומה החלקה, שנשען על שתי התפלגויות נורמליות.

רגישות ממוצעת. Pepe (2003, עמ' 78-79) אינה משוכנעת: הדירוג הנכון של זוג "אינו משכנע במיוחד" כשאלה קלינית – הוא טבעי בניסוי בחירה כפויה מתוך זוג תמונות, לא בשימוש בבדיקה – והיא מעדיפה לקרוא את השטח "כרגישות ממוצעת, על פני כל טווח שיעורי החיוביים-השגויים". שתי הקריאות נכונות מתמטית; הראשונה נוחה להסבר, השנייה מזכירה שהשטח ממצע גם על ספים שאיש לא ישתמש בהם.

מה השטח מסתיר. שני מדדים עם אותו שטח יכולים להיות שונים מאוד באזור שחשוב לכם: "ייתכן שמסווג עם AUC גבוה יתפקד גרוע יותר באזור מסוים של מרחב ה-ROC ממסווג עם AUC נמוך" (Fawcett, 2006, p. 868), ומעקומה טובה יותר בכל מקום נובע שטח גדול יותר, אבל "ההפך אינו בהכרח נכון" (Pepe, 2003, p. 77). בסינון אוכלוסייה, למשל, רק ספים עם מעט חיוביים-שגויים ישימים, ושם רק החלק השמאלי של העקומה רלוונטי (Pepe, 2003, p. 75) – לכך יש השטח החלקי (pAUC; Pepe, 2003, p. 79), שהעמוד אינו מחשב. לכן העמוד מציג תמיד את העקומה ולא רק את השטח. מקדם ג'יני, שמופיע בספרות למידת המכונה, הוא 2·AUC − 1 (Hand & Till, 2001, כמצוטטים אצל Fawcett, 2006, עמ' 868).

שטח מתחת ל-0.5. "שום מסווג מציאותי לא אמור לקבל AUC נמוך מ-0.5" (Fawcett, 2006, p. 868): מדד מתחת לאלכסון "מכיל מידע שימושי, אבל מיישם אותו לא נכון" (Flach & Wu, 2003, כמצוטטים אצל Fawcett, 2006, עמ' 863) – כמעט תמיד הכיוון הוגדר הפוך. העמוד מזהיר במקרה כזה.

טעות תקן, רווח סמך ומבחן

טעות התקן של DeLong. DeLong, DeLong ו-Clarke-Pearson (1988, עמ' 839-840) מפרקים את השטח ל"מרכיבים מבניים": לכל נבדק מקבוצת המצב – שיעור הנבדקים מהקבוצה האחרת שהוא עוקף; לכל נבדק מהקבוצה האחרת – שיעור הנבדקים מקבוצת המצב שעוקפים אותו. השונות של השטח היא השונות של המרכיבים הראשונים חלקי מספר המקרים, ועוד השונות של האחרונים חלקי מספר הביקורות. Pepe (2003, עמ' 105-106) קוראת למרכיבים האלה "ערכי מיקום" – איפה כל ציון ממוקם בהתפלגות של הקבוצה השנייה – ורואה בהם מושג "יסודי לניתוח ROC". זו טעות התקן הראשית בעמוד, וזו ש-R מחשב (pROC).

טעות התקן של Hanley ו-McNeil. הנוסחה הוותיקה (Hanley & McNeil, 1982, p. 32, Equation 1) נשענת על שתי הסתברויות: Q1 – ששני נבדקים מקבוצת המצב יעקפו שניהם נבדק מהקבוצה האחרת, ו-Q2 – שנבדק מקבוצת המצב יעקוף שניים מהקבוצה האחרת. העמוד מחשב אותן מהנתונים, עם שוויונות כמו בלוח II של המאמר (עמ' 31), וזו טעות התקן ש-PSPP מדפיס. שתי הנוסחאות קרובות כמעט תמיד. Hanley ו-McNeil (1982, עמ' 33, נוסחה 2) הציעו גם קירוב שתלוי רק בשטח – Q1 = θ/(2 − θ), Q2 = 2θ²/(1 + θ) – לתכנון גודל מדגם לפני שיש נתונים; לוח III במאמר (עמ' 34) נותן את מספרי הנבדקים הדרושים להשוואה בין שני שטחים.

רווח סמך – שני סוגים, "גם וגם". הנפוץ – השטח ועוד ופחות 1.96 טעויות תקן (DeLong), כמו ב-R. אבל השטח חסום ב-1, וכשהוא קרוב ל-1 ההתפלגות שלו "מוטה לכיוון 0.5" (Hanley & McNeil, 1982, p. 34), והרווח הסימטרי יכול לחרוג מ-1 (העמוד חותך אותו ב-1, כמו R). Pepe (2003, עמ' 107) מציעה רווח בסולם לוגיט – אסימטרי, תמיד בין 0 ל-1 – ומראה בסימולציה שבמדגמים קטנים ובשטחים גבוהים הכיסוי שלו טוב יותר (לוח 5.1); "בפועל אנו ממליצים" עליו. העמוד מציג את שניהם; פסקת הממצאים משתמשת ב-DeLong הסימטרי, שאפשר לשחזר ב-R וב-SPSS, ובשטח של .90 ומעלה או בקבוצה של פחות מ-30 נבדקים – עדיף לדווח את הלוגיט.

האם השטח גדול מ-0.5? העמוד מדווח z ו-p להשערת האפס שהמדד אינו מבחין (שטח 0.5), עם טעות התקן תחת השערת האפס – זה מבחן מאן-ויטני בקירוב הנורמלי, בלי תיקון לשוויונות, וזה ה-Asymptotic Sig. של PSPP. עם תיקון לשוויונות (עמוד מאן-ויטני) ה-p קטן במעט. מבחן כזה עונה על שאלה צנועה: במדגם גדול גם שטח של .58 "מובהק", ולכן מה שמדווחים הוא השטח ורווח הסמך שלו.

בחירת סף

מדד יודן. J = רגישות + סגוליות − 1, כלומר המרחק האנכי בין העקומה לאלכסון; הסף שממקסם אותו הוא ברירת המחדל של העמוד. Pepe (2003, עמ' 80) מציגה אותו כסיכום שהוצע "כשהמחיר של טעויות חיוביות-שגויות דומה בגודלו לזה של שליליות-שגויות" – וזו הנחה, לא עובדה. כשהמחירים שונים, הסף הנכון תלוי במחירים ובשכיחות המצב (Pepe, 2003, עמ' 72, תוצאה 4.5; Fawcett, 2006, עמ' 867, "קווי ביצוע שווה"): בסינון למצב מסוכן מעדיפים רגישות גבוהה גם במחיר התראות שווא; לפני התערבות יקרה – להפך. לכן העמוד מאפשר לבדוק כל סף, ומציג את כל הספים בלוח מלא. ואם יש סף מקובל בספרות למדד – מדווחים אותו, ולא את הסף שנמצא בנתונים.

סף שנבחר על הנתונים אופטימי. הסף של יודן נבחר כך שיתאים בדיוק למדגם הזה, ולכן הרגישות והסגוליות בו גבוהות במעט ממה שיתקבל במדגם חדש. לפי מוסכמת האתר, סף שנבחר על הנתונים מדווחים כממצא ראשוני, ואת ביצועיו מאמתים במדגם אחר (על אימות על נתונים חדשים – עמוד מדדי ביצוע ואימות למודל).

מה מחשבים בסף. רגישות וסגוליות עם רווח סמך מדויק (Clopper-Pearson) – Pepe (2003, עמ' 22) מעדיפה שיטות מדויקות או לוגיסטיות, כי בבדיקות טובות השיעורים קרובים לקצה, ורווח נורמלי סימטרי "עלול לחרוג מ-(0, 1)". חשוב לדווח את שניהם, ולא דיוק כולל: שתי הטעויות שונות במחירן, והדיוק הכולל תלוי בשכיחות – בדיקה שמסווגת את כולם כשליליים תקבל דיוק גבוה במצב נדיר (Pepe, 2003, p. 15). יחסי הנראות (LR+ = רגישות/(1 − סגוליות), LR− = (1 − רגישות)/סגוליות) אומרים פי כמה תוצאה חיובית או שלילית משנה את סיכויי המצב, ואינם תלויים בשכיחות (Pepe, 2003, p. 20, Table 2.2); רווח הסמך שלהם – בסולם לוג (Pepe, 2003, עמ' 24, תוצאה 2.5).

ערכים מנבאים ושכיחות. ערך מנבא חיובי – מבין המסווגים כחיוביים, כמה באמת במצב; שלילי – מבין השליליים, כמה באמת לא. הם מה שמעניין את מי שקיבל תוצאה, אבל "תלויים לא רק בביצועי הבדיקה... אלא גם בשכיחות המצב" (Pepe, 2003, p. 16). כשהמדגם נבנה ממספר קבוע של מקרים ושל ביקורות, השיעור במדגם "יאמוד ביתר את הערך המנבא החיובי" (Pepe, 2003, p. 25). לכן הזינו את שכיחות המצב באוכלוסייה שבה המדד ישמש, והעמוד יחשב את הערכים המנבאים בה לפי כלל בייס. עקומת ה-ROC עצמה, לעומת זאת, "אינה רגישה לשינויים בהתפלגות המחלקות" (Fawcett, 2006, p. 864).

השוואת מדדים

כשכמה מדדים נמדדו על אותם נבדקים, השטחים שלהם מתואמים – אותם אנשים "קלים" ו"קשים" לכל המדדים – והשוואה שמתעלמת מכך שגויה. DeLong ועמיתיו (1988) פיתחו לכך גישה לא-פרמטרית: מטריצת שונויות-משותפות של השטחים מתוך המרכיבים המבניים, ומבחן חי-בריבוע לכל ניגוד ביניהם (עמ' 840-841, משוואה 5). לזוג מדדים – z להפרש בין השטחים, עם רווח סמך (Pepe, 2003, עמ' 108, תוצאה 5.6); לשלושה ומעלה – מבחן כולל לשוויון כל השטחים (k − 1 דרגות חופש), ואחריו כל הזוגות, עם תיקון הולם להשוואות מרובות לפי מוסכמת האתר. מדד בכיוון הפוך (רווחה נפשית מול תסמינים) נכנס להשוואה אחרי היפוך סימן, כמו שעשו DeLong ועמיתיו עם הציון שלהם (עמ' 842).

הלקח של הדוגמה שלהם (עמ' 844): ציון מיוחד לניבוי הצלחת ניתוח לא היה טוב משני מדדי תזונה שגרתיים, אבל "העוצמה במצב הזה כנראה קטנה מאוד בגלל גודל המדגם הקטן" – 49 מטופלות. היעדר הבדל מובהק בין שטחים במדגם קטן אינו הוכחה שהמדדים שקולים. כשהמדדים נמדדו על קבוצות שונות של נבדקים, שונות ההפרש היא פשוט סכום השונויות (Pepe, 2003, p. 108) – העמוד אינו מחשב השוואה כזו.

איך קוראים את הפלט?

לוח 1 – השטח מתחת לעקומה: לכל מדד – הכיוון, השטח, טעויות התקן (DeLong; Hanley & McNeil), שני רווחי הסמך, ו-z ו-p מול 0.5. תרשים 1 – העקומות, עם האלכסון וסף יודן של כל מדד.

לוח 2 – הסף לפי מדד יודן: לכל מדד – הסף (חיובי אם הציון גבוה ממנו או שווה לו; במדד בכיוון הפוך – נמוך או שווה), רגישות וסגוליות עם רווחי סמך, J, ערכים מנבאים ויחסי נראות. הספים הם נקודות האמצע בין ערכים סמוכים, כמו ב-SPSS וב-R, ולכן סף של 10.5 בשאלון של מספרים שלמים פירושו "11 ומעלה".

בדיקת סף: בוחרים מדד ומקלידים סף, ומקבלים את לוח 3 – לוח 2×2 וכל המדדים בסף הזה, כולל ערכים מנבאים בשכיחות שהזנתם. מתחתיו, בלחיצה – כל הספים של המדד. לוח 4 – השוואת השטחים (כשנבחרו שני מדדים או יותר): ההפרש בין כל זוג, טעות התקן, רווח הסמך, z, p, p מתוקן הולם, והמתאם בין השטחים; בהערה – המבחן הכולל.

הנחות ואזהרות

תקן הזהב נכון. כל החישוב מניח שמשתנה המצב אינו טועה. Pepe (2003, עמ' 6-7, לוח 1.3) מונה את ההטיות הנפוצות במחקרים כאלה: תקן זהב לא מושלם; הטיית אימות – רק חלק מהנבדקים, ולא באקראי, נבדקו בתקן הזהב; הטיית ספקטרום – "טעות נפוצה היא לבחור מקרים במצב חמור או כרוני וביקורות בריאות מהממוצע", מה ש"עלול להגדיל את הדיוק הנראה של הבדיקה"; והטיית פרשנות – כשמי שקובע את המצב יודע את תוצאת המדד, או להפך (עמ' 5-6).

נבדקים בלתי-תלויים. טעויות התקן מניחות שכל נבדק תורם תצפית אחת. כשיש כמה תצפיות לנבדק (שתי עיניים, כמה מבחנים לתלמיד), Pepe (2003, עמ' 104) ממליצה על bootstrap ברמת הנבדק – שהעמוד אינו מריץ.

שוויונות. בציונים עם מעט ערכים יש הרבה שוויונות, ו-Fawcett (2006, עמ' 867) מזהיר שאם לא ממצעים אותם, העקומה תלויה בסדר שבו הנבדקים מופיעים בקובץ, ו"סדרים שונים עלולים להניב עקומות מטעות מאוד". העמוד ממצע אותם: שוויון בין מקרה לביקורת נספר כחצי, והעקומה עוברת בקו אלכסוני.

הכיוון נקבע מראש. תוכנות שבוחרות כיוון "אוטומטית" לפי הנתונים הופכות כל מדד חלש לשטח מעל 0.5. העמוד לא עושה זאת: הכיוון הוא החלטה שלכם, לפי מה שהמדד אמור למדוד, ושטח מתחת ל-0.5 מוצג כמות שהוא, עם אזהרה.

מגבלות מעשיות. ערכים חסרים: מחיקה רשימתית על משתנה המצב ועל כל המדדים שנבחרו (העמוד מודיע כמה הושמטו). נדרשים לפחות חמישה נבדקים בכל קבוצה; בפחות מ-30 בקבוצה – רווחי הסמך האסימפטוטיים פחות מדויקים (Pepe, 2003, p. 107, Table 5.1). שטח של 1 (הפרדה מלאה) – טעות התקן 0 ורווח הסמך חסר משמעות, והעמוד מזהיר; לרווחים מדויקים במצב כזה Pepe (2003, עמ' 107) מפנה ל-Obuchowski ו-Lieber (2002, כמצוטטים שם). מה העמוד אינו מחשב: עקומה חלקה (בינורמלית), שטח חלקי, רווחי סמך לעקומה כולה, השוואה בין קבוצות בלתי-תלויות, ו-ROC ליותר משתי קבוצות.

ואיך עושים זאת ב-SPSS?

ב-SPSS Statistics: Analyze › Classify › ROC Curve (בגרסאות ישנות – Analyze › ROC Curve); מעבירים את המדדים ל-Test Variable, את משתנה המצב ל-State Variable ומקלידים את הערך שמציין את המצב; מסמנים ROC Curve, With diagonal reference line, Standard error and confidence interval ו-Coordinate points of the ROC Curve. הכיוון נקבע ב-Options › Test Direction – אחד לכל הפקודה, ולכן הסינטקס שהעמוד מייצר מריץ פקודה נפרדת למדדים בכיוון הפוך. הנתיבים הם מידע כללי על התוכנה; הסינטקס לא הורץ ב-SPSS.

אותה פקודה (ROC) קיימת ב-PSPP, החלופה החינמית, והורצה על קובץ הדוגמה: השטח ו-Std. Error זהים לעמוד (ה-Std. Error הוא של Hanley ו-McNeil, עמודת "SE (H-M)" בלוח 1), וכך גם Asymptotic Sig.; אבל הגבולות ש-PSPP מדפיס תחת "95%" רחוקים מהשטח 1.645 טעויות תקן ולא 1.96 – כלומר רווח של 90% – ובכיוון TESTPOS(SMALL) הוא מחזיר NaN לטעות התקן ולרווח. ב-PSPP – קחו את רווחי הסמך מהעמוד. השוואה בין שטחים אינה חלק מפקודת ROC; היא בסקריפט R שלמטה.

ואיך עושים זאת ב-R?

חבילת pROC: roc בונה עקומה (levels – הערך השלילי ואחריו החיובי; direction = "<" – ערך גבוה מעיד על המצב, ">" – ערך נמוך; בלי direction החבילה בוחרת כיוון לפי הנתונים – ראו בהנחות), ci.auc נותן את השטח ורווח הסמך של DeLong, coords – את הסף לפי יודן ואת כל הספים, ו-roc.test – את השוואת DeLong המזווגת. העמוד מאומת מול החבילה: השטח, טעות התקן, רווח הסמך, כל נקודות העקומה, סף יודן, ההשוואות והמבחן הכולל. הסקריפט הורץ כלשונו על קובץ הדוגמה (הערכים בהערות).

# ניתוח ROC – פרופסור סטאט. קובץ זה נשמר ב-UTF-8; כל שורת הערה מתחילה במילה עברית
library(readxl)    # קריאת אקסל
library(pROC)      # עקומות ROC, שטח, רווחי סמך והשוואת DeLong

# טעינה: התבנית התקנית – שורה = נבדק, עמודה = משתנה; הגיליון "Data"
d <- read_excel("C:/Rdata/DATA_roc_example_eng.xlsx", sheet = "Data")
v <- c("diagnosis", "screen_long", "screen_short", "wellbeing")
d <- d[complete.cases(d[, v]), ]                        # מחיקה רשימתית: 218 מתוך 220 – אותם נבדקים לכל העקומות

# עקומה לכל מדד; levels = c(שלילי, חיובי); direction "<" – ערך גבוה מעיד על המצב, ">" – ערך נמוך
r_long  <- roc(d$diagnosis, d$screen_long,  levels = c(0, 1), direction = "<")
r_short <- roc(d$diagnosis, d$screen_short, levels = c(0, 1), direction = "<")
r_well  <- roc(d$diagnosis, d$wellbeing,    levels = c(0, 1), direction = ">")

# השטח ורווח הסמך של DeLong
ci.auc(r_long); ci.auc(r_short); ci.auc(r_well)       # שטח: .817 [.757, .876]; .762 [.693, .831]; .677 [.596, .759]
sqrt(var(r_long))                                      # טעות תקן (DeLong): .030

# הסף לפי יודן, ומה קורה בו
coords(r_long, "best", best.method = "youden",
       ret = c("threshold", "sensitivity", "specificity", "ppv", "npv"))   # סף 10.5: רגישות .875, סגוליות .676
binom.test(42, 48)$conf.int                            # רווח סמך מדויק לרגישות בסף: [.748, .953]
coords(r_long, "all", transpose = FALSE)               # כל הספים

# השוואת שטחים מזווגת (אותם נבדקים) – DeLong
roc.test(r_long, r_short, method = "delong", paired = TRUE)   # הפרש .055 [.007, .103], z = 2.25, p = .025
# רווחה נפשית בכיוון הפוך: ההשוואה על המשתנה בהיפוך סימן, כדי שכל העקומות יהיו באותו כיוון (DeLong et al., 1988, עמ' 842)
r_well2 <- roc(d$diagnosis, -d$wellbeing, levels = c(0, 1), direction = "<")
roc.test(r_long, r_well2, method = "delong", paired = TRUE)   # הפרש .140 [.062, .217], z = 3.54, p < .001

# תרשים
plot(r_long, legacy.axes = TRUE, print.auc = TRUE)
lines(r_short, col = "darkorange"); lines(r_well, col = "darkgreen")

דיווח התוצאות

מדווחים את תקן הזהב ואת מספר הנבדקים בכל קבוצה; לכל מדד – הכיוון, השטח ורווח הסמך (ואיזה); את הסף ואיך נבחר – מראש מהספרות או על הנתונים – עם הרגישות והסגוליות ורווחי הסמך שלהן; ערכים מנבאים רק עם השכיחות שבה חושבו; ובהשוואה – את המבחן (DeLong, מזווג), ההפרש ורווח הסמך שלו. מספרים בפורמט APA: בלי אפס לפני הנקודה בשטח, ברגישות ובסגוליות, שאינם יכולים לעבור את 1 (APA, 2020, Section 6.36), ו-p בשלוש ספרות. הפסקה שהעמוד מייצר היא נקודת התחלה – משלימים בה את ההקשר ואת המשמעות.

טעויות נפוצות

לדווח רק את השטח. שטח של .82 ממצע על כל הספים, כולל כאלה שאיש לא ישתמש בהם (Pepe, 2003, pp. 78-79; Fawcett, 2006, p. 868), ומה שמחליטים עליו בפועל הוא סף. מדווחים את השטח, את העקומה, ואת הרגישות והסגוליות בסף. ולהפך – לדווח רק נקודה אחת: דיווח של רגישות וסגוליות בסף יחיד "מוגבל בבירור" (Pepe, 2003, p. 71).

לדווח דיוק כולל במקום רגישות וסגוליות – במצב נדיר הוא גבוה גם לבדיקה חסרת ערך (Pepe, 2003, p. 15).

לדווח ערך מנבא חיובי ממדגם של מקרים וביקורות כאילו הוא חל על האוכלוסייה – הוא מנופח (Pepe, 2003, p. 25).

להציג את סף יודן כ"סף האופטימלי" – הוא אופטימלי רק כשלשתי הטעויות אותו מחיר, ורק במדגם שבו נמצא.

להשוות שטחים של מדדים שנמדדו על אותם נבדקים במבחן לקבוצות בלתי-תלויות, או לפי חפיפה של רווחי סמך – ההשוואה הנכונה מזווגת (DeLong et al., 1988).

לתת לתוכנה לבחור כיוון – ולדווח "AUC = .58" למדד שבפועל מנבא הפוך ממה שתוכנן, או שאינו מנבא כלל.

לבחור סף, ואז "לאמת" אותו על אותם נתונים – בלי מדגם אחר, המספרים בסף הם אופטימיים.

מקורות

American Psychological Association. (2020). Publication manual of the American Psychological Association (7th ed.). https://doi.org/10.1037/0000165-000

DeLong, E. R., DeLong, D. M., & Clarke-Pearson, D. L. (1988). Comparing the areas under two or more correlated receiver operating characteristic curves: A nonparametric approach. Biometrics, 44(3), 837-845. https://doi.org/10.2307/2531595

Fawcett, T. (2006). An introduction to ROC analysis. Pattern Recognition Letters, 27(8), 861-874. https://doi.org/10.1016/j.patrec.2005.10.010

Hanley, J. A., & McNeil, B. J. (1982). The meaning and use of the area under a receiver operating characteristic (ROC) curve. Radiology, 143(1), 29-36. https://doi.org/10.1148/radiology.143.1.7063747

Pepe, M. S. (2003). The statistical evaluation of medical tests for classification and prediction. Oxford University Press.

Hand ו-Till (2001) ו-Flach ו-Wu (2003) – כמצוטטים אצל Fawcett (2006); Obuchowski ו-Lieber (2002) – כמצוטטים אצל Pepe (2003). לפי כלל האתר, ברשימת המקורות מופיעים רק מקורות שנקראו במקור; הציטוטים לפי העמוד המודפס. החישוב בעמוד מאומת מול R 4.3.3 וחבילת pROC 1.18.5 (roc, ci.auc, coords, roc.test, cov), מול binom.test, ומול פקודת ROC של PSPP 2.0; ומול המספרים שבמקורות – 0.893 וטעות התקן 0.032 בלוח II של Hanley ו-McNeil (1982, עמ' 31).