מהימנות בין מקודדים: קאפה של כהן ואלפא של קריפנדורף
שני מקודדים או יותר קידדו את אותן יחידות – עד כמה הם מסכימים מעבר למקרה? הסכמה גולמית, κ של כהן לכל זוג עם רווח סמך, ו-α של קריפנדורף לכל מספר מקודדים, עם חסרים, במטריקה נומינלית, סדר או רווח – עם רווח סמך ב-bootstrap; קאפה משוקללת לסולמות סדר וקאפה של פלייס לריבוי מקודדים.
טעינת הנתונים
מדביקים עמודות ישירות מהגיליון (כולל שורת הכותרות) – מסמנים באקסל, מעתיקים, ומדביקים כאן:
בחירת המקודדים והמטריקה
מתי משתמשים במדדי הסכמה בין מקודדים?
כשבני אדם הם מכשיר המדידה. תשובה פתוחה בסקר שסווגה לנושא, פוסט שסומן כ"עוין" או "ניטרלי", קטע ראיון שקיבל קוד מתוך ספר קודים, אבחנה קלינית מתוך רשימת קטגוריות – בכל אלה המספר שנכנס לניתוח הוא שיפוט. מהימנות בין מקודדים (intercoder reliability) שואלת אם מקודד אחר, שקיבל את אותן הנחיות, היה מגיע לאותם קודים – ובלי תשובה חיובית, אי אפשר לדעת אם הממצאים מתארים את הטקסט או את מי שקרא אותו. Cohen (1960) ניסח זאת בדימוי של "מד דו-רגלי" (two-legged meter): המקודדים הם צורות מקבילות של אותו כלי, והשאלה היא כמה הן מסכימות. Krippendorff (2019, פרק 11) מוסיף את הצד השני: מהימנות היא תנאי הכרחי לתוקף, לא ערובה לו – שני מקודדים יכולים להסכים ולטעות יחד.
העמוד הזה הוא הצעד השישי במרשם העבודה של עמוד NLP בעברית: אחרי קידוד ידני של מדגם (על-ידי שני אנשים, או על-ידי אדם ומודל), מודדים כאן את ההסכמה – ורק אם היא מספיקה, ממשיכים לשכיחויות, לחי-בריבוע ולמתאמים.
שני מקדמים, שתי שאלות: κ של כהן ו-α של קריפנדורף
הסכמה גולמית (percent agreement) – חלק היחידות שעליהן המקודדים הסכימו – היא המספר האינטואיטיבי, והוא מטעה: שני מקודדים שמטילים מטבע יסכימו ב-50% מהמקרים בשתי קטגוריות, וב-80% אם קטגוריה אחת שכיחה מאוד. כל המקדמים הרציניים מתקנים את זה באותה צורה: (הסכמה נצפית − הסכמה צפויה במקרה) / (1 − הסכמה צפויה במקרה). ההבדל ביניהם הוא במה שנחשב "מקרה".
κ של כהן (1960)
שני מקודדים, קטגוריות נומינליות, בלי חסרים. ההסכמה הצפויה במקרה מחושבת משולי הלוח של כל מקודד בנפרד: אם א' מסמן "כלכלי" ב-40% וב' ב-50%, המקרה הצפוי לקטגוריה הזאת הוא .40 × .50. המקדם הנפוץ ביותר בפסיכולוגיה וברפואה, מובנה ב-SPSS, עם שגיאת תקן ורווח סמך. נותן גם κmax – הגבול העליון שהשוליים מאפשרים.
α של קריפנדורף (2019)
כל מספר מקודדים, חסרים מותרים, מטריקה נומינלית / סדר / רווח / יחס. ההסכמה הצפויה במקרה מחושבת מהתפלגות כל הערכים יחד, בלי לשאול מי נתן אותם – המקודדים מתחלפים. המקדם המקובל בניתוח תוכן ובמדעי התקשורת, עם ספים מוגדרים (.800 / .667). ב-SPSS – רק דרך מאקרו.
כשהמקודדים משתמשים בקטגוריות באותן שכיחויות, שני המקדמים כמעט זהים. כשלא – הם נפרדים, ובכיוון ידוע: Krippendorff (2019, סעיף 11.5) מדגים שני לוחות עם אותם 46 מתוך 100 מקרי הסכמה, שבאחד מהם ההסכמה שנותרה מפוזרת סימטרית ובשני מרוכזת בצד אחד; π של Scott (ו-α) נותנים .186 בשניהם, ואילו κ עולה מ-.186 ל-.258 בשני – "לא ההסכמה גדלה אלא היכולת לנבא את הקטגוריות של מקודד אחד מאלה של השני", ולטענתו κ מודדת בכך משהו שאינו מהימנות. Cohen (1960, עמ' 41) ראה באותה תכונה בדיוק יתרון: העדפה שיטתית של מקודד לקטגוריה מסוימת היא מקור לאי-הסכמה, ואין לתקן אותה כלפי מעלה. המחלוקת אינה מוכרעת, והעמוד מדווח את שניהם: κ מפני שהקוראים, כתבי-העת ו-SPSS מצפים לו; α מפני שהוא היחיד שמטפל בשלושה מקודדים ומעלה ובחסרים בלי לזרוק נתונים.
איך קוראים את התוצאה?
מטריצת ההסכמה (לוח 1, לשני מקודדים) היא הלוח שממנו הכול מחושב: שורות – המקודד הראשון, עמודות – השני, האלכסון – הסכמה. לפני שמסתכלים על המקדם כדאי להסתכל עליה: אילו שתי קטגוריות מתבלבלות זו בזו? זו הבעיה שיש לתקן בספר הקודים, והמקדם לבדו לא יגלה אותה.
pe – ההסכמה הצפויה במקרה. ככל שהיא גבוהה (קטגוריה אחת דומיננטית), ההסכמה הגולמית חשובה פחות ו-κ קטן יותר. κmax (Cohen, 1960, Equation 6) – הקאפה הגבוהה ביותר שאפשר להשיג עם שולי הלוח הנתונים; κmax נמוך אומר שהמקודדים משתמשים בקטגוריות בשכיחויות שונות, ו"1 − κmax הוא חלק ההסכמה שאינו בר-השגה בגלל השוליים" – סימן לגבולות קטגוריה מטושטשים שאימון יכול לחדד. ASE ו-רווח הסמך – שגיאת התקן האסימפטוטית לפי Fleiss, Cohen ו-Everitt (1969), אותה נוסחה של SPSS (Cohen עצמו נתן ב-1960 קירוב פשוט יותר, משוואה 7, שנותן ערך מעט גבוה יותר). z ו-p בודקים אם κ שונה מאפס – מבחן שכהן עצמו כינה "חסר ערך במידה רבה": שקאפה גדולה מאפס איננה שאלה; השאלה היא כמה.
α – Do היא אי-ההסכמה הממוצעת הנצפית בתוך היחידות, De – אי-ההסכמה הצפויה בין כל הערכים בנתונים, ו-α = 1 − Do/De. במטריקה נומינלית כל אי-הסכמה שווה; במטריקת סדר אי-הסכמה בין "נמוך" ל"גבוה" חמורה מאשר בין "נמוך" ל"בינוני"; במטריקת רווח – לפי ריבוע ההפרש. לכן α של סולם 1-7 במטריקה נומינלית נמוכה, ולעתים נמוכה מאוד, מאותה α במטריקת רווח: ההבדל אינו "טעות" אלא הגדרה של מה נחשב הסכמה.
רווח הסמך של α ו-q. ל-α אין נוסחת שגיאת תקן; Krippendorff (2019, סעיף 11.4.2) מציע במקום זאת bootstrap: מחשבים α על אלפי דגימות חוזרות מהנתונים, והתפלגות הערכים שמתקבלת נותנת רווח סמך – ומה שחשוב לו יותר – את q, ההסתברות ש-α אינה עוברת את הסף שנקבע. המבחן "האם α שונה מאפס" חסר טעם, הוא כותב; השאלה היא כמה בטוחים אנחנו ש-α מעל .800 (או .667). העמוד מיישם bootstrap של יחידות (Efron & Tibshirani, 1993): 2,000 דגימות של N יחידות עם החזרה, α לכל דגימה, אחוזונים 2.5 ו-97.5 לרווח, וחלק הדגימות מתחת ל-.667 ול-.800 כ-q. שני הבדלים מהמאקרו KALPHA של Krippendorff: הוא דוגם זוגות ערכים ממטריצת הצירופים ולא יחידות, ולכן רווחיו יכולים להיות מעט שונים; והעמוד משתמש בזרע קבוע, כך שאותם נתונים נותנים תמיד אותו רווח – כלל האתר: חישוב דטרמיניסטי.
κ משוקללת (Cohen, 1968; מוצגת כשהקטגוריות מספריות, שלוש ומעלה, והמטריקה אינה נומינלית) – לסולמות סדר: אי-הסכמה בין 1 ל-2 אינה כמו בין 1 ל-5. משקל ליניארי מזכה לפי המרחק, ריבועי – לפי ריבוע המרחק; הריבועית שווה למתאם התוך-מחלקתי במקרים רבים, ולכן היא הנפוצה. שתיהן בלוח, כי הבחירה ביניהן היא הכרעה של החוקר, לא של התוכנה – ומדווחים איזו נבחרה. κ של פלייס (Fleiss, 1971; מוצגת משלושה מקודדים) – ההרחבה המקובלת של κ לריבוי מקודדים, אף שהיא למעשה הרחבה של π של Scott: ההסכמה הצפויה מחושבת מהתפלגות הקטגוריות אצל כולם יחד, לא אצל כל מקודד בנפרד. היא דורשת מספר שווה של מקודדים לכל יחידה, ולכן יחידות עם ערך חסר יוצאות – בניגוד ל-α. כששני המספרים קרובים, זו עדות שהחסרים אינם משנים את התמונה. שגיאת התקן ש-Fleiss (1971) נותן תקפה רק תחת ההשערה κ = 0 – טובה למבחן z, לא לרווח סמך – ולכן רווח הסמך של κF בלוח מגיע מאותו bootstrap של יחידות כמו ל-α (על היחידות המלאות בלבד). ל-κ המשוקללת מוצגים גם z ו-p: מבחן κw = 0 בשגיאת התקן תחת H0 של Fleiss, Cohen ו-Everitt (1969) – אותה מוסכמה שבה SPSS מחשב את Approx. T בלוח Symmetric Measures, "בשגיאת התקן האסימפטוטית בהנחת השערת האפס" (Pallant, 2020, Chapter 16). המבחן הזה עונה על שאלה שכמעט אינה נשאלת במחקר קידוד – האם ההסכמה גדולה מאפס – ורווח הסמך הוא המידע המועיל; הוא בלוח כדי שהפלט יחפוף לזה של SPSS.
שני סרגלים, ומה ההבדל. Landis ו-Koch (1977, עמ' 165) חילקו את טווח κ לשש דרגות – קלושה, חלשה, בינונית, ניכרת, כמעט מושלמת – והוסיפו באותה נשימה שהחלוקה "שרירותית בעליל" (clearly arbitrary) ונועדה לשמש "אמות מידה שימושיות" לדוגמה שבמאמרם. הסרגל הזה השתרש הרבה מעבר לכוונתם. Krippendorff (2019, סעיף 11.4.4) קובע במקום זאת שני ספים: להסתמך רק על משתנים עם α מעל .800, ולהסיק מסקנות זהירות בלבד בין .667 ל-.800 – ומודה שגם .800 הוא "סטנדרט נמוך למדי" לעומת הנדסה ורפואה. הפער ניכר: κ = .65 הוא "הסכמה ניכרת" אצל Landis ו-Koch ואי-עמידה בסף אצל Krippendorff. העמוד מציג את שניהם, ובמקום להכריע מציע את השאלה של Krippendorff: מה מחיר המסקנה השגויה במחקר הזה?
הנחות ואזהרות
שלוש ההנחות של כהן (1960, עמ' 38): היחידות בלתי-תלויות; הקטגוריות בלתי-תלויות, מוציאות זו את זו וממצות; והמקודדים פועלים באופן עצמאי. השלישית היא שנשברת בפועל – שני מקודדים שיושבים יחד, או מקודד שני שרואה את הקודים של הראשון, מייצרים "הסכמה" שאינה מהימנות.
מהימנות היא תכונה של המשתנה, לא של המחקר. Krippendorff (2019, סעיף 11.4.4) מזהיר מפני מיצוע α של כמה משתנים: משתני התיוק (תאריך, אורך) מהימנים תמיד ומעלים את הממוצע, ואילו המשתנים שחשובים – אלה שקשה לקודד – מסתתרים מתחתיו. מדווחים לכל משתנה בנפרד.
שכיחות הקטגוריות. כשקטגוריה אחת מופיעה ב-90% מהיחידות, גם הסכמה גולמית של 90% נותנת κ נמוך – ההסכמה על הקטגוריה השכיחה "צפויה במקרה". זו תכונה נכונה של המדד (Krippendorff, 2019, סעיף 11.4.1: משתנה בלי שונות אינו נושא מידע), אך היא מפתיעה חוקרים; אם המשתנה כמעט קבוע, יש לשאול אם הוא בכלל משתנה.
גודל המדגם למבחן המהימנות. רווח הסמך של κ מתכווץ עם N; Krippendorff (2019, סעיף 11.4.3) מציע לקבוע את מספר היחידות כך שהקטגוריה הנדירה ביותר תופיע די פעמים כדי שאי-הסכמה עליה תוכל להתגלות – מדגם של 30 יחידות עם קטגוריה שמופיעה פעמיים אינו בודק את הקטגוריה הזאת.
חסרים. κ מחושבת רק על יחידות ששני המקודדים בזוג קידדו (מחיקה זוגית – כמו ב-SPSS); α משתמשת בכל ערך שיש לו לפחות בן-זוג אחד ביחידתו, ולכן N של κ ו-"יחידות בנות-השוואה" של α יכולים להיות שונים באותם נתונים. שניהם מדווחים.
מה העמוד אינו מחשב. α ליחידוּת (unitizing; Krippendorff, 2019, Section 11.6) – כשהמקודדים גם קובעים היכן היחידה מתחילה ונגמרת; שגיאת תקן אסימפטוטית ל-κ של פלייס (Fleiss, 1971, נותן אותה רק תחת H0; רווח הסמך – ב-bootstrap); ורווח סמך לפי האלגוריתם הספציפי של KALPHA (ראו למעלה).
ואיך עושים זאת ב-SPSS?
הערת גרסאות. ההליך יציב מאז גרסאות מוקדמות מאוד; שמות התפריטים שלהלן לפי SPSS 29. Cohen (1960) ו-Landis ו-Koch (1977) קדמו ל-SPSS; הנוסחה של שגיאת התקן ב-SPSS היא של Fleiss, Cohen ו-Everitt (1969), והיא זו שהעמוד מחשב.
κ של כהן: Analyze › Descriptive Statistics › Crosstabs… – המקודד הראשון ל-Row(s), השני ל-Column(s), ובכפתור Statistics… מסמנים Kappa. הסינטקס:
CROSSTABS /TABLES=coder_A BY coder_B /STATISTICS=KAPPA /CELLS=COUNT.
בלוח Symmetric Measures: Value = κ, Asymp. Std. Error = ASE ("בלי להניח את השערת האפס"), Approx. T = z ("בשגיאת התקן האסימפטוטית בהנחת השערת האפס" – שתי הערות השוליים של הלוח; Pallant, 2020, פרק 16), Approx. Sig. = p. הלוח Crosstabulation הוא מטריצת ההסכמה. שימו לב: SPSS מחשב κ רק כששני המשתנים משתמשים באותן קטגוריות; אם מקודד אחד מעולם לא השתמש בקטגוריה מסוימת, הלוח אינו ריבועי ו-SPSS לא ידפיס קאפה – העמוד מחשב אותה על מלוא הקטגוריות המשותפות, כפי שכהן הגדיר.
κ משוקללת: מגרסה 27 – Analyze › Scale › Weighted Kappa…, עם משקל ליניארי (ברירת המחדל) או ריבועי ורווח סמך אסימפטוטי; הסינטקס – בכפתור Paste של הדיאלוג. κ של פלייס: אין ב-SPSS; ראו R להלן.
α של קריפנדורף: אין פקודה מובנית. המאקרו KALPHA של Hayes ו-Krippendorff (2007) – מריצים פעם אחת את קובץ המאקרו, ואז:
KALPHA judges = coder_A coder_B coder_C /level = 1 /detail = 0 /boot = 2000.
level: 1 נומינלי, 2 סדר, 3 רווח, 4 יחס; boot – מספר דגימות ה-bootstrap לרווח הסמך (0 – בלי); האלגוריתם של KALPHA דוגם זוגות ערכים ולא יחידות, ולכן רווחיו קרובים לאלה שבעמוד אך לא זהים. כפתור "הורדת סינטקס SPSS" בפלט מייצר את שני החלקים על הנתונים שנטענו, עם פקודות המילון אם היה מקרא.
ואיך עושים זאת ב-R?
חבילת irr מחשבת את שני המקדמים: kappa2 – κ של כהן לזוג (יחידות מלאות בלבד, כמו SPSS וכמו העמוד); kripp.alpha – α של קריפנדורף לכל מספר מקודדים, עם NA כחסר, בארבע המטריקות. הסקריפט הורץ על קובץ הדוגמה ונתן את ערכי הלוח (בהערות). כלל האתר לעברית ב-R: הקובץ נשמר ב-UTF-8, כל שורת הערה מתחילה במילה עברית; ובנוסף – שמות גיליונות ומשתנים בעברית דורשים סביבת UTF-8 (ב-Windows: Sys.setlocale('LC_ALL', 'Hebrew') או גרסת R 4.2 ומעלה, שבה UTF-8 היא ברירת המחדל).
# מהימנות בין מקודדים – פרופסור סטאט. קובץ זה נשמר ב-UTF-8; כל שורת הערה מתחילה במילה עברית
library(readxl) # קריאת אקסל
library(irr) # kappa2, kripp.alpha
# טעינה: התבנית התקנית – שורה = יחידת קידוד, עמודה = מקודד; הגיליון "נתונים"
d <- read_excel("C:/Rdata/DATA_reliability_example_heb.xlsx", sheet = "נתונים")
# קאפה של כהן לזוג מקודדים (יחידות מלאות בלבד, כמו ב-SPSS)
k <- kappa2(d[, c("מקודד א", "מקודד ב")])
k$value # κ = .653
k$subjects # N = 139
k$statistic # z = 15.14 (מבחן κ = 0)
# אלפא של קריפנדורף – כל המקודדים, חסרים מותרים; שורות = מקודדים, עמודות = יחידות
m <- t(as.matrix(d[, c("מקודד א", "מקודד ב", "מקודד ג")]))
kripp.alpha(m, method = "nominal")$value # α = .629
kripp.alpha(m, method = "ordinal")$value # α = .659
kripp.alpha(m, method = "interval")$value # α = .654
# קאפה משוקללת לזוג – משקל ליניארי ("equal") או ריבועי ("squared"); הקטגוריות חייבות להיות סדורות
kappa2(d[, c("מקודד א", "מקודד ב")], weight = "equal")$value # κw ליניארית = .662
kappa2(d[, c("מקודד א", "מקודד ב")], weight = "squared")$value # κw ריבועית = .664
# קאפה של פלייס – שלושה מקודדים ומעלה, רק יחידות שקודדו על-ידי כולם
f <- kappam.fleiss(d[complete.cases(d[, 2:4]), c("מקודד א", "מקודד ב", "מקודד ג")])
f$value # κF = .636
f$subjects # N = 134
f$statistic # z = 24.97
kappa2 מדפיס גם z ו-p אך לא את שגיאת התקן האסימפטוטית ולא את κmax; kripp.alpha מדפיס α בלבד, בלי רווח סמך. את המספרים שבלוח שבעמוד – ASE, רווח הסמך, κmax ורווח ה-bootstrap של α – מקבלים מ-SPSS או מהעמוד.
דיווח התוצאות
לפי APA (2020, סעיף 6.36) κ ו-α – מקדמים שאינם עולים על 1 – נכתבים בלי אפס מוביל ובשתי ספרות; רווח סמך לפי סעיף 6.43. הנוסח שהעמוד מפיק: "מהימנות הקידוד בין שני המקודדים נבדקה על N = 139 יחידות. ההסכמה הגולמית הייתה 72.7%; קאפה של כהן κ = .65, 95% CI [.56, .75]; אלפא של קריפנדורף (נומינלי) α = .65". מדווחים את N, את ההסכמה הגולמית (Krippendorff מבקר אותה, אך היא נותנת לקורא קנה מידה), את המקדם עם רווח הסמך, ואת המטריקה של α – בלי המטריקה, α אינה ניתנת לפירוש. את סרגל הפרשנות שבחרתם – Landis ו-Koch או Krippendorff – מציינים בשם, כי הם אינם מסכימים.
טעויות נפוצות
לדווח הסכמה גולמית בלבד. 85% הסכמה על משתנה עם קטגוריה דומיננטית יכולים להיות κ = .20. Krippendorff (2019, סעיף 11.5) מפרט מדוע "%-agreement" אינו ניתן לפירוש – ומדוע הוא ממשיך להופיע.
לחשב את המהימנות על היחידות שהמקודדים דנו בהן. הסכמה שהושגה בדיון היא קונצנזוס, לא מהימנות. מודדים לפני הדיון, על קידוד עצמאי.
למצע מהימנויות של משתנים שונים – ראו האזהרה בסעיף ההנחות.
לבחור מטריקה לפי המספר שיוצא. α במטריקת רווח כמעט תמיד גבוהה מ-α נומינלית על אותם נתונים. המטריקה נקבעת לפי טיב המשתנה – האם ההבדל בין 1 ל-5 אכן גדול מההבדל בין 1 ל-2 – ומתועדת לפני החישוב.
לצטט את "קלושה / ניכרת / כמעט מושלמת" כתקן. אלה מילותיהם של Landis ו-Koch לדוגמה אחת, בליווי הסתייגות מפורשת. אפשר להשתמש בהן; אין להציג אותן כאילו נקבעו על-ידי מישהו.
לעצור כשהמקדם נמוך. מקדם נמוך הוא התחלה של עבודה, לא סופה: מטריצת ההסכמה מראה אילו קטגוריות מתבלבלות, κmax מראה אם מקודד אחד נוטה לקטגוריה מסוימת, וזוג חלש בין שלושה מראה מי מפרש אחרת. מתקנים את ספר הקודים, מאמנים, ומודדים שוב על מדגם חדש.
מקורות
American Psychological Association. (2020). Publication manual of the American Psychological Association (7th ed.). https://doi.org/10.1037/0000165-000
Cohen, J. (1960). A coefficient of agreement for nominal scales. Educational and Psychological Measurement, 20(1), 37-46. https://doi.org/10.1177/001316446002000104
Cohen, J. (1968). Weighted kappa: Nominal scale agreement with provision for scaled disagreement or partial credit. Psychological Bulletin, 70(4), 213-220. https://doi.org/10.1037/h0026256
Efron, B., & Tibshirani, R. J. (1993). An introduction to the bootstrap. Chapman & Hall. https://doi.org/10.1007/978-1-4899-4541-9
Fleiss, J. L. (1971). Measuring nominal scale agreement among many raters. Psychological Bulletin, 76(5), 378-382. https://doi.org/10.1037/h0031619
Fleiss, J. L., Cohen, J., & Everitt, B. S. (1969). Large sample standard errors of kappa and weighted kappa. Psychological Bulletin, 72(5), 323-327. https://doi.org/10.1037/h0028106
Hayes, A. F., & Krippendorff, K. (2007). Answering the call for a standard reliability measure for coding data. Communication Methods and Measures, 1(1), 77-89. https://doi.org/10.1080/19312450709336664
Krippendorff, K. (2019). Content analysis: An introduction to its methodology (4th ed.). SAGE.
Landis, J. R., & Koch, G. G. (1977). The measurement of observer agreement for categorical data. Biometrics, 33(1), 159-174. https://doi.org/10.2307/2529310
Pallant, J. (2020). SPSS survival manual: A step by step guide to data analysis using IBM SPSS (7th ed.). Routledge.
Scott, W. A. (1955). Reliability of content analysis: The case of nominal scale coding. Public Opinion Quarterly, 19(3), 321-325. https://doi.org/10.1086/266577