كيفية حساب كابا كوهين في R
تُعد موثوقية القياس ودقة الأدوات السيكومترية من الركائز الأساسية التي يقوم عليها البحث العلمي الرصين في مجالات علم النفس، والعلوم السلوكية، والتشخيص الطبي والإكلينيكي. فعندما يعتمد الباحثون أو الأطباء النفسيون على التقييمات القائمة على الملاحظة الإنسانية أو المقابلات الإكلينيكية شبه المقننة، يبرز تحدٍ منهجي جوهري يتمثل في قياس مدى الاتفاق الحقيقي بين مختلف المقيمين والملاحظين. وهنا تتجلى أهمية الإحصاء اللامعلمي والقياس النفسي المتقدم لفرز الاتفاق الناشئ عن توافق منهجي دقيق عن ذلك الناشئ بمحض الصدفة الإحصائية البحتة.
يمثل معامل كابا كوهين (Cohen’s Kappa) الأداة المعيارية الذهبية لتقييم التوافق بين مقيِّمين اثنين في تصنيف البيانات الاسمية والفئوية. ورغم سهولة المفهوم النظري، فإن التطبيق العملي لمعامل كابا، وتفسير مخرجاته بدقة، وتجاوز مفارقاته الإحصائية يتطلب فهماً رياضياً وبرمجياً متقدماً. وتوفر لغة البرمجة الإحصائية R بيئة استثنائية مفتوحة المصدر ومرنة للغاية تمكن الباحثين والمحللين من حساب كابا بأنواعه المختلفة، بدءاً من كابا البسيط وصولاً إلى كابا الموزون، مع استخراج فترات الثقة، وبناء الرسوم البيانية التفاعلية المتقدمة.
يقدم هذا الدليل المرجعي الشامل دليلاً متكاملاً وتفصيلياً موثقاً للباحثين، وطلبة الدراسات العليا، والممارسين الإكلينيكيين حول كيفية فهم، وحساب، وتفسير، وتصور معامل كابا كوهين في لغة R الإحصائية. سنستعرض الأسس الرياضية والنظرية الكامنة وراء هذا المقياس، ونقارن بين مختلف الحزم البرمجية المتخصصة، ونحلل التحديات المنهجية والمفارقات الشهيرة وكيفية معالجتها برمجياً، وصولاً إلى صياغة النتائج بطريقة احترافية متوافقة تماماً مع معايير الجمعية الأمريكية لعلم النفس (APA Style).
- 1. مقدمة إلى معامل كابا كوهين (Cohen’s Kappa) وأهميته السيكومترية
- 2. الأساس الرياضي والنظري لمعامل كابا كوهين
- 3. تفسير قيم معامل كابا كوهين ومعايير الحكم الإحصائي
- 4. إعداد بيئة العمل وتثبيت الحزم اللازمة في R
- 5. الحساب العملي لمعامل كابا كوهين باستخدام حزمة psych
- 6. كابا كوهين الموزون (Weighted Kappa) للبيانات الترتيبية
- 7. استخدام حزمة irr كبديل متقدم لحساب التوافق في R
- 8. معالجة مفارقات وقيود كابا كوهين (Kappa Paradoxes)
- 9. تصور وفحص مصفوفات التوافق بيانياً في R
- 10. دراسة حالة تطبيقية شاملة: تقييم تشخيصي نفسي في R
- 11. مقارنة كابا كوهين بالمقاييس الأخرى لثبات المقيمين
- 12. أفضل الممارسات المنهجية واستكشاف الأخطاء البرمجية وإصلاحها
- خاتمة
- References
1. مقدمة إلى معامل كابا كوهين (Cohen’s Kappa) وأهميته السيكومترية
1.1 تعريف معامل كابا كوهين وسياقه التاريخي
تعود الجذور التاريخية لمعامل كابا كوهين إلى عام 1960 عندما نشر عالم النفس والإحصائي الأمريكي الشهير جاكوب كوهين (Jacob Cohen) ورقته البحثية التأسيسية بعنوان “معامل اتفاق للمقاييس الاسمية” (A Coefficient of Agreement for Nominal Scales) في مجلة Educational and Psychological Measurement. جاء هذا التطوير الرياضي استجابة لحاجة ملحة في حقل القياس النفسي والتشخيص الإكلينيكي؛ حيث كان الباحثون يعانون من غياب مقياس إحصائي دقيق قادر على تقييم مستوى الاتفاق الفعلي بين حكمين أو ملاحظين مستقلين عند تصنيف الأفراد أو الظواهر إلى فئات اسمية غير متصلة.

كان الهدف الأساسي لكوهين هو معالجة القصور الجوهري في المقاييس الكلاسيكية التي كانت تكتفي بحساب النسبة المئوية للتوافق؛ إذ تفشل تلك النسب في التمييز بين الاتفاق النابع من كفاءة أداة القياس والاتفاق الذي يحدث تلقائياً بمحض الصدفة أو التخمين العشوائي. استند كوهين في بنائه الرياضي إلى فكرة تعديل نسبة الاتفاق الملاحظة بطرح التوافق المتوقع حدوثه عشوائياً، وقسمة الناتج على الحد الأقصى الممكن للاتفاق غير المتأثر بالصدفة، مما أتاح للباحثين مقياساً قياسياً موحداً ومحايداً يعبر عن جودة الملاحظة المستقلة.
منذ ذلك الحين، أصبح معامل كابا كوهين حجر الزاوية في القياس النفسي والطب النفسي، وامتدت تطبيقاته لتشمل علم الأوبئة، وتصنيف النصوص في اللغويات الحاسوبية، والتعلم الآلي لتقييم أداء نماذج التصنيف، وعلم الاجتماع السلوكي. ويُعد فهم السياق التاريخي لتطوير هذا المعامل خطوة أساسية لإدراك الغرض الرياضي منه وتجنب إساءة استخدامه في سياقات إحصائية لا تتناسب مع افتراضاته النظرية.
1.2 أهمية قياس التوافق بين المقيمين في القياس النفسي
تعتمد الموثوقية في العلوم السلوكية والطب النفسي بشكل جوهري على مفهوم “ثبات الملاحظين” أو “التوافق بين المقيمين” (Inter-rater Reliability). ففي البيئات الإكلينيكية، لا تتوفر دائماً تحاليل مخبرية أو قياسات فيزيائية قطعية لتشخيص الاضطرابات النفسية كالفصام، والاكتئاب الجسيم، واضطرابات الشخصية؛ بل يعتمد التشخيص بصورة واسعة على الملاحظة المباشرة للسلوك، وتحليل المقابلات التشخيصية المقننة مثل مقياس (SCID) ومراجعة التاريخ المرضي للمراجعين.
إذا لم تكن المعايير التشخيصية واضحة ومحددة بدرجة تضمن وصول طبيبين نفسيين مستقلين إلى نفس النتيجة التشخيصية عند فحص المريض ذاته، فإن الأداة التشخيصية تفقد موثوقيتها وصلاحيتها العلمية. يساعد معامل كابا كوهين في توفير دليل رقمي قاطع على مدى موضوعية وتوحيد هذه المعايير، مما يعزز الثقة في نتائج البحوث السريرية ويقلل من تأثير الذاتية أو التحيز الفردي للمقيمين.
علاوة على ذلك، يمتد دور المقياس إلى تقييم موثوقية أدوات القياس السلوكية في البيئات التربوية، مثل ملاحظة تفاعلات الأطفال في الفصول الدراسية، وتقييم السلوك العدواني، وقياس اضطراب طيف التوحد، واختبارات الأداء الإكلينيكي في برامج التدريب الطبي. ويشكل ثبات المقيمين شرطاً مسبقاً لا يمكن تجاوزه لضمان الصدق البنائي (Construct Validity) لأي مقياس سيكومتري جديد يخضع لعمليات التقنين والتحقق الإحصائي.
1.3 الفرق الجوهري بين نسبة الاتفاق البسيطة ومعامل كابا
يقع العديد من الباحثين المبتدئين في فخ الاعتماد على “نسبة الاتفاق البسيطة” (Percentage Agreement)، والتي تُحسب ببساطة عبر قسمة عدد الحالات التي اتفق فيها المقيمون على إجمالي عدد الحالات المفحوصة وضرب الناتج في 100. ورغم بديهية هذا المقياس وسهولة حسابه، إلا أنه يعاني من عيب إحصائي قاتل يتمثل في تضخيمه الفج والزائف لدرجة التوافق بين الملاحظين؛ حيث يتجاهل تماماً احتمالية أن يتفق الملاحظان بمحض الصدفة البحتة، لا سيما عندما تكون بعض الفئات التشخيصية أكثر شيوعاً من غيرها.
لتوضيح هذا الخلل بمثال رقمي: افترض أن فاحصين يقومان بتشخيص مرض نادر جداً يظهر لدى 5% فقط من المراجعين، وأن كلا الفاحصين يقرران دائماً تصنيف أي مريض بأنه “سليم” دون بذل أي جهد تشخيصي حقيقي. في هذه الحالة، ستصل نسبة الاتفاق البسيطة بينهما إلى 90% أو أكثر، مما يعطي انطباعاً كاذباً بوجود توافق تشخيصي ممتاز ودقة عالية، بينما يكمن الواقع في عدم قدرتهما إطلاقاً على اكتشاف المرض الفعلي، وأن الاتفاق كله ناشئ عن الشيوع المرتفع لفئة “السليم”.
يقوم معامل كابا كوهين بإجراء تصحيح رياضي صارم لهذه الظاهرة؛ حيث يقارن التوافق الملاحظ الفعلي بالتوافق النظري المتوقع حدوثه بناءً على الاحتمالات الهامشية للتخمين العشوائي. وفي السيناريو السابق، سيُظهر معامل كابا قيمة تقترب من الصفر، كاشفاً بوضوح عن غياب أي ثبات تشخيصي حقيقي ومحذراً الباحثين من الاعتماد على النتائج المضللة لنسبة الاتفاق البسيطة.
2. الأساس الرياضي والنظري لمعامل كابا كوهين
2.1 المعادلة الرياضية الأساسية وتفكيك عناصرها
يقوم الأساس النظري لمعامل كابا كوهين على صيغة رياضية أنيقة تعبر عن نسبة التحسن في الاتفاق فوق مستوى الصدفة مقارنة بأقصى تحسن ممكن. تُصاغ المعادلة الكلاسيكية لكابا كوهين على النحو التالي:
كابا = (التوافق الملاحظ – التوافق المتوقع بالصدفة) / (1 – التوافق المتوقع بالصدفة)
أو بالرموز اللاتينية المعيارية المستخدمة في الأدبيات السيكومترية:
k = (po – pe) / (1 – pe)
حيث يمثل الرمز (po) اختصاراً لـ (Observed Proportion of Agreement)، وهو التوافق الفعلي الملاحظ تجريبياً بين المقيمين. بينما يمثل الرمز (pe) اختصاراً لـ (Hypothetical Probability of Chance Agreement)، وهو التوافق النظري المتوقع حدوثه بافتراض أن كلا المقيمين يقومان بالتقييم باستقلالية تامة واعتماداً على الصدفة العشوائية مع الحفاظ على التوزيع الهامشي لاختياراتهما.
يعمل بسط المعادلة (po – pe) على قياس مقدار الاتفاق الفعلي الذي يتجاوز حدود الصدفة، بينما يمثل المقام (1 – pe) المقدار الأقصى الممكن للاتفاق الذي يمكن تحقيقه فوق مستوى الصدفة. وتضمن هذه النسبة أن يعكس المعامل بصورة نقية مدى كفاءة عملية التقييم بعيداً عن التضخم الاحتمالي.
2.2 حساب التوافق الملاحظ (po) خطوة بخطوة
لحساب التوافق الملاحظ (po)، يبدأ الباحث بتلخيص البيانات الخام في جدول تقاطع تكراري ثنائي الأبعاد (Contingency Table) بحجم (k × k)، حيث يمثل (k) عدد الفئات التشخيصية المتاحة (مثل: سليم، مصاب، غير محدد). توضع تصنيفات المقيم الأول في صفوف الجدول، بينما توضع تصنيفات المقيم الثاني في أعمدته.
تُمثل الخلايا الواقعة على “القطر الرئيسي” (Main Diagonal) الممتد من أعلى اليسار إلى أسفل اليمين في المصفوفة التكرارات التي اتفق فيها كلا المقيمين تماماً على نفس الفئة التشخيصية. لحساب التوافق الملاحظ، يقوم الباحث بالخطوات التالية:
- جمع التكرارات الفعلية الواقعة في خلايا القطر الرئيسي للجدول التكراري.
- حساب الحجم الكلي للعينة (N)، وهو مجموع التكرارات في جميع خلايا المصفوفة بلا استثناء.
- قسمة مجموع تكرارات القطر الرئيسي على الحجم الكلي للعينة (N) للحصول على النسبة العشرية للتوافق الملاحظ (po).
إذا كان لدينا 100 مريض، واتفق المقيمان على تصنيف 45 مريضاً بأنهم “مصابون” و35 مريضاً بأنهم “أصحاء”، في حين اختلفا في تشخيص 20 مريضاً، فإن مجموع القطر الرئيسي يكون 80 (45 + 35)، وبالتالي تصبح قيمة (po) مساوية لـ 0.80 (أي 80%).
2.3 حساب التوافق المتوقع بالصدفة (pe)
يتطلب حساب التوافق المتوقع بالصدفة (pe) فهماً لقواعد الاحتمالات المستقلة في الإحصاء الرياضي. يفترض النموذج النظري أنه إذا كان المقيمان يصدران أحكامهما بشكل عشوائي ومستقل تماماً، فإن احتمال اتفاقهما على فئة معينة بالصدفة يساوي حاصل ضرب الاحتمال الهامشي لاختيار المقيم الأول لتلك الفئة في الاحتمال الهامشي لاختيار المقيم الثاني لنفس الفئة.
يتم تنفيذ هذا الحساب وفق الخطوات الرياضية التالية:
- حساب المجموع الهامشي لكل صف (إجمالي الحالات التي صنفها المقيم الأول في كل فئة) وقسمته على إجمالي العينة للحصول على الاحتمال الهامشي للمقيم الأول.
- حساب المجموع الهامشي لكل عمود (إجمالي الحالات التي صنفها المقيم الثاني في كل فئة) وقسمته على إجمالي العينة للحصول على الاحتمال الهامشي للمقيم الثاني.
- ضرب الاحتمال الهامشي للمقيم الأول في الاحتمال الهامشي للمقيم الثاني لكل فئة تشخيصية على حدة للحصول على التوافق المتوقع لتلك الفئة.
- جمع احتمالات التوافق المتوقعة لجميع الفئات للحصول على القيمة الإجمالية للتوافق المتوقع بالصدفة (pe).
من خلال دمج قيمتي (po) و(pe) في المعادلة الأساسية، نحصل على قيمة كابا الدقيقة، والتي توضح بشكل قاطع النسبة المئوية للاتفاق غير العشوائي بين المقيمين.
3. تفسير قيم معامل كابا كوهين ومعايير الحكم الإحصائي
3.1 النطاق الرقمي لقيم كابا ومدلولاته العامة
يتراوح النطاق الرقمي النظري لمعامل كابا كوهين عادةً بين -1.0 و +1.0، على الرغم من أن القيم المحصورة بين 0 و 1 هي الأكثر شيوعاً في التطبيقات النفسية والطبية الواقعية. يعكس هذا النطاق معاني إحصائية وسيكومترية دقيقة يجب على الباحث استيعابها قبل الشروع في تفسير دراسته:
- القيمة +1.0: تدل على التوافق التام والمطلق (Perfect Agreement) بين المقيمين؛ حيث تطابقت جميع قراراتهما التشخيصية بنسبة 100% في جميع الحالات وبما يتجاوز التوافق المتوقع بالصدفة بالكامل.
- القيمة 0.0: تدل على أن التوافق الملاحظ بين المقيمين يعادل تماماً ما يمكن توقعه بمحض الصدفة العشوائية (Chance Agreement)، مما يعني عدم وجود أي ثبات حقيقي أو موثوقية في أداة التقييم المستخدمة.
- القيم السالبة (بين 0 و -1.0): تشير إلى وجود تنافر منهجي (Systematic Disagreement) أو تعارض حاد؛ حيث يكون التوافق الملاحظ الفعلي أقل بكثير مما هو متوقع عشوائياً. يحدث هذا غالباً عند وجود سوء فهم جذري في تعريف الفئات التشخيصية بين المقيمين، أو عند تبادل معكوس للتعريفات الإجرائية.
نادراً ما تظهر القيم السالبة في الدراسات المقننة، ولكن ظهورها يعد مؤشراً تحذيرياً قوياً يستدعي مراجعة أدوات القياس وإعادة تدريب المقيمين من الصفر لتوحيد الرؤية التشخيصية.
3.2 معايير لانديس وكوخ (Landis & Koch) المعتمدة
نظراً لأن معامل كابا مقياس مستمر، احتاج الباحثون إلى أطر مرجعية إرشادية لتصنيف جودة الاتفاق إلى فئات نوعية ذات دلالة عملية. وضع العالمان ريتشارد لانديس وغاري كوخ (Landis & Koch) في ورقتهما الكلاسيكية المنشورة عام 1977 في مجلة Biometrics المعيار الأكثر انتشاراً واستشهاداً في البحوث النفسية والطبية، وقسما قيم كابا إلى الفئات التالية:
- أقل من 0.00: توافق ضعيف جداً أو تنافري (Poor agreement).
- من 0.01 إلى 0.20: توافق طفيف أو ضئيل (Slight agreement).
- من 0.21 إلى 0.40: توافق مقبول أو عادل (Fair agreement).
- من 0.41 إلى 0.60: توافق معتدل أو متوسط (Moderate agreement).
- من 0.61 إلى 0.80: توافق جوهري أو جيد (Substantial agreement).
- من 0.81 إلى 1.00: توافق تام أو شبه مثالي (Almost perfect agreement).
ورغم الشهرة الواسعة لمعيار لانديس وكوخ، إلا أن واضعيه أكدا صراحة أنه معيار وصفي استرشادي لا يمثل حقيقة رياضية مطلقة. لذلك، ينبغي للباحثين استخدام هذه الفئات بمرونة مع مراعاة حساسية التطبيق العيادي؛ فالتوافق “المعتدل” (0.50) قد يكون مقبولاً في بحث استطلاعي أولي، لكنه يُعد غير كافٍ ومحفوفاً بالمخاطر في التشخيصات الطبية المصيرية.
3.3 معايير فليس (Fleiss) البديلة وتطبيقاتها العيادية
في مقابل معيار لانديس وكوخ متعدد الفئات، اقترح الإحصائي جوزيف فليس (Joseph L. Fleiss) عام 1981 نظاماً تصنيفياً أكثر صرامة ومحافظة، تم تصميمه خصيصاً لتلبية المتطلبات الحرجة للأبحاث الطبية والإكلينيكية. يعتمد مقياس فليس على ثلاثة حدود فاصلة رئيسية لتقييم كفاءة التوافق:
- القيم الأقل من 0.40: تشير إلى توافق ضعيف أو غير كافٍ إكلينيكياً (Poor agreement)، مما يستوجب عدم الاعتماد على الأداة التشخيصية في اتخاذ قرارات علاجية.
- القيم من 0.40 إلى 0.75: تشير إلى توافق من متوسط إلى جيد (Intermediate to Good agreement)، وهي مقبولة في معظم البحوث المسحية والسلوكية المقننة.
- القيم الأعلى من 0.75: تشير إلى توافق ممتاز واستثنائي (Excellent agreement)، وتعد المعيار المستهدف في التجارب السريرية والأدوات التشخيصية المعتمدة رسمياً.
عند كتابة التقارير والأوراق البحثية للنشر في الدوريات العلمية المحكمة، يجب على الباحث تحديد المرجع المنهجي الذي استند إليه في تفسير النتائج (سواء كان لانديس وكوخ أو فليس). كما يُنصح دائماً بعدم الاكتفاء بالوصف اللفظي، بل تقديم القيمة الرقمية الدقيقة لكابا مرفقة بالخطأ المعياري وفترة الثقة الإحصائية لتمكين القارئ من التقييم الموضوعي للنتائج.
4. إعداد بيئة العمل وتثبيت الحزم اللازمة في R
4.1 تثبيت واستدعاء حزمة psych
تُعد حزمة psych، التي طورها البروفيسور ويليام ريفيل (William Revelle) من جامعة نورث وسترن، الحزمة الأكثر شمولاً واعتماداً في مجال القياس النفسي وتحليل البيانات السلوكية في بيئة R. توفر هذه الحزمة مجموعة ضخمة من الدوال المتخصصة في تحليل الاستبيانات، ونمذجة العوامل، وحساب معاملات الثبات المختلفة بما فيها معامل كابا كوهين.
لتثبيت حزمة psych من مستودع الحزم الرسمي CRAN، يتم تشغيل الأمر التالي في سطر الأوامر (R Console):
install.packages("psych")
بعد اكتمال التثبيت بنجاح، يجب استدعاء الحزمة في بداية كل جلسة عمل أو في بداية ملف السكريبت التحليلي (R Script) باستخدام الأمر:
library(psych)
تتميز حزمة psych بقدرتها المتقدمة على حساب كابا البسيط وكابا الموزون في خطوة واحدة، مع تزويد الباحث بتقديرات الخطأ المعياري، واختبارات الدلالة الإحصائية (z-values)، وفترات الثقة غير المتماثلة بدقة رياضية متناهية.
4.2 استعراض حزم برمجية مساعدة وبديلة في R
بالإضافة إلى حزمة psych، توجد حزم برمجية إحصائية أخرى متخصصة توفر وظائف مكملة أو مقاربات بديلة لحساب وتحليل التوافق بين المقيمين داخل لغة R:
- حزمة irr (Inter-Rater Reliability): تُعد الحزمة الأكثر تخصصاً في مقاييس الثبات، وتوفر دوالاً مثل
kappa2()لحساب كابا لمقيمين اثنين مع خيارات متعددة للأوزان، ودالةkappam.fleiss()للتعامل مع أكثر من مقيمين. - حزمة vcd (Visualizing Categorical Data): متخصصة في تحليل وتصور البيانات الفئوية وتوفر دالة
Kappa()المتميزة ومخططات التوافق البصرية المتقدمة (Agreement Plots). - حزمة DescTools: أداة إحصائية وصفية شاملة تتضمن دالة
CohenKappa()لحساب المعامل مع توليد فترات ثقة باستخدام خوارزميات البوتستراب (Bootstrap) والحساب التقريبي الكلاسيكي.
يمكن تثبيت هذه الحزم الإضافية مجتمعة لتعزيز قدرات الباحث التحليلية باستخدام الأمر البرمجي:
install.packages(c("irr", "vcd", "DescTools", "ggplot2"))
4.3 تجهيز وتنظيم هيكل البيانات النفسية داخل R
يتطلب حساب كابا كوهين في R تنظيم البيانات في شكل إحصائي محكم وموحد لتجنب الأخطاء البرمجية الشائعة. النموذج الأمثل هو إنشاء إطار بيانات (data.frame) أو مصفوفة (matrix) تحتوي على عمودين رئيسيين؛ حيث يمثل كل صف حالة واحدة خاضعة للتقييم (مثل مريض أو مفحوص)، ويمثل العمود الأول تقييم الفاحص (A)، بينما يمثل العمود الثاني تقييم الفاحص (B).
من الأهمية بمكان التأكد من أن المتغيرات قد تم تعريفها كعوامل (Factors) داخل R، مع ضمان تطابق تام في أسماء المستويات (Levels) وترتيبها الدقيق بين المقيمين حتى وإن لم يستخدم أحد المقيمين إحدى الفئات التشخيصية في العينة. يمكن تحقيق ذلك عبر الأوامر البرمجية التالية:
ratings$Rater1 <- factor(ratings$Rater1, levels = c("سليم", "اكتئاب طفيف", "اكتئاب حاد"))
ratings$Rater2 <- factor(ratings$Rater2, levels = c("سليم", "اكتئاب طفيف", "اكتئاب حاد"))
يضمن هذا التوحيد للمستويات بناء مصفوفة توافق مربعة متماثلة الأبعاد (k × k)، وهو شرط رياضي وبرمجي لا غنى عنه لإجراء العمليات الحسابية بنجاح واستخراج النتائج دون تشوهات تحليلية.
5. الحساب العملي لمعامل كابا كوهين باستخدام حزمة psych
5.1 إنشاء مصفوفة البيانات وتمثيل الحالات التشخيصية
للبدء في التطبيق العملي، سنقوم بإنشاء سيناريو افتراضي واقعي يتضمن تقييم 15 مريضاً خضعوا لفحص نفسي مستقل من قبل أخصائيين لتشخيص وجود اضطراب القلق (مصاب / غير مصاب). يمكن بناء هذه البيانات داخل R باستخدام الكود التالي:
# بناء إطار بيانات للمقيمين
diagnostic_data <- data.frame(
Rater_A = c("مصاب", "مصاب", "غير مصاب", "مصاب", "غير مصاب", "غير مصاب", "مصاب", "مصاب", "غير مصاب", "غير مصاب", "مصاب", "غير مصاب", "مصاب", "غير مصاب", "مصاب"),
Rater_B = c("مصاب", "غير مصاب", "غير مصاب", "مصاب", "غير مصاب", "مصاب", "مصاب", "مصاب", "غير مصاب", "غير مصاب", "مصاب", "غير مصاب", "غير مصاب", "غير مصاب", "مصاب")
)
بعد إدخال البيانات، نقوم بإنشاء جدول التقاطع التكراري للتحقق البصري من التوزيع باستخدام الدالة الأساسية table():
contingency_tab <- table(diagnostic_data$Rater_A, diagnostic_data$Rater_B)
print(contingency_tab)
يعرض هذا الجدول توزيع التوافق والاختلاف، حيث يُظهر القطر الرئيسي عدد الحالات التي اتفق فيها الأخصائيان على التشخيص، بينما توضح الخلايا الجانبية مواضع التناقض التشخيصي، مما يمهد الطريق لتطبيق التحليل الإحصائي السيكومتري الدقيق.
5.2 تطبيق الدالة cohen.kappa() واستخراج النتائج الأساسية
توفر حزمة psych دالة فائقة القوة تدعى cohen.kappa(). تقبل هذه الدالة إما إطار بيانات يحتوي على تقييمات الملاحظين في أعمدة منفصلة، أو مصفوفة توافق تكرارية مربعة تم تجهيزها مسبقاً. لتنفيذ الحساب على مجموعة البيانات التي أنشأناها، نستخدم الأمر التالي:
library(psych)
kappa_results <- cohen.kappa(diagnostic_data)
print(kappa_results)
تقوم الدالة بتنفيذ سلسلة من العمليات الرياضية المعقدة في الخلفية، فتقوم بحساب المجاميع الهامشية، وتوليد التوافق المتوقع بالصدفة، واستخراج قيمة كابا غير الموزون وكابا الموزون، بالإضافة إلى حساب التباين والخطأ المعياري المقارب استناداً إلى خوارزميات فليس وسيسل وكوهين الرياضية.
تتميز دالة cohen.kappa() بأنها مرنة للغاية؛ حيث تتيح للمستخدم ضبط معاملات متقدمة مثل w = NULL للأوزان المخصصة، أو alpha = 0.05 لتحديد مستوى الدلالة وفترات الثقة المطلوبة، مما يجعلها الخيار المفضل للمحللين في ميدان القياس النفسي.
5.3 قراءة وتحليل مخرجات الدالة وحساب فترات الثقة
عند طباعة كائن النتائج kappa_results، تظهر مخرجات تفصيلية مقسمة إلى عدة أجزاء رئيسية. يتضمن الجزء الأول قيمة كابا غير الموزون (Unweighted Kappa) وقيمة كابا الموزون (Weighted Kappa) إلى جانب الخطأ المعياري المقدر (standard error).
لعرض فترات الثقة (Confidence Intervals) بدقة عند مستوى ثقة 95%، نستعرض العنصر confid داخل كائن المخرجات:
print(kappa_results$confid)
تُظهر هذه المخرجات الحد الأدنى (lower bound)، والتقدير النقطي (estimate)، والحد الأعلى (upper bound) لمعامل كابا. تُعد فترات الثقة بالغة الأهمية في القياس النفسي؛ لأنها تعبر عن مدى دقة التقدير الإحصائي بناءً على حجم العينة المفحوصة. فإذا كانت فترة الثقة واسعة (مثلاً من 0.20 إلى 0.85)، فهذا يشير إلى تذبذب كبير وعدم يقين إحصائي يستدعي زيادة حجم العينة لرفع دقة القياس.
كما تستخرج الدالة قيمة z-score ومستوى الدلالة المقترن بها (p-value) لاختبار الفرضية الصفرية القائلة بأن كابا يساوي صفراً في المجتمع الإحصائي، مما يمنح الباحث سنداً إحصائياً متكاملاً لتقرير نتائجه.
6. كابا كوهين الموزون (Weighted Kappa) للبيانات الترتيبية
6.1 مفهوم كابا الموزون ودواعي استخدامه في علم النفس
في كثير من التقييمات النفسية والسلوكية، لا تكون البيانات اسمية بحتة خالية من الترتيب، بل تكون متغيرات فئوية ترتيبية (Ordinal Variables) تشتمل على تدرج هرمي واضح، مثل قياس شدة الأعراض النفسية: (بدون، خفيف، متوسط، شديد)، أو تقييم الرضا في مقاييس ليكرت (غير موافق بشدة إلى موافق بشدة).
عند استخدام كابا كوهين الكلاسيكي غير الموزون مع البيانات الترتيبية، يقع الباحث في خطأ منهجي؛ حيث يعامل المقياس جميع أنواع الخلافات التشخيصية بنفس الدرجة من القسوة. فعلى سبيل المثال، إذا صنف المقيم الأول مريضاً بأنه “اكتئاب خفيف” وصنفه الثاني بأنه “اكتئاب متوسط”، فإن كابا الكلاسيكي يعتبر هذا الخلاف مساوياً تماماً في الخطأ لحالة يصنف فيها المقيم الأول المريض بأنه “سليم تماماً” بينما يصنفه الثاني بأنه “اكتئاب شديد وحرج”.
هنا تبرز الحاجة إلى “كابا كوهين الموزون” (Weighted Kappa)، والذي ابتكره جاكوب كوهين عام 1968. يتيح كابا الموزون إدخال مصفوفة أوزان تعاقب الخلافات الكبيرة والبعيدة بدرجة أعلى، بينما تمنح اتفاقاً جزئياً وتسامحاً مع الخلافات الطفيفة الواقعة بين الفئات المتجاورة، مما يجعله المقياس الأنسب سيكومترياً للمتغيرات الترتيبية.
6.2 الأوزان الخطية مقابل الأوزان التربيعية (Linear vs. Quadratic)
يعتمد حساب كابا الموزون على تحديد مصفوفة أوزان مسبقة، وهناك نظامان رياضيان رئيسيان وشائعان لتحديد هذه الأوزان في البرمجيات الإحصائية:
- الأوزان الخطية (Linear Weights – Cicchetti-Allison): تتناسب فيها العقوبة الرياضية المفروضة على عدم الاتفاق طردياً وخطياً مع المسافة الفاصلة بين الفئات. فخلاف بمقدار فئتين يتلقى ضعف عقوبة خلاف بمقدار فئة واحدة. صيغة الوزن الخطي لخلية (i, j) في مصفوفة ذات (k) من الفئات هي:
w_ij = 1 - (|i - j| / (k - 1)) - الأوزان التربيعية (Quadratic Weights – Fleiss-Cohen): تُضخم العقوبة المفروضة على التباعد بشكل أسي وتربيعي. فالخلافات المتباعدة جداً تُعاقب بقسوة شديدة، بينما تُمنح الخلافات القريبة وزناً شبه متطابق مع الاتفاق التام. صيغة الوزن التربيعي هي:
w_ij = 1 - ((i - j)^2 / (k - 1)^2)
من الناحية الرياضية، ثبت رسمياً أن كابا كوهين الموزون تربيعياً يكافئ تماماً “معامل الارتباط داخل الفئة” (Intraclass Correlation Coefficient – ICC) للنموذج العشوائي ثنائي الاتجاه، مما يربط بسلاسة بين القياس الفئوي الترتيبي والقياس الكمي المتصل.
6.3 تطبيق كابا الموزون في R ومقارنة النتائج
تحسب دالة cohen.kappa() في حزمة psych كابا الموزون تلقائياً باستخدام الأوزان التربيعية بشكل افتراضي. لتوضيح الفرق بين المقياسين على بيانات ترتيبية لتقييم شدة القلق (1 = منخفض، 2 = متوسط، 3 = مرتفع)، نكتب الكود التالي:
# بيانات تقييم شدة القلق لعشرة مرضى
anxiety_ratings <- data.frame(
Rater1 = c(1, 2, 2, 3, 1, 3, 2, 1, 2, 3),
Rater2 = c(1, 1, 2, 3, 2, 3, 2, 1, 3, 3)
)
results <- cohen.kappa(anxiety_ratings)
cat("كابا غير الموزون:", results$kappa, "n")
cat("كابا الموزون تربيعياً:", results$weighted.kappa, "n")
عند تشغيل هذا الكود، سنلاحظ دائماً أن قيمة كابا الموزون تكون أعلى من كابا غير الموزون في حال كانت الخلافات محصورة بين فئات متجاورة (مثل الخلاف بين 1 و 2). يعود هذا الارتفاع إلى احتساب التوافق الجزئي وعدم إهدار التقارب الملحوظ بين الفاحصين، مما يعكس بدقة أعلى واقع الثبات الترتيبي في البيئة الإكلينيكية.
7. استخدام حزمة irr كبديل متقدم لحساب التوافق في R
7.1 تطبيق الدالة kappa2() وإعداداتها
تُعد حزمة irr من أعرق الحزم وأكثرها تخصصاً واستقراراً لحساب مقاييس التوافق وموثوقية المقيمين في R. تقدم الحزمة دالة مخصصة لمقيمين اثنين هي kappa2()، والتي تمتاز بتركيزها المباشر وصياغتها البرمجية شديدة الوضوح.
لتطبيق دالة kappa2()، نمرر إطار البيانات مع تحديد نوع الأوزان المطلوبة عبر الوسيط weight:
library(irr)
# حساب كابا غير الموزون
res_unweighted <- kappa2(anxiety_ratings, weight = "unweighted")
print(res_unweighted)
# حساب كابا الموزون خطياً (Equal Weights / Linear)
res_linear <- kappa2(anxiety_ratings, weight = "equal")
print(res_linear)
# حساب كابا الموزون تربيعياً (Squared Weights / Quadratic)
res_squared <- kappa2(anxiety_ratings, weight = "squared")
print(res_squared)
تمنح هذه المرونة للمحلل النفسي إمكانية المقارنة الدقيقة والمباشرة بين نماذج الأوزان المختلفة لنفس مجموعة البيانات واختيار النموذج الأكثر اتساقاً مع الفرضيات النظرية للبحث السيكومتري.
7.2 اختبار الفرضيات الإحصائية وقيمة p-value
تقوم دالة kappa2() تلقائياً باختبار الفرضية الصفرية الإحصائية (Null Hypothesis)، والتي تنص على أن قيمة كابا في المجتمع مساوية للصفر (H0: κ = 0)، في مقابل الفرضية البديلة (H1: κ > 0).
تستخرج الدالة قيمة إحصاء الاختبار المعياري (z-statistic) ومستوى الدلالة الاحتمالي المقترن به (p-value). إذا كانت قيمة p-value أقل من مستوى الدلالة المعتمد (عادةً 0.05 أو 0.01)، يرفض الباحث الفرضية الصفرية ويستنتج أن التوافق بين المقيمين ذو دلالة إحصائية ويتجاوز ما يمكن توقعه بمحض الصدفة.
ومع ذلك، يشدد خبراء القياس السيكومتري على ضرورة الحذر؛ فالدلالة الإحصائية تعتمد بشدة على حجم العينة. ففي العينات الضخمة جداً، قد تكون قيمة كابا ضئيلة جداً وغير مقبولة إكلينيكياً (مثل κ = 0.25) ومع ذلك تظهر بقيمة p-value دالة إحصائياً (p < 0.001). لذلك، يجب دائماً تقييم “حجم الأثر” المتمثل في القيمة الفعلية لكابا وفترة ثقته بجانب قيمة الدلالة الاحتمالية.
7.3 مقارنة المخرجات الإحصائية بين psych و irr
عند مقارنة مخرجات حزمة psych بمخرجات حزمة irr، يتبين وجود تكامل وظيفي ممتاز بينهما، مع وجود بعض الفروق المنهجية التي يجب على الباحث إدراكها:
- حزمة psych: تتفوق في تقديم مخرجات غنية بفترات الثقة التفصيلية (Confidence Intervals)، وتوفر كابا البسيط والموزون معاً في استدعاء واحد، كما تحسب الخطأ المعياري المقارب بدقة متناهية تحت فرضيات متعددة.
- حزمة irr: تركز على التنسيق الإحصائي الكلاسيكي لاختبارات الفروض؛ حيث تبرز قيم z و p-value بشكل مباشر، وتسمح بالتبديل السلس والصريح بين الأوزان الخطية والتربيعية دون تعقيد برمجي.
من الناحية الحسابية، تعطي كلا الحزمتين نفس التقدير النقطي لقيمة كابا تماماً عند استخدام نفس صيغة الأوزان، مما يمنح الباحث حرية الاختيار بناءً على متطلبات التحليل والعرض الأكاديمي في بحثه.
8. معالجة مفارقات وقيود كابا كوهين (Kappa Paradoxes)
8.1 مفارقة معدل الانتشار (Prevalence Paradox)
رغم الرصانة الرياضية لمعامل كابا كوهين، إلا أنه يعاني من سلوكيات إحصائية غير متوقعة تُعرف في الأدبيات المنهجية باسم “مفارقات كابا” (Kappa Paradoxes)، والتي وصفها فاينشتاين وسيتشيتي (Feinstein & Cicchetti) عام 1990. أولى هذه المفارقات وأخطرها هي “مفارقة معدل الانتشار” (Prevalence Paradox).
تحدث هذه المفارقة عندما يكون التوزيع الحقيقي للظاهرة في العينة غير متوازن بشدة (أي أن معدل انتشار إحدى الفئات مرتفع جداً أو منخفض جداً مقارنة بالأخرى). في هذه الحالة، ترتفع قيمة التوافق المتوقع بالصدفة (pe) بشكل هائل وتلقائي، مما يؤدي بالضرورة إلى انخفاض حاد ومفاجئ في قيمة معامل كابا المحسوبة، حتى لو كانت نسبة التوافق الملاحظ الفعلي (po) مرتفعة للغاية وتتجاوز 90% أو 95%!
لتشخيص حدوث هذه المفارقة، يجب على الباحث دائماً فحص التكرارات الهامشية لجدول التوافق؛ فإذا وجد أن إحدى الفئات تستحوذ على الأغلبية الساحقة من الحالات، فعليه أن يدرك أن انخفاض كابا لا يعكس بالضرورة ضعفاً في كفاءة المقيمين، بل هو أثر جانبي رياضي لخلل التوزيع التكراري للظاهرة في العينة.
8.2 مفارقة التحيز (Bias Paradox) والتوزيع غير المتماثل
المفارقة الثانية هي “مفارقة التحيز” (Bias Paradox)، والتي ترتبط بوجود ميل منهجي أو تحيز غير متماثل لدى أحد المقيمين مقارنة بالآخر في تفضيل استخدام فئة تشخيصية معينة. على سبيل المثال، قد يكون الفاحص الأول أكثر ميلاً لتشخيص “الحالات الإيجابية” بشكل عام مقارنة بالفاحص الثاني المتحفظ.
من المفارقات الرياضية المدهشة لكابا أنه عندما يزداد عدم التماثل في المجاميع الهامشية بين المقيمين (أي يزداد التحيز والتباين بينهما)، تنخفض قيمة التوافق المتوقع بالصدفة (pe)، مما يؤدي – على عكس المنطق الظاهري – إلى “ارتفاع” مصطنع في قيمة كابا لنفس المستوى من التوافق الملاحظ!
لتقييم هذه الظواهر كمياً، طور الباحثون مؤشرات مساعدة تشمل: “مؤشر الانتشار” (Prevalence Index – PI) و”مؤشر التحيز” (Bias Index – BI)، واللذان يُنصح بحسابهما جنباً إلى جنب مع كابا لتشخيص ما إذا كانت النتائج خاضعة لتأثير هذه المفارقات الإحصائية المضللة.
8.3 البدائل البرمجية للتعامل مع المفارقات في R
للتغلب على مفارقات كابا، طُوّرت مقاييس توافق بديلة وأكثر استقراراً، ويأتي في مقدمتها معامل فينش كابا المعدل لمواجهة التحيز والانتشار (PABAK – Prevalence-Adjusted Bias-Adjusted Kappa)، ومعامل جويت الأول (Gwet’s AC1).
يتميز معامل Gwet’s AC1 بحصانته الرياضية الفائقة ضد مفارقة معدل الانتشار والتحيز الهامشي، مما يجعله البديل العصري الأكثر موثوقية في القياس السيكومتري الحديث. يمكن حساب هذه المقاييس البديلة في R بسهولة باستخدام حزمة irrCAC المتخصصة:
# تثبيت واستدعاء حزمة irrCAC
# install.packages("irrCAC")
library(irrCAC)
# حساب معامل Gwet's AC1 لمصفوفة البيانات
gwet_res <- gwet.ac1.raw(diagnostic_data)
print(gwet_res$est)
# حساب معامل PABAK المعدل
# يمكن حسابه أيضاً عبر حزمة epiR أو DescTools
يُمكّن تقديم قيم Gwet’s AC1 إلى جانب كابا كوهين الباحث من تقديم تقرير إحصائي رصين ومحكم يكشف شفافية التوافق واستقلاليته عن التأثيرات المشوهة للتوزيع الهامشي.
9. تصور وفحص مصفوفات التوافق بيانياً في R
9.1 إنشاء مخططات التوافق (Agreement Charts) عبر حزمة vcd
يمثل التصور البصري أداة استكشافية قوية تكشف أنماط التوافق ومواضع الخلاف التي قد تخفيها الأرقام المجردة. تقدم حزمة vcd وظيفة بصرية متقدمة تعرف باسم “مخطط التوافق لبانغديوالا” (Bangdiwala’s Agreement Plot) عبر دالة agreementplot().
لتوليد هذا المخطط لمصفوفة التوافق التكرارية، نستخدم الأمر البرمجي التالي:
library(vcd)
# توليد جدول التوافق
tab <- table(diagnostic_data$Rater_A, diagnostic_data$Rater_B)
# رسم مخطط التوافق
agreementplot(tab, main = "مخطط التوافق التشخيصي بين المقيمين",
xlab = "المقيم أ", ylab = "المقيم ب")
يعرض هذا المخطط مستطيلات متداخلة؛ حيث يمثل المستطيل الخارجي التكرارات الهامشية لكل فئة، بينما تمثل المربعات المظللة الداخلية السوداء والرمادية مقدار الاتفاق الفعلي التام والجزئي. إذا كانت المربعات المظللة تملأ المساحات بالكامل وتتطابق مع القطر، فهذا دليل بصري فوري على وجود توافق مثالي بين الملاحظين.
9.2 بناء خرائط حرارية (Heatmaps) باستخدام ggplot2
تُعد الخرائط الحرارية (Heatmaps) باستخدام حزمة ggplot2 الأسلوب الأحدث والأكثر جمالية لعرض مصفوفات الارتباط والتوافق التشخيصي في التقارير الأكاديمية الاحترافية. يتيح هذا التصور تمييز كثافة التكرارات في خلايا الاتفاق والاختلاف عبر تدرجات لونية معبرة.
يمكن تحويل جدول التوافق إلى رسم حراري تفاعلي متقدم عبر الكود التالي:
library(ggplot2)
# تحويل الجدول إلى إطار بيانات ملائم للرسم
df_tab <- as.data.frame(tab)
colnames(df_tab) <- c("Rater_A", "Rater_B", "Frequency")
# بناء الخريطة الحرارية
ggplot(df_tab, aes(x = Rater_A, y = Rater_B, fill = Frequency)) +
geom_tile(color = "white", size = 0.8) +
geom_text(aes(label = Frequency), size = 6, fontface = "bold") +
scale_fill_gradient(low = "#e0f2fe", high = "#0369a1") +
labs(title = "مصفوفة التوافق التشخيصي بين الفاحصين",
x = "تقييم الأخصائي (أ)", y = "تقييم الأخصائي (ب)",
fill = "التكرار") +
theme_minimal(base_size = 14) +
theme(plot.title = element_text(hjust = 0.5, face = "bold"))
تُبرز هذه الخريطة بوضوح مواضع التركيز التكراري؛ حيث تظهر خلايا القطر المتطابقة بلون داكن كثيف، في حين تبرز الخلايا الخلافية بألوان باهتة، مما يسهل قراءة التوافق بنظرة بصرية شاملة وسريعة.
9.3 دمج الرسوم البيانية في التقارير السيكومترية
عند إعداد التقارير السيكومترية النهائية لنشرها في المجلات العلمية المصنفة، يجب تصدير الأشكال البيانية بدقة وضوح طباعية عالية لا تقل عن 300 نقطة في البوصة (DPI). يمكن تحقيق ذلك في R باستخدام دالة ggsave():
ggsave("agreement_heatmap.png", width = 8, height = 6, dpi = 300)
كما ينبغي كتابة شروحات إيضاحية مرافقة للرسم البياني (Figure Captions) توضح دلالة المحاور، وحجم العينة الكلي، وقيمة كابا المحسوبة وفترة ثقتها. لا يقتصر دور هذه الرسوم على الناحية الجمالية، بل يُعد فحصاً تشخيصياً بالغ الأهمية لتحديد الفئات التي تسبب اللبس والارتباك الأكبر للمقيمين، مما يساعد مشرفي المشاريع البحثية على إعادة توجيه برامج التدريب ومعايرة الأدوات بشكل دقيق وموجه نحو بؤر الخلل.
10. دراسة حالة تطبيقية شاملة: تقييم تشخيصي نفسي في R
10.1 وصف سيناريو الدراسة النفسية وتوليد البيانات
لتطبيق جميع المفاهيم السابقة في سياق عملي متكامل، سنفترض إجراء دراسة سيكومترية تهدف إلى تقييم ثبات المقابلات التشخيصية شبه المقننة لاضطراب الاكتئاب الجسيم (Major Depressive Disorder – MDD) وفق معايير الدليل التشخيصي والإحصائي الخامس (DSM-5). قام أخصائيان نفسيان إكلينيكيان مستقلان (الفاحص 1 والفاحص 2) بتقييم عينة مكونة من 50 مريضاً تم تصنيفهم إلى ثلاث فئات ترتيبية لشدة الأعراض: “سليم” (Normal)، “اكتئاب طفيف” (Mild)، و”اكتئاب حاد” (Severe).
سنقوم بتوليد مجموعة بيانات تحاكي الواقع الإكلينيكي؛ حيث يوجد اتفاق كبير في الحالات المتطرفة، مع وجود بعض الخلافات التشخيصية الطبيعية بين الفئات المتجاورة، وخلافات نادرة جداً بين الفئات المتباعدة.
set.seed(123) # لضمان إمكانية تكرار النتائج بدقة
# توليد تصنيفات الفاحص الأول
r1 <- sample(c("سليم", "اكتئاب طفيف", "اكتئاب حاد"), size = 50, replace = TRUE, prob = c(0.4, 0.35, 0.25))
# محاكاة تصنيفات الفاحص الثاني مع وجود توافق مرتفع وخلافات جزئية
r2 <- r1
# إدخال بعض التباينات العشوائية الترتيبية في 10 حالات
disagree_indices <- sample(1:50, 10)
for(i in disagree_indices) {
if(r1[i] == "سليم") r2[i] <- "اكتئاب طفيف"
else if(r1[i] == "اكتئاب طفيف") r2[i] <- sample(c("سليم", "اكتئاب حاد"), 1)
else if(r1[i] == "اكتئاب حاد") r2[i] <- "اكتئاب طفيف"
}
# تنظيم البيانات في إطار بيانات نهائي وتحديد المستويات
levels_order <- c("سليم", "اكتئاب طفيف", "اكتئاب حاد")
study_data <- data.frame(
Clinician_1 = factor(r1, levels = levels_order),
Clinician_2 = factor(r2, levels = levels_order)
)
10.2 الكود البرمجي الكامل خطوة بخطوة للتحليل
سنقوم الآن بكتابة برنامج تحليلي شامل ومتكامل يستدعي الحزم المطلوبة، ويبني جدول التوافق التكراري، ويحسب كابا غير الموزون وكابا الموزون تربيعياً، ويستخرج فترات الثقة، ويجري اختبار الدلالة الإحصائية في سياق برمجي موحد:
# استدعاء الحزم المطلوبة
library(psych)
library(irr)
# 1. طباعة مصفوفة التقاطع التكراري
tab_study <- table(study_data$Clinician_1, study_data$Clinician_2)
cat("--- مصفوفة التوافق التكراري ---n")
print(tab_study)
# 2. حساب كابا وفترات الثقة عبر حزمة psych
psych_kappa <- cohen.kappa(study_data)
cat("n--- مخرجات حزمة psych ---n")
print(psych_kappa)
# 3. حساب كابا الموزون تربيعياً واختبار الدلالة عبر حزمة irr
irr_kappa_sq <- kappa2(study_data, weight = "squared")
cat("n--- مخرجات حزمة irr (الأوزان التربيعية) ---n")
print(irr_kappa_sq)
يستخرج هذا الكود كافة المؤشرات الرياضية اللازمة لتقييم ثبات الأداة التشخيصية وفهم البنية التوافقية بين الفاحصين بدقة إحصائية متكاملة.
10.3 صياغة نتائج التحليل وفق معايير جمعية علم النفس الأمريكية (APA)
تتطلب معايير الجمعية الأمريكية لعلم النفس (APA 7th Edition) صياغة نتائج الثبات الإحصائي بأسلوب أكاديمي دقيق وشفاف، يتضمن ذكر التقديرات النقطية، وفترات الثقة، والخطأ المعياري، ومستوى الدلالة، متبوعاً بالتفسير السيكومتري النوعي. فيما يلي النموذج الأكاديمي المعتمد لكتابة فقرة النتائج لهذه الدراسة:
“أُجري تقييم لثبات المقيمين (Inter-rater reliability) للتشخيص الإكلينيكي لاضطراب الاكتئاب الجسيم على عينة مكونة من 50 مريضاً خضعوا للمقابلة التشخيصية بواسطة فاحصين إكلينيكيين مستقلين. أظهرت النتائج أن نسبة التوافق الملاحظ الكلي بلغت 80.0%. وبناءً على الطبيعة الترتيبية لشدة التشخيص (سليم، طفيف، حاد)، تم حساب معامل كابا كوهين الموزون تربيعياً (Quadratic Weighted Cohen’s Kappa)، والذي أظهر ثباتاً توافقياً ممتازاً بين الفاحصين، حيث بلغت القيمة: κ_w = .82 (الخطأ المعياري SE = .06، فترة ثقة 95% [.70, .94]، قيمة z = 7.12، مستوى الدلالة p < .001). ووفقاً لمعايير لانديس وكوخ (Landis & Koch, 1977)، تقع هذه القيمة ضمن فئة التوافق شبه التام (Almost Perfect Agreement)، مما يؤكد صلاحية وموثوقية الأداة التشخيصية واستقرار معاييرها الإجرائية في التطبيق العيادي.”
11. مقارنة كابا كوهين بالمقاييس الأخرى لثبات المقيمين
11.1 مقارنة كابا كوهين مع كابا فليس (Fleiss’ Kappa)
يقع الباحثون أحياناً في التباس بين معامل كابا كوهين ومعامل كابا فليس (Fleiss’ Kappa). الفارق الجوهري والأساسي بين المقياسين يكمن في عدد المقيمين المشاركين في عملية التقييم؛ فبينما يقتصر كابا كوهين حصرياً وبصرامة على حالة وجود “مقيمين اثنين فقط” (2 Raters) يقومان بتقييم نفس المجموعة من الأفراد، صُمم كابا فليس عام 1971 للتعامل مع “ثلاثة مقيمين أو أكثر” (3+ Raters).
علاوة على ذلك، يتميز كابا فليس بقدرته على إدارة السيناريوهات التي يكون فيها المقيمون غير ثابتين لكل حالة؛ كأن يتم تقييم كل مريض بواسطة أي ثلاثة أطباء متاحين من طاقم مستشفى مكون من عشرين طبيباً. يمكن حساب كابا فليس في R بسهولة باستخدام دالة kappam.fleiss() من حزمة irr:
# حساب كابا فليس لثلاثة مقيمين فأكثر
# ratings_matrix مصفوفة تحتوي على 3 أعمدة أو أكثر
# fleiss_res <- kappam.fleiss(ratings_matrix)
إذا كان لدى الباحث مقيمان اثنان فقط، فإن استخدام كابا كوهين هو الخيار الصحيح رياضياً ومنهجياً؛ نظراً لأن افتراضات التباين والخطأ المعياري في كوهين تم اشتقاقها خصيصاً للتصميم الثنائي.
11.2 المقارنة مع معامل الارتباط داخل الفئة (ICC)
يُمثل معامل الارتباط داخل الفئة (Intraclass Correlation Coefficient – ICC) المعيار الذهبي لقياس ثبات المقيمين عندما تكون البيانات المقاسة “متصلة أو كمية أو فترية” (Continuous/Interval Data)، مثل قياس الدرجات الكلية على مقياس بيك للاكتئاب (من 0 إلى 63)، أو قياس ضغط الدم، أو أزمنة الاستجابة السلوكية بالمللي ثانية.
في المقابل، يختص كابا كوهين بالبيانات “الاسمية والفئوية الترتيبية” (Categorical/Ordinal). ومع ذلك، تتجلى العلاقة الرياضية العميقة بينهما في حقيقة أن كابا الموزون تربيعياً يكافئ رياضياً نموذج (ICC Two-way Random, Single measure, Absolute agreement). يمكن حساب ICC في R باستخدام دالة ICC() المتوفرة في حزمة psych:
# حساب معامل الارتباط داخل الفئة للبيانات المتصلة
# icc_results <- ICC(continuous_ratings_data)
يجب على الباحث الامتناع عن تحويل الدرجات المتصلة إلى فئات مصطنعة لحساب كابا؛ لأن ذلك يؤدي إلى إهدار التباين الإحصائي وتراجع القوة الاختبارية، ويُنصح دائماً باختيار المقياس الإحصائي المطابق لطبيعة المتغير الأصلية دون تشويه.
11.3 متى يجب تفضيل كابا كوهين على غيره من المقاييس؟
يتعين على الباحث والمحلل السيكومتري تفضيل واستخدام معامل كابا كوهين في الحالات والشروط المنهجية التالية:
- عندما تكون أداة القياس تعتمد على التصنيف الفئوي الاسمي غير المتصل (مثل: تشخيص نعم/لا، نمط الشخصية أ/ب/ج).
- عندما يقتصر التصميم البحثي على وجود مقيمين اثنين ثابتين قاما بتقييم نفس العينة من المفحوصين بشكل مستقل تماماً وبمعزل عن بعضهما البعض.
- في مراحل المعايرة الأولية لأدلة المقابلات التشخيصية وملاحظات السلوك في أبحاث القياس النفسي والتربوي.
- عند توفر عينة ذات حجم كافٍ وملاحظات مستقلة تتجاوز متطلبات التوزيع العشوائي التكراري.
أما إذا كانت البيانات ترتيبية ذات درجات متعددة، فيفضل استخدام كابا الموزون تربيعياً، بينما يُفضل استخدام كابا فليس في حال تعدد الملاحظين، ومعامل ICC في حال القياسات الكمية المستمرة.
12. أفضل الممارسات المنهجية واستكشاف الأخطاء البرمجية وإصلاحها
12.1 التعامل مع القيم المفقودة (Missing Values) في R
تُعد مشكلة القيم المفقودة (Missing Data – NA) من التحديات الشائعة في الأبحاث الإكلينيكية والسلوكية؛ فقد يتغيب أحد الفاحصين عن تقييم حالة معينة أو يمتنع مريض عن إكمال جزء من المقابلة. إذا تم تمرير بيانات تحتوي على قيم مفقودة إلى دوال حساب كابا دون معالجة مسبقة، ستتوقف الدالة أو تُرجع قيمة NA.
توفر معظم دوال R خيارات مدمجة لإدارة الحالات المفقودة عبر الحذف القائم على الحالات المكتملة (Listwise Deletion):
# تنظيف البيانات واستبقاء الحالات المكتملة فقط
clean_data <- na.omit(diagnostic_data)
# أو استخدام خيار use داخل بعض الدوال المتقدمة
# kappa_res <- cohen.kappa(clean_data)
من الناحية المنهجية، يجب على الباحث فحص نمط الفقدان؛ فإذا كان الفقدان كبيراً أو غير عشوائي (Missing Not at Random)، فإن استبعاد الحالات قد يولد تحيزاً في تقدير معامل التوافق، مما يستدعي توثيق نسبة الفقدان بدقة في التقرير النهائي للبحث وتطبيق خوارزميات التعويض المتعدد (Multiple Imputation) للفئات إذا لزم الأمر.
12.2 حل أشهر رسائل الخطأ الشائعة أثناء التنفيذ
أثناء تنفيذ سكريبتات تحليل كابا في R، يواجه الباحثون بعض الأخطاء البرمجية الشائعة التي يمكن تجنبها وحلها بسهولة بمجرد فهم أسبابها الإحصائية:
- خطأ عدم تطابق مستويات العوامل (Factor Levels Mismatch): يحدث عندما يرى الفاحص الأول فئات تشخيصية لم يرها الفاحص الثاني في العينة، مما يولد جدولاً غير مربع. يُحل هذا الخطأ بتوحيد المستويات صراحة كما يلي:
all_levels <- c("A", "B", "C")
data$Rater1 <- factor(data$Rater1, levels = all_levels)
data$Rater2 <- factor(data$Rater2, levels = all_levels) - خطأ المصفوفات غير المربعة (Non-square matrix error): يظهر في دالة
cohen.kappa()أوkappa2()عند تمرير جدول تكراري يختلف فيه عدد الصفوف عن عدد الأعمدة. توحيد مستويات العوامل يضمن تلقائياً بناء مصفوفة مربعة بأبعاد متطابقة حتى مع وجود تكرارات صفرية في بعض الخلايا. - تحذير التباين الصفري (Zero Variance / Degenerate Margins): يظهر عندما يختار كلا الفاحصين فئة واحدة فقط لجميع المرضى في العينة، مما يجعل التوافق المتوقع بالصدفة مساوياً لـ 1.0 ويجعل المقام صفراً، مما يتعذر معه حساب كابا رياضياً.
12.3 إرشادات عملية لرفع موثوقية وثبات الملاحظين في البحوث النفسية
لتحقيق أعلى مستويات الثبات التوافقي في مشاريع البحوث النفسية والسريرية قبل وأثناء مرحلة جمع البيانات، يُوصى باتباع البروتوكولات المنهجية الذهبية التالية:
- إعداد دليل ترميز وتشخيص إجرائي صارم (Coding Manual): يجب صياغة تعريفات إجرائية واضحة لا لبس فيها لكل فئة تشخيصية، مدعمة بأمثلة سلوكية واقعية وحالات حدية (Borderline cases) توضح كيفية حسم القرارات المتأرجحة.
- عقد ورش تدريب ومعايرة أولية (Pilot Calibration Sessions): إخضاع الفاحصين والملاحظين لتدريب مكثف على عينات تجريبية مستقلة، ومناقشة الخلافات التشخيصية بشكل جماعي حتى يتجاوز معامل كابا التجريبي عتبة 0.80 قبل النزول إلى الميدان الفعلي.
- التعمية المستقلة التامة (Double Blinding): ضمان استقلالية كل مقيم تماماً عن الآخر أثناء إجراء الفحص والتقييم لمنع التأثير المتبادل وتجنب انحياز المسايرة.
- المراقبة المستمرة لمنع “انجراف الملاحظ” (Observer Drift): حساب معامل كابا بشكل دوري على فترات منتظمة طوال فترة المشروع البحثي للتأكد من عدم تراخي الفاحصين أو تغير معاييرهم التشخيصية مع مرور الوقت.
خاتمة
يمثل معامل كابا كوهين (Cohen’s Kappa) أحد أهم الابتكارات الإحصائية في ميدان القياس النفسي والتشخيص الإكلينيكي؛ حيث استطاع تجريد التوافق بين الملاحظين من شوائب الصدفة العشوائية وتقديم تقدير كمي موضوعي لثبات القياس الفئوي. ومن خلال المرونة البرمجية الفائقة التي تتيحها لغة R عبر حزم رائدة مثل psych و irr و vcd، يستطيع الباحثون والممارسون تنفيذ تحليلات سيكومترية متقدمة، بدءاً من كابا البسيط للمتغيرات الاسمية، مروراً بكابا الموزون للمتغيرات الترتيبية، وصولاً إلى معالجة مفارقات الانتشار والتحيز وبناء التصورات البيانية عالية الدقة.
إن الالتزام بالممارسات المنهجية الصارمة—بدءاً من توحيد المعايير الإجرائية وتدريب الملاحظين، مروراً بالاختيار الدقيق لنوع الأوزان الرياضية، وانتهاءً بالتوثيق الأكاديمي الشفاف لقيم المعامل وفترات ثقته وفق معايير APA—هو الضمان الحقيقي لإنتاج أبحاث نفسية وطبية رصينة تحظى بالموثوقية العلمية وتسهم بفاعلية في تطوير المعرفة الإنسانية والممارسات الإكلينيكية القائمة على الأدلة.
References
- Cicchetti, D. V., & Allison, T. (1971). A new procedure for assessing reliability of scoring EEG sleep recordings. American Journal of EEG Technology, 11(3), 101–109. https://doi.org/10.1080/00029238.1971.11080840
- 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 provision for scaled disagreement or partial credit. Psychological Bulletin, 70(4), 213–220. https://doi.org/10.1037/h0026256
- Feinstein, A. R., & Cicchetti, D. V. (1990). High agreement but low kappa: I. The problems of two paradoxes. Journal of Clinical Epidemiology, 43(6), 543–549. https://doi.org/10.1016/0895-4356(90)90077-L
- 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. (1973). The equivalence of weighted kappa and the intraclass correlation coefficient as measures of reliability. Educational and Psychological Measurement, 33(3), 613–619. https://doi.org/10.1177/001316447303300309
- Fleiss, J. L., Levin, B., & Paik, M. C. (2003). Statistical Methods for Rates and Proportions (3rd ed.). John Wiley & Sons. https://doi.org/10.1002/0471445428
- Gwet, K. L. (2008). Computing inter-rater reliability and its variance in the presence of high agreement. British Journal of Mathematical and Statistical Psychology, 61(1), 29–48. https://doi.org/10.1348/000711006X126600
- 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
- Revelle, W. (2024). psych: Procedures for Psychological, Psychometric, and Personality Research (R package version 2.4.3). Northwestern University. https://cran.r-project.org/package=psych