تُعد دراسة العلاقات الارتباطية بين المتغيرات حجر الزاوية في بناء النظريات وتطوير النماذج التفسيرية ضمن العلوم النفسية والسلوكية والتربوية. فعندما يسعى الباحث إلى فهم البنية الكامنة لسمة نفسية، أو قياس مدى تضافر أعراض اضطراب وجداني مع محددات بيئية، فإن معاملات الارتباط تمثل الأداة الاستكشافية والوصفية الأولى التي تمنحه رؤية واضحة حول قوة تلك الروابط واتجاهاتها. ومع ذلك، تواجه هذه المساعي المنهجية تحدياً إمبريقياً مزمناً يتمثل في ظاهرة “البيانات المفقودة” (Missing Data)، وهي معضلة تكاد لا تخلو منها أي دراسة ميدانية أو عيادية تعتمد على الاستبيانات، أو المقابلات المقننة، أو الرصد الطولي لسلوك الأفراد.
في بيئة الحوسبة الإحصائية الحديثة، ولا سيما عند استخدام لغة R، تكتسب مسألة التعامل مع القيم المفقودة بعداً تقنياً ومنهجياً فائق الحساسية. فلغة R لا تتعامل مع البيانات الناقصة عبر التغاضي الضمني أو التجاهل العفوي؛ بل إن بنيتها التأسيسية قائمة على حماية سلامة العمليات الحسابية من التشويه التلقائي. يظهر هذا بوضوح في إرجاع القيمة الرمزية NA بمجرد مصادفة عنصر مفقود داخل المتجه أو المصفوفة، ما يضع الباحث أمام مسؤولية اتخاذ قرارات واعية ومبررة إحصائياً لكيفية توجيه الدوال البرمجية لمعالجة هذا النقص، بعيداً عن الحلول الاعتباطية التي قد تُطيح بالصدق الداخلي والخارجي للنتائج.
يهدف هذا الدليل الشامل والمطول إلى تفكيك إشكالية حساب معاملات الارتباط في R بوجود قيم مفقودة، مستعرضاً الأبعاد النظرية لآليات الفقدان، ومشرّحاً المعاملات والوسائط البرمجية لدالة cor() والدوال ذات الصلة، ومقارناً بين بدائل الحذف الكلي والزوجي، وصولاً إلى تقنيات التعويض الإحصائي المتقدم (Imputation) وطرق توثيق النتائج وفقاً للمعايير الصارمة لـ دليل الجمعية الأمريكية لعلم النفس (APA 7th edition). سنخوض في هذا المرجع المتعمق في التفاصيل الرياضية والإجرائية لنضمن للباحث تحليلاً رصيناً، شفافاً، وقابلاً لإعادة الإنتاج العلمي بأعلى معايير الدقة الإحصائية.
1. مقدمة نظرية: مفهوم الارتباط الإحصائي وتحدي القيم المفقودة في بيئة R
1.1 أهمية تحليل الارتباط في البحوث النفسية والسلوكية
يمثل تحليل الارتباط في العلوم السلوكية والنفسية الأداة المعيارية الأولى لتحديد اتجاه وقوة الاقتران بين المتغيرات الكامنة والملاحظة. فعند دراسة ظواهر معقدة مثل القلق، والاحتراق النفسي، وجودة الحياة، والتحصيل الأكاديمي، لا يملك الباحث في معظم الأحيان رفاهية الملاحظة المباشرة النقية؛ بل يستند إلى مقاييس مركبة تتألف من فقرات متعددة تقيس أبعاداً فرضية متداخلة. وهنا تتجلى أهمية معاملات الارتباط بوصفها اللبنة الأساسية لتقدير مصفوفات التباين والتباين المشترك (Variance-Covariance Matrices)، والتي تقوم عليها تقنيات إحصائية متقدمة مثل التحليل العاملي الاستكشافي (EFA)، والتحليل العاملي التوكيدي (CFA)، ونمذجة المعادلات البنائية (SEM).
علاوة على ذلك، يلعب الارتباط دوراً حاسماً في التحقق من الخصائص السيكومترية لأدوات القياس، وبخاصة الاتساق الداخلي والصدق البنائي بمختلف تجلياته، كالصدق التقاربي (Convergent Validity) والصدق التمايزي (Discriminant Validity). إن أي تشوه يطرأ على تقدير معامل الارتباط لا ينعكس سلباً على التفسير البسيط للعلاقة الثنائية فحسب، بل يمتد ليزعزع استقرار الأوزان العاملية، ومؤشرات مطابقة النماذج، ودقة تقديرات الانحدار المتعدد. هذا التحدي يتضاعف في الدراسات العيادية والمسوح الميدانية التي تتعامل مع عينات بشرية تتسم بطبيعتها بعدم الاستقرار في الاستجابة، وتخضع لضغوط الإرهاق النفسي، والتحيز الاجتماعي، ومقاومة الإفصاح عن البيانات الحساسة.
1.2 إشكالية القيم المفقودة (NA) في التحليل الإحصائي الرقمي
تُعرّف لغة R القيمة المفقودة عبر الثابت المنطقي NA (Not Available)، وهو مؤشر يمثل حالة غياب تام للمعلومة وليس صفراً عددياً أو مساحة فارغة. من منظور رياضي، يقوم حساب معامل ارتباط بيرسون على حاصل ضرب الانحرافات المعيارية لكل زوج من المشاهدات حول متوسطاتهما الحسابية مقسوماً على درجات الحرية والانحراف المعياري للمتغيرين. وعند غياب قيمة واحدة لأحد الأفراد على متغير معين، تصبح عملية حساب المتوسط الحسابي لذلك المتغير غير محددة رياضياً، مما يُعطل بالتبعية حساب التباين المشترك، ويجعل ناتج المعادلة التقديرية مجهولاً بالكامل.
إن الخطورة المنهجية لا تكمن في الرمز NA بحد ذاته، بل في التداعيات المترتبة على كيفية التعامل معه برمجياً وإحصائياً. فتجاهل القيم المفقودة دون فهم سياق حدوثها يقود إلى انحياز فادح في تقدير المعلمات (Parameter Estimate Bias)، ويُضعف القوة الإحصائية (Statistical Power) للاختبارات عبر تقليص الحجم الفعلي للعينة، بل وقد يؤدي إلى التوصل إلى نتائج كاذبة سواء من النوع الأول (رفض الفرضية الصفرية وهي صحيحة) أو من النوع الثاني (قبول الفرضية الصفرية وهي خاطئة). لذا، فإن المعالجة الواعية للبيانات المفقودة في R ليست مجرد خطوة برمجية لتجاوز رسائل التوقف أو التحذير، بل هي شرط منهجي إلزامي لضمان أمان النتائج الرياضية واستقامتها الإمبريقية.
1.3 فلسفة لغة R في إدارة البيانات المفقودة
تعتمد بيئة R على ما يُعرف بفلسفة “الأمان الحسابي الصارم” (Strict Computational Safety). تفترض اللغة أن أي عملية حسابية تشتمل على عنصر مجهول يجب أن تسفر حتماً عن نتيجة مجهولة، تجنباً لإعطاء الباحث شعوراً زائفاً باكتمال بياناته. فإذا طلبت من R حساب متوسط متجه يحتوي على أرقام بينها قيمة NA، فإن الدالة mean() سترجع NA فوراً، ما لم تصرح أنت صراحة بإسقاط تلك القيمة عبر الوسيط na.rm = TRUE. يتطابق هذا المبدأ الصارم مع سلوك دوال الارتباط، حيث تحجم دالة cor() عن التخمين أو الحذف التلقائي ما لم يتم توجيهها عبر وسائط مخصصة.
تفرض هذه الفلسفة على المحلل الإحصائي فهماً عميقاً لآليات التحكّم المضمنة في لغة R. فبدلاً من تبني الحلول الساذجة التي تعتمد الحذف الأعمى للحالات، توفر البيئة خيارات دقيقة للتحكم في مستويات الحذف (كلي أو زوجي)، إلى جانب توفير منظومة بيئية برمجية متكاملة تتيح مراقبة نمط الفقدان، ونمذجة آلياته، وتطبيق استراتيجيات التعويض المتقدم. إن الموازنة بين سهولة الإجراء الحسابي ودقة النمذجة السيكومترية هي جوهر الممارسة الإحصائية الرصينة في R، حيث يتعين على الباحث التحلي بالحذر قبل تمرير أي وسيط قد يغير تركيبة عينته جذرياً دون أن يدري.
2. تصنيفات آليات فقدان البيانات في المقاييس النفسية وتأثيرها المنهجي
2.1 الفقدان العشوائي بالكامل (MCAR) والافتراضات التجريبية
يتحقق شرط “الفقدان العشوائي بالكامل” (Missing Completely at Random – MCAR) عندما يكون احتمال فقدان قيمة معينة مستقلاً تماماً عن المتغير نفسه، ومستقلاً في الوقت ذاته عن أي متغيرات أخرى داخل إطار البيانات، سواء كانت مرصودة أو غير مرصودة. وفي سياق القياس النفسي، يماثل هذا النمط حالات عارضة بحتة، مثل سقوط قطرات قهوة أتلفت صفحة من استبيان ورقي، أو إخفاق غير مقصود في خادم جمع البيانات عبر الإنترنت أدى إلى فقدان إجابة فرد على فقرة عشوائية، أو تخطي المشارك لسؤال سهواً دون أي صلة بمضمون السؤال أو سماته الشخصية.
رياضياً، لا يتسبب نمط MCAR في إحداث انحياز في معاملات الارتباط المحسوبة؛ فالبيانات المتبقية تظل ممثلة للمجتمع الأصلي غير المنقوص، وتكون التقديرات الناتجة غير منحازة (Unbiased Estimates). وتكمن الخسارة الوحيدة هنا في انخفاض القوة الإحصائية نتيجة تراجع حجم العينة (N). للتحقق من هذا الافتراض في لغة R، يعتمد الباحثون على اختبارات متخصصة أبرزها اختبار ليتل للبيانات المفقودة عشوائياً بالكامل (Little’s MCAR Test)، المتوفر في حزم مثل naniar عبر الدالة mcar_test(). فإذا كانت القيمة الاحتمالية للاختبار دالة إحصائياً (p < 0.05)، يُرفض افتراض MCAR، مما يُلزم الباحث بالحذر من استراتيجيات الحذف البسيطة.
2.2 الفقدان العشوائي المشروط (MAR) والارتباط بالمتغيرات الديموغرافية
يشير “الفقدان العشوائي المشروط” (Missing at Random – MAR) إلى أن احتمال غياب البيانات عن متغير معين لا يعتمد على القيمة المجهولة للمتغير ذاته، ولكنه يرتبط ارتباطاً وثيقاً بمتغيرات أخرى رصدها الباحث بالفعل في دراسته. لنأخذ مثالاً عيادياً: قد يتردد المشاركون الأكبر سناً أو الأقل تعليماً في الإجابة عن أسئلة تتعلق بالاستخدام التكنولوجي أو بالدخل المالي؛ فغياب إجابة الدخل هنا لا يعود إلى مستوى الدخل نفسه بصورة مباشرة، بل يعود إلى فئة العمر أو المستوى التعليمي المسجلين في مصفوفة البيانات.
تحت افتراض MAR، يُعد الحذف الكلي للحالات ممارسة منهجية خاطئة تقود حتماً إلى تحيز في معاملات الارتباط وتقديرات العلاقات الخطية، لأن العينة المتبقية بعد الحذف ستكون منحازة نحو الفئات الأصغر سناً أو الأكثر تعليماً، مما يقوّض تعميم النتائج. ومع ذلك، يتميز افتراض MAR بأنه يفتح الباب واسعاً أمام استخدام تقنيات التعويض المتعدد (Multiple Imputation) ونمذجة الاحتمالية العظمى ذات المعلومات الكاملة (FIML) في R؛ حيث تُستغل المعلومات المتوفرة في المتغيرات المصاحبة لإعادة تقدير القيم الناقصة واسترجاع التباينات بدقة عالية.
2.3 الفقدان غير العشوائي (MNAR) وحساسية الأسئلة السلوكية
يمثل “الفقدان غير العشوائي” (Missing Not at Random – MNAR) أشد آليات الفقدان خطورة وتعقيداً في بحوث العلوم النفسية والعيادية. في هذا النمط، ترتبط احتمالية غياب البيانات بالقيمة الكامنة للمتغير نفسه الذي لم يُجب عليه المفحوص. ومن الأمثلة الصارخة على ذلك: امتناع الأفراد الذين يعانون من درجات اكتئاب سريري حاد عن الإجابة عن مقياس اليأس أو التفكير الانتحاري، أو تجنب الأفراد ذوي السلوكيات الإدمانية الشديدة الإفصاح عن وتيرة تعاطي المواد المخدرة في استبيان استقصائي.
في حالة MNAR، يؤدي أي حذف بسيط للبيانات إلى بتر متعمد للطرف المتطرف من التوزيع التكراري، مما يُنتج انكماشاً مصطنعاً في التباين (Restriction of Range) وتشويهاً جسيماً لمعاملات الارتباط المحسوبة، حيث ستبدو العلاقات أضعف أو أقوى مما هي عليه في الواقع الفعلي. علاوة على ذلك، لا يمكن التحقق من وجود MNAR بالاختبارات الإحصائية التقليدية داخل البيانات المتاحة وحدها، بل يتطلب التعامل معه في R بناء نماذج حساسية تصحيحية معقدة (Sensitivity Analyses) ونماذج الاختيار (Selection Models) أو نماذج مزيج الأنماط (Pattern-Mixture Models) التي تحاول نمذجة آلية الفقدان ذاتها.
3. الدالة الأساسية cor() في R وسلوكها الافتراضي مع القيم المفقودة
3.1 البنية البرمجية لدالة cor() ووسائطها الرئيسية
تُعد دالة cor() المضمنة في الحزمة الأساسية stats لبيئة R الأداة القياسية الأوسع انتشاراً لحساب مصفوفات الارتباط. تستقبل الدالة مدخلات متنوعة؛ إذ يمكن تمرير متجهين عدديين فرديين x و y، أو تمرير إطار بيانات كامل (data frame)، أو مصفوفة عددية (matrix) لحساب الارتباطات المتعددة دفعة واحدة بين جميع الأعمدة. تتحدد معالم تشغيل الدالة من خلال ثلاثة وسائط رئيسية تتحكم في الخوارزمية الحسابية المتبعة:
الوسيط الأول هو x (و y اختيارياً عند مقارنة متجهين)، والوسيط الثاني هو use، وهو الوسيط الجوهري المسؤول عن توجيه الدالة للتعامل مع البيانات الناقصة، والوسيط الثالث هو method، والذي يحدد صيغة المعامل الرياضي المطلوب، ويتيح ثلاثة خيارات معيارية: "pearson" (الافتراضي للعلاقات الخطية البارامترية)، و "kendall" (للارتباط الترتيبي غير البارامتري عبر الرتب المتطابقة)، و "spearman" (لارتباط الرتب البارامتري التقريبي). يتمثل السلوك الافتراضي للوسيط use في القيمة use = "everything"، وهو الخيار الذي يترتب عليه تعطل العمليات الحسابية بمجرد وجود أي مظهر من مظاهر الفقدان.
3.2 تحليل مشكلة إرجاع القيمة NA عند التطبيق المباشر
عندما يمتلك الباحث مصفوفة بيانات تحتوي على متغيرات سلوكية ويقوم بتنفيذ الأمر البسيط cor(df)، يتفاجأ في أغلب الحالات بتحول أجزاء واسعة من مصفوفة الارتباط — أو المصفوفة بأكملها — إلى القيم الرمزية NA. يحدث هذا السلوك البرمجي لأن القيمة الافتراضية use = "everything" تعطي تعليمات صريحة لمعالج الحساب بتطبيق معادلة التباين المشترك دون أي تصفية مسبقة، وحيث إن ضرب أو طرح أي قيمة عددية من NA ينتج رياضياً NA، فإن المخرجات تنهار بالكامل لكل زوج يرتبط بمتغير ناقص.
يتضح هذا الأثر بوضوح عند وجود متغير واحد فقط يتضمن استجابة مفقودة واحدة بين مئات المستجيبين؛ فإذا احتوى المتغير الأول على NA، فإن حسابه مع بقية المتغيرات السليمة سيعود دائماً بـ NA. هذا السلوك، وإن بدا محبطاً للمبتدئين، يمثل صمام أمان بنيوياً في لغة R لتنبيه المحلل بوجود فجوات في بياناته قبل المضي قدماً في تفسير علاقات واهية. وعليه، تبرز الحاجة المنهجية لتجاوز هذا السلوك الافتراضي وتحديد استراتيجية واضحة للتعامل مع تلك الخلايا الغائبة عبر استدعاء قيم مخصصة للوسيط use.
4. المعامل use=’complete.obs’: استراتيجية الحذف الكلي للحالات (Listwise Deletion)
4.1 الآلية الإحصائية لحذف الحالات غير المكتملة في R
عند تعيين الوسيط داخل الدالة بالصيغة البرمجية use = "complete.obs"، فإن R تطبق ما يُعرف منهجياً في حقل القياس بـ “الحذف الكلي للحالات” (Listwise Deletion أو Casewise Deletion). تستند هذه الآلية إلى فحص مصفوفة البيانات بالكامل قبل الشروع في حساب التغاير؛ فإذا تبين أن مستجيباً معيناً يمتلك قيمة NA في متغير واحد فقط من بين عشرات المتغيرات المدرجة في التحليل، يُستبعد هذا المستجيب نهائياً وتُحذف صفوفه من كافة العمليات الحسابية، حتى بالنسبة للمتغيرات التي أجاب عنها بالكامل وبدقة فائقة.
إن التنفيذ البرمجي لهذه الخطوة يماثل تماماً قيام المحلل بتطبيق دالة الاستبعاد المسبق na.omit(df) قبل تمرير البيانات إلى cor(). تعمل الخوارزمية على عزل المجموعة الفرعية من الأفراد الذين يمتلكون بيانات تامة عبر كافة الأعمدة المستهدفة، ثم تطبق صيغ الارتباط التقليدية على هذه العينة المقتطعة المتجانسة عددياً. هذا السلوك يضمن أن الحسابات تجري فقط على البيانات الملاحظة فعلياً دون أي افتراضات توليدية أو تعويضية للقيم المفقودة.
4.2 المزايا الإحصائية والقيود المنهجية للحذف الكلي
تتمثل الميزة الإحصائية الكبرى لخيار use = "complete.obs" في ثبات حجم العينة الفعال (Effective Sample Size, N) عبر كافة خلايا مصفوفة الارتباط؛ فالمعامل الرابط بين المتغير الأول والثاني مبني على نفس الأفراد الذين حُسب بناءً عليهم المعامل بين المتغير العاشر والحادي عشر. هذا الاتساق الرياضي الداخلي يضمن دائماً أن تكون مصفوفة الارتباط الناتجة مصفوفة موجبة شبه محددة (Positive Semi-Definite Matrix)، وهي خاصية جبرية حتمية تمنع ظهور قيم تباين سالبة أو قيم ذاتية غير منطقية (Negative Eigenvalues) عند استخدام هذه المصفوفة لاحقاً كمدخل للتحليل العاملي أو نمذجة المعادلات البنائية.
في المقابل، يحمل الحذف الكلي قيوداً بالغة القسوة؛ أولها الفقدان الهائل في القوة الإحصائية نتيجة استبعاد عشرات أو مئات المفحوصين لمجرد إهمالهم فقرة واحدة، مما يقلص حجم العينة بنسب قد تتجاوز أحياناً 30% إلى 50% في الدراسات الاستقصائية الطويلة. وثانيها، والأخطر منهجياً، هو وقوع الباحث في فخ التحيز المنهجي إذا لم تكن البيانات مفقودة عشوائياً بالكامل (MCAR)؛ فالحذف الكلي تحت مظلة MAR أو MNAR يشوه بنية المجتمع الإحصائي المقاس ويفضي إلى علاقات ارتباطية زائفة تعكس خصائص الفئة المنضبطة التي أجابت على المقياس كاملاً بدلاً من تمثيل مجتمع الدراسة الحقيقي.
4.3 تطبيق عملي خطوة بخطوة في سياق مقياس نفسي
لتجسيد هذا الإجراء في دراسة سيكومترية، نفترض أن باحثاً طبق بطارية مقاييس على عينة قوامها 6 مشاركين لقياس ثلاثة أبعاد: القلق (Anxiety)، والاكتئاب (Depression)، والصلابة النفسية (Resilience). يحتوي المتغير الأول والثاني على قيم مفقودة لبعض المشاركين نتيجة شعورهم بالإجهاد أثناء الجلسة. يتم بناء إطار البيانات وتطبيق الحذف الكلي كما توضحه الشيفرة الإحصائية التالية:
في الكود البرمجي، يُعرّف الباحث إطار البيانات أولاً، ثم يستدعي الدالة الأساسية محدداً وسيط الحذف الكلي:
psych_data <- data.frame(
anxiety = c(12, 15, NA, 22, 18, 14),
depression = c(10, NA, 14, 25, 20, 11),
resilience = c(30, 28, 25, 15, 18, 32)
)
cor_matrix_complete <- cor(psych_data, use = "complete.obs", method = "pearson")
print(cor_matrix_complete)
عند فحص أسطر هذا الإطار، نجد أن المشارك الثاني تنقصه درجة الاكتئاب، بينما تنقص المشارك الثالث درجة القلق. ونتيجة لتطبيق use = "complete.obs"، تستبعد الخوارزمية الحالتين الثانية والثالثة تماماً من التحليل، ويقتصر حساب مصفوفة الارتباط الثلاثية على الحالات المتبقية فقط (المشاركون: 1، 4، 5، 6)، لينخفض حجم العينة الفعلي من 6 إلى 4 مشاركين. يوفر هذا التطبيق اتساقاً تاماً في المقارنات بين أبعاد المقياس الثلاثة، ولكنه يعكس بوضوح خطورة خسارة ثلث حجم العينة الميدانية في خطوة حسابية واحدة.
5. المعامل use=’pairwise.complete.obs’: استراتيجية الحذف الزوجي (Pairwise Deletion)
5.1 الآلية الحسابية للحذف الزوجي بين المتغيرات
تتبنى استراتيجية الحذف الزوجي المفعّلة برمجياً عبر الوسيط use = "pairwise.complete.obs" مقاربة أكثر مرونة واقتصاداً في استغلال البيانات المتاحة. في هذا النمط، لا تنظر خوارزمية الدالة cor() إلى مصفوفة البيانات كوحدة شمولية غير قابلة للتجزئة، بل تقوم بتفكيك المصفوفة إلى أزواج ثنائية معزولة من المتغيرات (Variable Pairs). وعند حساب الارتباط بين أي متغيرين، تستبعد الخوارزمية فقط الحالات التي تتضمن قيماً مفقودة في أحد هذين المتغيرين بعينهما، دون الالتفات إلى ما إذا كان لدى هؤلاء الأفراد قيم مفقودة في متغيرات أخرى داخل نفس قاعدة البيانات.
هذا يعني أن المشارك الذي يمتلك استجابة كاملة لمتغير القلق ومتغير الصلابة النفسية، ولكنه أهمل الإجابة عن متغير الاكتئاب، سيتم تضمين درجاته واستثمارها بالكامل عند حساب الارتباط بين القلق والصلابة. يتيح هذا الأسلوب الاستفادة القصوى من كل معلومة إمبريقية جُمعت ميدانياً، ويوفر حلاً عملياً للمسوح الواسعة التي يصعب فيها إلزام المفحوصين بملء كافة الاستبيانات بالتساوي.
5.2 مزايا الحذف الزوجي وعيوبه في القياس السيكومتري
الميزة الجوهرية للحذف الزوجي هي الحفاظ على أعلى قدر ممكن من القوة الإحصائية؛ إذ يتيح للباحث حساب كل معامل ارتباط اعتماداً على الحجم الأقصى المتاح من العينة لتلك العلاقة الثنائية بعينها، مما يجعل اختبارات الدلالة الإحصائية أكثر حساسية لرصد الفروق والتأثيرات الحقيقية مقارنة بالحذف الكلي الذي يقصي أعداداً هائلة من الأفراد. يبدو هذا الخيار مغرياً ومثاليا في المراحل الأولى للاستكشاف الوصفي للبيانات وتحديد مؤشرات العلاقات المبدئية.
بيد أن هذا الإجراء ينطوي على مأزق رياضي ونظري بالغ الحرج في القياس السيكومتري؛ فالنتيجة المباشرة للحذف الزوجي هي أن كل خلية داخل مصفوفة الارتباط تصبح مستندة إلى حجم عينة مختلف (Unequal Sample Sizes across Cells)، ومبنية على مجموعات فرعية متباينة من الأفراد. هذا التباين التكويني يقود في كثير من الأحيان إلى إنتاج ما يُعرف بـ “المصفوفة غير الموجبة التحديد” (Non-Positive Definite Matrix)، وهي مصفوفة مشوهة رياضياً تحتوي على ارتباطات بينية متناقضة تتجاوز القيود المنطقية للجبر الخطي (كأن يرتبط A مع B إيجابياً بقوة، و B مع C إيجابياً بقوة، بينما يظهر الارتباط بين A و C سالباً بقوة). هذه الظاهرة تمنع استخدام المصفوفة في التحليلات اللاحقة مثل الانحدار المتعدد والنمذجة الهيكلية، حيث ستتوقف الدوال البرمجية في R معلنة استحالة قلب المصفوفة (Matrix Inversion Failure).
5.3 نموذج تطبيقي ومقارنة عدد الملاحظات المستخدمة
لتطبيق الحذف الزوجي وتبيان الفارق العملي بينه وبين الحذف الكلي، نستخدم نفس إطار البيانات النفسي psych_data المحاكى سابقاً عبر الأمر التالي في بيئة R:
cor_matrix_pairwise <- cor(psych_data, use = "pairwise.complete.obs", method = "pearson")
print(cor_matrix_pairwise)
في هذا التطبيق، ستُحسب العلاقة بين القلق والاكتئاب باستخدام 4 مشاركين فقط (نظراً لفقدان إجابة المشارك الثاني في الاكتئاب والمشارك الثالث في القلق)، في حين ستُحسب العلاقة بين القلق والصلابة النفسية بالاعتماد على 5 مشاركين (يُستبعد فقط المشارك الثالث)، وتُحسب العلاقة بين الاكتئاب والصلابة النفسية بالاعتماد على 5 مشاركين أيضاً (يُستبعد فقط المشارك الثاني).
لمعرفة حجم العينة الدقيق المستخدم في حساب كل معامل على حدة، توفر لغة R حلولاً مصفوفية بارعة، حيث يمكن للمحلل تطبيق ضرب المصفوفات المنطقية لاستخراج مصفوفة أحجام العينات (Sample Size Matrix) كما يلي:
n_obs_matrix <- crossprod(!is.na(psych_data))
print(n_obs_matrix)
تكشف مصفوفة الملاحظات الناتجة بوضوح التفاوت في حجم العينة الفعال: فالقطر الرئيسي يوضح إجمالي المشاهدات المتوفرة لكل متغير (5 للقلق، 5 للاكتئاب، 6 للصلابة)، في حين توضح الخلايا الجانبية تذبذب حجم العينة الزوجي بين 4 و 5 مشاركين. يوضح هذا النموذج بجلاء كيف يرفع الحذف الزوجي حجم العينة مقارنة بالحذف الكلي الذي جمّد العينة عند 4 مشاركين فقط لكافة العمليات، ولكنه يوضح في الوقت ذاته التباين المنهجي في الأسس الإمبريقية التي بُني عليها كل معامل داخل المصفوفة.
6. المقارنة المنهجية الشاملة بين خيارات الوسيط use في دالة cor()
6.1 خيارات use الأخرى: ‘all.obs’ و ‘na.or.complete’
إلى جانب الخيارين الشائعين complete.obs و pairwise.complete.obs، تتيح دالة cor() خيارين إضافيين بالغي الأهمية لأغراض التدقيق البرمجي والضبط المنهجي: الخيار الأول هو use = "all.obs"، وهو خيار صارم للغاية يعطي تعليمات واضحة للدالة بحساب مصفوفة الارتباط بافتراض أن البيانات خالية تماماً من أي قيم مفقودة، فإذا صادفت الدالة ولو قيمة NA واحدة في أي موضع من إطار البيانات، تتوقف العملية فوراً وترمي رسالة خطأ صريحة تنص على: Error in cor(df, use = “all.obs”) : missing observations in cov/cor. يُستخدم هذا الخيار أساساً في اختبارات التحقق من جودة البيانات المجمعة آلياً وفي الأكواد البرمجية البرمجية المعيارية لضمان عدم وجود تسريب لبيانات ناقصة قبل البدء في حسابات بالغة الحساسية.
أما الخيار الثاني فهو use = "na.or.complete"، وهو خيار هجين يسلك مسلك complete.obs في حال غياب القيم المفقودة، ولكنه يختلف عنه جذرياً عند وجودها؛ فإذا وُجدت أي قيمة مفقودة في زوج المتغيرات المقاس، لا تقوم الدالة بالحذف التلقائي للمشاهدة، بل تُرجع القيمة NA لتلك المعاملات المرتبطة بالفقدان، مع الإبقاء على حساب المعاملات للأزواج السليمة تماماً. يوضح الجدول التالي مقارنة بنيوية شاملة لخيارات الوسيط use وسلوكها التشغيلي في R:
| قيمة الوسيط (use) | الآلية الإحصائية | حجم العينة (N) | سلوك الدالة عند وجود NA | خصائص المصفوفة الناتجة |
|---|---|---|---|---|
| “everything” | حساب شامل بدون تصفية | غير محدد | إرجاع NA لأي زوج يحتوي فقداً | تحتوي NA بكثرة |
| “all.obs” | افتراض الاكتمال المطلق | العينة الكلية N | توقف فوري مع إطلاق Error | لا تُنتج مصفوفة عند الفقدان |
| “complete.obs” | الحذف الكلي للحالات (Listwise) | موحد وثابت لجميع الخلايا | استبعاد أي صف يحوي أي NA | موجبة شبه محددة حتماً |
| “pairwise.complete.obs” | الحذف الزوجي للمتغيرات (Pairwise) | متباين من خلية لأخرى | استبعاد NA للزوج المعني فقط | قد تفقد التحديد الموجب |
| “na.or.complete” | حذف مشروط بالحذر البرمجي | موحد للحالات السليمة | إرجاع NA عند رصد فقدان في الزوج | قد تحوي قيم NA موضعية |
6.2 معايير الاختيار بين complete.obs و pairwise.complete.obs
يتطلب الفصل بين الحذف الكلي والحذف الزوجي وزناً دقيقاً للأهداف البحثية والخصائص الرياضية لمصفوفة البيانات. إذا كان هدف الباحث مجرد استكشاف أولي للارتباطات الثنائية بين مقاييس نفسية متعددة، أو كان حجم العينة الميدانية صغيراً جداً وأي حذف كلي سيؤدي إلى تدمير القوة الإحصائية للاختبار، فإن استخدام pairwise.complete.obs يكون مبرراً وعملياً، شريطة توثيق أحجام العينات المختلفة لكل خلية في التقرير النهائي بوضوح.
أما إذا كانت مصفوفة الارتباط ستُستخدم كمدخل لتحليلات بنائية لاحقة — مثل الانحدار الخطي المتعدد، أو التحليل العاملي، أو نمذجة المعادلة البنائية في حزمة lavaan — فإن الحذف الكلي complete.obs يصبح الخيار الإلزامي والوحيد المقبول رياضياً من بين خيارات دالة cor()، لتجنب مآزق المصفوفات غير الموجبة التحديد؛ ما لم يلجأ الباحث إلى تقنيات أكثر تقدماً كالتعويض المتعدد. وتوصي لجنة المعايير الإحصائية التابعة لجمعية علم النفس الأمريكية (APA) بتجنب الاعتماد الأعمى على الحذف الزوجي دون فحص خصائص المصفوفة الناتجة، ودراسة مدى تباين معدلات الفقدان بين فقرات المقاييس السلوكية.
7. حساب معاملات الارتباط المختلفة (بيرسون، سبيرمان، كيندال) مع البيانات المفقودة
7.1 معامل ارتباط بيرسون للبيانات البارامترية مع وجود NA
يُعد معامل ارتباط بيرسون (Pearson product-moment correlation) الأسلوب الإحصائي البارامتري القياسي لتقييم العلاقات الخطية بين متغيرين متصلين يتبعان التوزيع الطبيعي ومقاسين على مستوى فتري (Interval) أو نسبي (Ratio). عند استدعاء هذا المعامل بوجود قيم مفقودة، يُضاف الوسيط method = "pearson" (وهو الخيار التلقائي في R) بالتكامل مع استراتيجية الحذف المحددة:
r_pearson <- cor(x, y, use = "complete.obs", method = "pearson")
يتأثر معامل بيرسون تأثراً بالغاً بحضور القيم المتطرفة (Outliers) التي قد تترافق مع أنماط الفقدان غير العشوائي؛ فإذا اجتمع نقص البيانات مع اختلال في افتراض الاعتدالية، فإن الحذف الكلي قد يؤدي إلى عزل الحالات الطبيعية وإبقاء القيم الشاذة أو العكس، مما يؤدي إلى تشويه حجم الأثر (Effect Size). لذا يتعين على المحلل فحص توزيع المتغيرات السيكومترية باستخدام اختبار شابيرو-ويلك shapiro.test() أو مؤشرات الالتواء والتفرطح قبل حسم دقة النتائج المستخرجة بأسلوب بيرسون بوجود قيم مفقودة.
7.2 معامل ارتباط سبيرمان للرتب مع البيانات المفقودة
في كثير من المسوح النفسية والتربوية، تُقاس المتغيرات بواسطة مقاييس ليكرت الترتيبية (Ordinal Scales)، أو تكون التوزيعات التكرارية للدرجات ملتوية بشدة، مما يجعل تطبيق معامل بيرسون انتهاكاً منهجياً صريحاً. في هذه الحالة، يبرز معامل ارتباط سبيرمان للرتب (Spearman’s rho) كبديل لا بارامتري مثالي، حيث يقوم بتحويل الدرجات الخام إلى رتب تصاعدية قبل الشروع في حساب التغاير:
r_spearman <- cor(x, y, use = "pairwise.complete.obs", method = "spearman")
عند دمج method = "spearman" مع وسائط معالجة القيم المفقودة، تقوم لغة R بحذف القيم الناقصة أولاً وفقاً للقاعدة المحددة (كلياً أو زوجياً)، ثم تقوم بعد ذلك مباشرة بحساب الرتب (Ranks) للحالات المتبقية حصراً. هذه الآلية تضمن عدم تشويه ترتيب المفحوصين بغياب الآخرين، وتمنح هذا المعامل متانة فائقة في مواجهة القيم الشاذة، مما يجعله خياراً قوياً في المقاييس النفسية التي تشهد معدلات فقدان غير منتظمة بين الرتب الدنيا والرتب العليا للاستجابات.
7.3 معامل ارتباط كيندال تاو (Tau) للعينات الصغيرة ذات الفقدان
عندما يتعامل الباحث السلوكي أو الإكلينيكي مع عينات بحثية صغيرة الحجم (مثل دراسات الحالات النادرة أو مرضى العيادات المتخصصة) تحتوي على قيم مفقودة مع وجود عدد كبير من الرتب المتطابقة أو المتساوية (Tied Ranks)، يُفضل استخدام معامل ارتباط كيندال تاو (Kendall’s tau-b) على سبيرمان وبيرسون؛ نظراً لخصائصه الرياضية المتفوقة ودقته التقديرية العالية في معالجة التوافق وعدم التوافق بين أزواج المشاهدات:
r_kendall <- cor(x, y, use = "complete.obs", method = "kendall")
يتميز معامل كيندال تاو بتوزيع احتمالي يقترب من الاعتدالية أسرع بكثير من معامل سبيرمان في العينات الصغيرة المقتطعة بفعل الحذف، وتوفر لغة R حساباً دقيقاً للاحتمالية المقترنة به. إن اعتماد كيندال مع وسائط الحذف في الدراسات النفسية ذات العينات الإكلينيكية الحرجة يوفر تقديراً محافظاً وأكثر صدقاً للعلاقة الارتباطية، ويحول دون المبالغة في تقدير حجم الأثر التي قد تنشأ عن قلة المشاهدات وتداخل الرتب الناجم عن الحذف الموضعي للحالات.
8. اختبار الدلالة الإحصائية للارتباط وحساب فترات الثقة باستخدام cor.test()
8.1 حدود الدالة cor.test() مع القيم المفقودة وطريقة معالجتها
على النقيض من دالة cor() الشمولية التي تقبل إطارات البيانات والمصفوفات، صُممت دالة cor.test() لفحص فرضيات الدلالة الإحصائية بين زوج واحد فقط من المتغيرات في كل عملية تشغيل. تتبنى هذه الدالة سلوكاً مبرمجاً مسبقاً تجاه البيانات المفقودة؛ إذ تطبق الحذف الزوجي التلقائي (Automatic Pairwise Deletion) عبر استبعاد أي زوج يتضمن NA، دون حاجة لتمرير الوسيط use المستخدم في الدالة السابقة:
test_result <- cor.test(psych_data$anxiety, psych_data$depression, method = "pearson")
print(test_result)
تستخرج هذه الدالة تقريراً إحصائياً متكاملاً يتضمن: قيمة معامل الارتباط المحسوبة، وقيمة إحصائية الاختبار (t لبيرسون أو z لكيندال)، ودرجات الحرية المقابلة (df = n – 2)، والقيمة الاحتمالية الدقيقة (p-value). يُعد الانتباه لدرجات الحرية المطبوعة في المخرجات أمراً منهجياً في غاية الحرج؛ فمن خلالها يستطيع الباحث معرفة حجم العينة الفعلي الذي أُجري عليه الاختبار (n = df + 2)، ورصد كمية المشاهدات المفقودة التي تم إسقاطها تلقائياً خلف الكواليس الحسابية للدالة.
8.2 حساب فترات الثقة (Confidence Intervals) في وجود قيم محذوفة
يقتضي الدليل الإحصائي لـ APA في نسخته السابعة عدم الاكتفاء بذكر القيمة الاحتمالية، بل يُلزم الباحثين بالإبلاغ الصريح عن “فترات الثقة” (Confidence Intervals – CIs)، وخاصة فترة ثقة 95%، لتقدير المدى المعقول لحجم الأثر في المجتمع الإحصائي. توفر دالة cor.test() في R حساباً تلقائياً لفترات الثقة المستندة إلى تحويل فيشر الزدّي (Fisher’s z transformation) عند تطبيق معامل بيرسون، وتظهر هذه الحدود مباشرة ضمن مخرجات الدالة كالتالي:
test_result$conf.int
يجب على المحلل أن يدرك أن اتساع فترة الثقة يعتمد اعتماداً عكسياً مباشراً على حجم العينة الفعال؛ فكلما زادت نسبة القيم المفقودة المستبعدة، انخفضت العينة الفعالة، مما يؤدي إلى اتساع المدى الفاصل بين الحدين الأدنى والأعلى لفترة الثقة (Lower and Upper Bounds). هذا الاتساع يعبر عن زيادة عدم اليقين في التقدير الإحصائي. وفي حال كانت نسبة الفقدان مرتفعة والتوزيع يفتقر للاعتدالية، يُنصح بتطبيق فترات الثقة القائمة على أسلوب “إعادة التدوير العيني” (Bootstrapping Confidence Intervals) باستخدام حزمة boot، للحصول على تقديرات تجريبية صلبة لا تعتمد على الافتراضات التوزيعية المقيدة للحذف البسيط.
8.3 أتمتة حساب الدلالة الإحصائية لمصفوفة كاملة
يمثل عجز دالة cor.test() عن معالجة مصفوفات البيانات المتعددة عقبة للمحللين الراغبين في استخراج مصفوفة دلالة ومصفوفة فترات ثقة متكاملة بوجود بيانات مفقودة. لتجاوز هذا القصور دون الاعتماد على مكتبات إضافية، يمكن بناء دالة برمجية مخصصة في لغة R تقوم بالدوران عبر أزواج الأعمدة وتطبيق cor.test() مع تفريغ النتائج في مصفوفات منسقة:
تعتمد الشيفرة البرمجية التالية على إنشاء مصفوفة فارغة ثم ملئها بالقيم الاحتمالية:
cor_p_matrix <- function(df, method = "pearson") {
vars <- colnames(df)
n_vars <- length(vars)
p_mat <- matrix(NA, nrow = n_vars, ncol = n_vars, dimnames = list(vars, vars))
for(i in 1:(n_vars - 1)) {
for(j in (i + 1):n_vars) {
valid_data <- na.omit(df[, c(i, j)])
if(nrow(valid_data) > 2) {
res <- cor.test(valid_data[,1], valid_data[,2], method = method)
p_mat[i, j] <- p_mat[j, i] <- res$p.value
} else {
p_mat[i, j] <- p_mat[j, i] <- NA
}
}
}
diag(p_mat) <- 0
return(p_mat)
}
p_values <- cor_p_matrix(psych_data)
print(p_values)
تضمن هذه الدالة التعامل المستقل مع كل زوج متغيرات عبر إسقاط الحالات الناقصة للزوج فقط، واستخراج القيمة الاحتمالية بدقة بالغة حتى لو تفاوتت أحجام العينات المتبقية بين الأزواج المختلفة. يمنح هذا البناء الآلي الباحث تحكماً كاملاً وشفافية مطلقة في التعامل مع المصفوفات السيكومترية الكبيرة، ويوفر تقريراً موازياً لمصفوفة معاملات الارتباط الخام.
9. الحزم الإحصائية المتقدمة لحساب الارتباط مع القيم المفقودة في R
9.1 استخدام حزمة psych ودالة corr.test() المتخصصة سيكومترياً
تُعد حزمة psych، التي طورها عالم القياس النفسي ويليام ريفيل (William Revelle)، المنظومة البرمجية الأكثر موثوقية وشهرة بين الباحثين السلوكيين في بيئة R. تتضمن الحزمة الدالة المتطورة corr.test()، والتي تعالج أوجه القصور المتأصلة في الدوال الأساسية للغة R عبر توفير حل متكامل يحسب مصفوفة معاملات الارتباط، ومصفوفة الدلالة الإحصائية، وفترات الثقة، وأحجام العينات الزوجية في خطوة تنفيذية واحدة:
library(psych)
psych_test <- corr.test(psych_data, use = "pairwise", method = "pearson", adjust = "holm")
print(psych_test, short = FALSE)
تتميز دالة corr.test() بميزة سيكومترية ومنهجية بالغة الأهمية؛ وهي قدرتها التلقائية على تطبيق “تعديل المقارنات المتعددة” (Multiple Comparisons Correction) على مصفوفة الدلالة، عبر وسائط تتيح خوارزميات مثل هولم (Holm)، وبونفيروني (Bonferroni)، ومعدل الاكتشاف الخاطئ (FDR). هذا يمنع تضخم الخطأ من النوع الأول الناجم عن اختبار عشرات الارتباطات في آن واحد على عينات غير مكتملة، كما تُخرج الدالة تلقائياً كائناً يحتوي على psych_test$n يوضح عدد المفحوصين الفعليين المساهمين في كل معامل، مما يجعلها الأداة المفضلة لكتابة التقارير النفسية المحكمة.
9.2 حساب الارتباط ومصفوفة p-values باستخدام حزمة Hmisc ودالة rcorr()
تقدم حزمة Hmisc، التي يشرف عليها الخبير الإحصائي فرانك هاريل (Frank Harrell)، دالة حسابية فائقة السرعة وعالية الكفاءة تُدعى rcorr(). كُتبت خوارزميات هذه الدالة بلغة Fortran، مما يجعلها قادرة على معالجة قواعد البيانات الضخمة التي تحتوي على عشرات الآلاف من الصفوف في أجزاء من الثانية. تتطلب الدالة تحويل إطار البيانات إلى مصفوفة عددية أولاً، وتعتمد افتراضياً وحصرياً على آلية الحذف الزوجي:
library(Hmisc)
matrix_data <- as.matrix(psych_data)
hmisc_res <- rcorr(matrix_data, type = "pearson")
print(hmisc_res$r) # مصفوفة الارتباط
print(hmisc_res$n) # مصفوفة أحجام العينات الزوجية
print(hmisc_res$P) # مصفوفة القيم الاحتمالية
يتميز ناتج دالة rcorr() بالتنظيم البنيوي الأنيق؛ إذ يُخزن المخرجات في ثلاثة عناصر محددة بدقة: المصفوفة r للمعاملات، والمصفوفة n لأحجام العينة الحقيقية المرتبطة بكل زوج بعد حذف المفقودات، والمصفوفة P للقيم الاحتمالية الدقيقة الثنائية الذيل. هذه البساطة التنظيمية تجعل استخراج التقارير الرياضية والربط مع أدوات الرسوم البيانية أمراً سهلاً وموثوقاً بدرجة استثنائية.
9.3 استخدام حزم rstatix و tidyverse في سياق البيانات المرتبة
مع الانتشار الواسع لفلسفة “البيانات المرتبة” (Tidy Data) في منظومة tidyverse، طُوّرت حزمة rstatix لتوفير دوال إحصائية تتوافق مع نمط الأنابيب البرمجية (Pipe Operator %>% أو |>). تتيح دالة cor_test() داخل الحزمة حساب الارتباطات المتعددة مع معالجة ذكية ومرنة للبيانات الناقصة، وإخراج النتائج في صورة إطار بيانات مرن (tibble) جاهز للدمج والتصفية:
library(rstatix)
library(dplyr)
tidy_cor <- psych_data %>%
cor_test(anxiety, depression, resilience, method = "pearson")
print(tidy_cor)
تكمن القوة المنهجية لهذا الأسلوب في سهولة تقسيم التحليل الارتباطي عبر المجموعات التجريبية أو الفئات الديموغرافية باستخدام الدالة group_by()؛ حيث يمكن دراسة الارتباطات مع استبعاد القيم المفقودة داخل كل مجموعة فرعية على حدة (مثل مقارنة الذكور والإناث، أو المرضى والأسوياء) بخط سياق برمجي واحد وأنيق، مما يقلص احتمالات الخطأ اليدوي ويضمن توافق التحليلات السيكومترية مع متطلبات الرسوم البيانية والتقارير الآلية الحديثة.
10. معالجة القيم المفقودة قبل حساب الارتباط: تقنيات التعويض الإحصائي (Imputation)
10.1 حدود التعويض الفردي البسيط (المتوسط والوسيط) ومخاطره
يلجأ بعض المبتدئين في التحليل السيكومتري إلى حيلة برمجية شائعة تتمثل في “التعويض البسيط” (Mean/Median Imputation)، حيث يتم استبدال كل قيمة NA بالمتوسط الحسابي للفقرة أو المتغير عبر كامل العينة. على الرغم من أن هذا الإجراء يبقي حجم العينة ثابتاً ويمنع ظهور أخطاء برمجية، إلا أن الدراسات المنهجية تحذر بشدة من تطبيقه لما يسببه من تشوهات كارثية في الخصائص التوزيعية للبيانات.
إن استبدال القيم الحقيقية بالمتوسط يؤدي مباشرة إلى “تقليص مصطنع للتباين” (Artificially Deflated Variance)، وتشويه الفروق الفردية الكامنة التي تعد جوهر القياس النفسي. وفيما يخص معاملات الارتباط، فإن التعويض بالمتوسط يتسبب في تضعيف مصطنع للارتباطات الحقيقية (Attenuation of Correlation) عبر إدخال أزواج من البيانات لا تسهم بأي تباين مشترك حقيقي حول الخط المستقيم. وتجمع الأدبيات الإحصائية الحديثة على أن الحذف الكلي للحالات، رغم عيوبه، يظل متفوقاً منهجياً وأقل تحيزاً من اللجوء إلى التعويض الساذج بالمتوسط أو الوسيط.
10.2 التعويض المتعدد (Multiple Imputation) باستخدام حزمة mice
يُمثل “التعويض المتعدد عبر المعادلات المقيدة بالسلاسل” (Multivariate Imputation by Chained Equations – MICE) الحل المعياري الذهبي لمعالجة البيانات المفقودة تحت افتراض MAR. تعتمد خوارزمية MICE، المطبقة باقتدار في حزمة mice، على عدم الاكتفاء بتقدير قيمة مفردة واحدة للفقدان، بل توليد عدة نسخ كاملة من مصفوفة البيانات (لتكن $m = 5$ أو $m = 20$) عبر نمذجة الانحدار لكل متغير مفقود استناداً إلى بقية المتغيرات المرصودة، مع إضافة مكون خطأ عشوائي يحاكي عدم اليقين الطبيعي:
تتم خطوات التعويض المتعدد وحساب الارتباط ثم التجميع في بيئة R عبر المراحل التالية:
library(mice)
# 1. توليد مجموعات البيانات المعوضة
imputed_data <- mice(psych_data, m = 5, method = "pmm", seed = 123)
# 2. فحص مصفوفة ارتباط لإحدى المجموعات المعوضة كمثال
complete_dataset_1 <- complete(imputed_data, 1)
cor_imputed_1 <- cor(complete_dataset_1, method = "pearson")
print(cor_imputed_1)
تعتمد الطريقة على مطابقة المتوسطات التنبؤية (Predictive Mean Matching – PMM)، والتي تضمن أن تكون القيم المعوضة واقعية ومستمدة من درجات فعلية لأفراد متقاربين في سماتهم. بعد توليد المصفوفات المعوضة، تُحسب معاملات الارتباط داخل كل مصفوفة، ثم تُدمج النتائج وفترات الثقة في تقدير إجمالي نهائي استناداً إلى “قواعد روبين” (Rubin’s Rules)، مما يضمن الحفاظ التام على حجم العينة، واسترجاع التباينات الحقيقية، والتخلص من تحيزات الحذف الإقصائي.
10.3 التعويض بالخوارزميات الذكية (missForest و KNN)
في المقاييس النفسية المعقدة والمسوح الوطنية واسعة النطاق التي تشتمل على مئات المتغيرات السلوكية والعلاقات غير الخطية المعقدة (Non-linear Relationships)، قد تعجز نماذج الانحدار الخطية التقليدية عن محاكاة البيانات. هنا تبرز الخوارزميات الذكية المستندة إلى تعلم الآلة، وأبرزها خوارزمية الغابات العشوائية المنفذة عبر حزمة missForest، وخوارزمية الجيران الأقرب (K-Nearest Neighbors – KNN) المتوفرة في حزمة VIM.
تعمل missForest على بناء غابة عشوائية لكل متغير يحتوي قيماً مفقودة باستخدام المتغيرات الأخرى كمتغيرات تنبؤية، وتكرر هذه العملية تكرارياً (Iteratively) حتى استقرار التقديرات دون الحاجة لافتراض اعتدالية البيانات أو خطية العلاقات. إن إجراء التعويض عبر هذه الأدوات الذكية يوفر مصفوفات بيانات متكاملة تحافظ على البنية التفاعلية الدقيقة للمقاييس السيكومترية، وتتيح للباحث حساب معاملات الارتباط اللاحقة بدقة رياضية متناهية وأمان قياسي لا تتيحه الطرق الإحصائية البسيطة.
11. التصور البصري لمصفوفات الارتباط ذات البيانات المفقودة في R
11.1 استكشاف أنماط الفقدان بصرياً باستخدام حزمة naniar و VIM
قبل الشروع في كتابة أي معادلة ارتباط، تلزم المنهجية الأكاديمية الرصينة الباحث بفحص “جغرافيا الفقدان” بصرياً داخل بياناته. توفر حزمة naniar، المتوافقة بنيوياً مع ggplot2، أدوات رسومية مذهلة لتشخيص ترابطات غياب البيانات، وأشهرها مخطط التقاطعات عبر الدالة gg_miss_upset():
library(naniar)
library(ggplot2)
gg_miss_upset(psych_data)
يكشف هذا المخطط المتقدم عن التوليفات المشتركة للغياب؛ كأن يوضح بصرياً عدد الحالات التي فُقدت فيها درجات القلق والاكتئاب معاً مقارنة بالحالات التي فُقد فيها القلق منفرداً. وبالمثل، توفر حزمة VIM عبر الدالة aggr() مخططات بيانية توضح نسب الفقدان في كل متغير ونمط تكرار الأنماط المشتركة. تُمكّن هذه الرسوم الاستكشافية المحلل من الحكم الإمبريقي على ما إذا كان نمط الفقدان عشوائياً (MCAR/MAR) أم أنه نمط منظم ومكثف يشير إلى مشكلات بنيوية في فقرات معينة داخل المقياس النفسي، مما يوفر مبرراً موضوعياً لاختيار استراتيجية المعالجة اللاحقة.
11.2 رسم مصفوفات الارتباط باستخدام حزمة corrplot مع البيانات غير المكتملة
تُعد حزمة corrplot الأداة الرائدة في إنتاج المخططات الحرارية (Heatmaps) والدوائر البيانية لمصفوفات الارتباط. عند التعامل مع مصفوفات ناتجة عن خيارات حذف البيانات المفقودة، تبرز قوة الحزمة في قدرتها على تظليل أو شطب المعاملات التي لم تحقق الدلالة الإحصائية، معتمدة على مصفوفة القيم الاحتمالية المحسوبة مسبقاً:
يتم رسم المخطط الاحترافي وربطه بالدلالة الإحصائية عبر الأسطر البرمجية التالية:
library(corrplot)
# حساب الارتباط بالحذف الزوجي
r_mat <- cor(psych_data, use = "pairwise.complete.obs")
# استدعاء الدالة البرمجية المعدة سابقاً لحساب الدلالة
p_mat <- cor_p_matrix(psych_data)
# رسم المصفوفة وحجب العلاقات غير الدالة
corrplot(r_mat, method = "circle", type = "upper",
p.mat = p_mat, sig.level = 0.05, insig = "blank",
tl.col = "black", tl.srt = 45, addCoef.col = "black")
يتيح هذا الشكل البصري للمحلل والجمهور الأكاديمي رؤية معاملات الارتباط بوضوح مع تمييز حجم الأثر عبر تدرج الألوان وحجم الدوائر، مع إخفاء الخلايا التي فقدت دلالتها نتيجة انخفاض العينة الفعالة بفعل الحذف. هذا الفصل البصري الصارم يمنع القارئ من الانخداع بالارتباطات المرتفعة عددياً التي تفتقر للأصالة الإحصائية في ظل تآكل البيانات.
11.3 استخدام حزمة ggcorrplot لإنتاج رسوم بيانية تفاعلية ونشر أكاديمي
توفر حزمة ggcorrplot بديلاً عصرياً مبنياً بالكامل على قواعد ggplot2، مما يمنح الباحث مرونة كاملة في تخصيص النصوص، والخطوط، والسمات الجمالية، تمهيداً لتصدير الأشكال بدقة نشر فائقة (Vector Graphics أو 300 DPI) تتوافق مع متطلبات المجلات المصنفة عالمياً:
library(ggcorrplot)
plot_corr <- ggcorrplot(r_mat, p.mat = p_mat, hc.order = TRUE,
type = "lower", lab = TRUE, insig = "pch",
pch.col = "red", pch.cex = 4,
colors = c("#6D9EC1", "white", "#E46726"),
title = "مصفوفة الارتباط لأبعاد المقياس النفسي (مع الحذف الزوجي)") +
theme(plot.title = element_text(hjust = 0.5, face = "bold"))
print(plot_corr)
يرسم هذا الكود النصف السفلي من مصفوفة الارتباط مع ترتيب المتغيرات وفقاً للتجميع العنقودي الهرمي (Hierarchical Clustering)، طابعاً قيم المعاملات الرقمية داخل كل مربع، وواضعاً علامة متقاطعة حمراء واضحة على الخلايا غير الدالة إحصائياً. يمثل هذا التوثيق البصري المتماسك قمة الاحترافية في عرض نتائج التحليلات النفسية المعقدة المتأثرة بالبيانات المفقودة.
12. أفضل الممارسات المنهجية وإرشادات كتابة التقارير وفق دليل الجمعية النفسية الأمريكية (APA)
12.1 الأخطاء المنهجية الشائعة وكيفية تلافيها في تحليل الارتباط
تقود مراجعة الأبحاث السيكومترية المنشورة إلى رصد أخطاء متكررة يقع فيها المحللون عند حساب الارتباطات بوجود قيم ناقصة؛ أبرزها الخلط الإجرائي غير الواعي بين مخرجات complete.obs و pairwise.complete.obs؛ حيث يعمد بعض الباحثين إلى الإبلاغ عن حجم العينة الكلي الأصلي (N) في متن التقرير، في حين أن المعاملات المحسوبة في الجداول مستندة إما إلى عينة مقلصة بشدة بسبب الحذف الكلي أو إلى عينات متذبذبة بفعل الحذف الزوجي، وهو ما يعد تضليلاً منهجياً يخالف قواعد النزاهة العلمية.
الخطأ الجسيم الثاني يتمثل في إهمال اختبار آلية الفقدان، وتمرير افتراض MCAR ضمناً دون أي فحص إحصائي عبر اختبار ليتل، وتبرير الحذف الشامل كأنه إجراء روتيني محايد. ولتلافي هذه المنزلقات، يتعين على الباحث التحقق المسبق من اعتدالية التوزيع، وفحص التباينات، واستخدام الحزم المتقدمة كـ psych لحساب العينات الزوجية بدقة، وتقديم تبرير رياضي صلب في حال استخدام المصفوفات الناتجة في أي نمذجة سببية لاحقة، مع التيقن القاطع من احتفاظ المصفوفة بخصائص التحديد الموجب قبل نقلها لأي برنامج نمذجة.
12.2 صياغة نتائج مصفوفة الارتباط ذات البيانات المفقودة وفق APA (الإصدار السابع)
تنص معايير الإصدار السابع من دليل APA (APA 7th Edition) على ضرورة الشفافية المطلقة في الإفصاح عن كيفية التعامل مع البيانات المفقودة في قسم المنهجية وقسم النتائج. يتعين على الباحث أن يذكر بوضوح: نسبة الفقدان في كل متغير، والآلية الفرضية المتبعة لتفسير الفقدان، والإجراء البرمجي الدقيق المستخدم في بيئة R لمعالجة ذلك النقص (سواء كان حذفاً كلياً، أو حذفاً زوجياً، أو تعويضاً متعدداً).
عند كتابة النتائج في متن النص الأكاديمي، تُصاغ العلاقة الارتباطية مع درجات الحرية وقيمة الارتباط ومستوى الدلالة وفترة الثقة كما في النموذج التالي:
“أظهرت النتائج وجود ارتباط موجب دال إحصائياً بين مستوى القلق والاكتئاب، r(142) = .45, p < .001, 95% CI [.31, .57]، وذلك بعد استبعاد الحالات المفقودة زوجياً حيث تراوح حجم العينة الفعال بين 140 و 155 مشاركاً عبر فقرات المقياس.”
أما في بناء الجداول، فيجب إدراج هوامش سفلية توضيحية تشرح حجم العينة المستخدم. يوضح الجدول التالي نموذجاً معيارياً وفق اشتراطات APA السابعة لعرض مصفوفة ارتباط ذات عينات زوجية متغيرة:
| المتغير | M | SD | 1 | 2 | 3 |
|---|---|---|---|---|---|
| 1. القلق | 16.42 | 4.12 | — | ||
| 2. الاكتئاب | 14.85 | 5.20 | .48** [410] | — | |
| 3. الصلابة النفسية | 28.10 | 6.35 | -.35** [425] | -.41** [402] | — |
ملاحظة: العينة الكلية المسجلة N = 450. الأرقام المحصورة داخل الأقواس المعقوفة [ ] تمثل حجم العينة الفعال (n) المحسوب لكل زوج بعد تطبيق استراتيجية الحذف الزوجي (pairwise deletion) في لغة R لتجاوز القيم المفقودة. اختُبرت الدلالة الإحصائية باختبار ثنائي الذيل.
* p < .05. ** p < .01.
ويكتمل الالتزام بالمعايير العلمية الحديثة عبر إرفاق نصوص الأكواد البرمجية للغة R (R Scripts) في منصات البيانات المفتوحة (مثل Open Science Framework – OSF) لضمان الشفافية وقابلية التكرار (Reproducibility) الكاملة لجميع خطوات تصفية وتحليل البيانات المفقودة.
خاتمة
إن حساب معاملات الارتباط في بيئة R بوجود قيم مفقودة يمثل تقاطعاً حيوياً بين الدقة البرمجية والصرامة المنهجية. لقد رأينا كيف أن فلسفة لغة R الصارمة في إرجاع NA تهدف لحماية الباحث من استخلاص استنتاجات سريعة وغير مؤسسة. ويتحتم على المحلل المتمكن ألا ينظر إلى وسائط دالة cor() مثل complete.obs أو pairwise.complete.obs كمجرد خيارات تقنية عابرة، بل كخيارات إحصائية تغير من تركيبة العينة، وخصائص المصفوفة الجبرية، ومدى تمثيل النتائج للواقع النفسي الإمبريقي.
ومع تطور الأساليب الإحصائية، أضحى الانتقال نحو تقنيات التعويض المتعدد باستخدام حزمة mice أو خوارزميات تعلم الآلة هو المسار الأكثر رصانة للتعامل مع آليات الفقدان المشروط (MAR)، متفوقاً بمسافات بعيدة على أساليب الحذف التقليدي أو التعويض الساذج بالمتوسط. ومع ذلك، يظل التوثيق الشفاف وفق معايير APA 7th وفحص التوزيعات الرتبية والاعتدالية حجر الزاوية الذي لا غنى عنه لأي بحث علمي يسعى لتقديم مساهمة معرفية حقيقية تتسم بالأصالة والموثوقية.
المراجع
- American Psychological Association. (2020). Publication manual of the American Psychological Association (7th ed.). American Psychological Association. https://doi.org/10.1037/0000165-000
- Harrell, F. E., Jr. (2023). Hmisc: Harrell Miscellaneous (R package version 5.1-1). Comprehensive R Archive Network (CRAN). https://cran.r-project.org/package=Hmisc
- Kassambara, A. (2023). rstatix: Pipe-Friendly Framework for Basic Statistical Tests (R package version 0.7.2). Comprehensive R Archive Network (CRAN). https://cran.r-project.org/package=rstatix
- Little, R. J. A. (1988). A test of missing completely at random for multivariate data with missing values. Journal of the American Statistical Association, 83(404), 1198–1202. https://doi.org/10.1080/01621459.1988.10478722
- R Core Team. (2024). R: A language and environment for statistical computing. R Foundation for Statistical Computing, Vienna, Austria. https://www.R-project.org/
- Revelle, W. (2024). psych: Procedures for Psychological, Psychometric, and Personality Research (R package version 2.4.3). Northwestern University, Evanston, Illinois. https://cran.r-project.org/package=psych
- Rubin, D. B. (1976). Inference and missing data. Biometrika, 63(3), 581–592. https://doi.org/10.1093/biomet/63.3.581
- Stekhoven, D. J., & Bühlmann, P. (2012). MissForest—non-parametric missing value imputation for mixed-type data. Bioinformatics, 28(1), 112–118. https://doi.org/10.1093/bioinformatics/btr597
- Tierney, N., & Cook, D. (2023). Expanding tidy data principles to facilitate missing data exploration, visualization and assessment of imputations. Journal of Statistical Software, 105(7), 1–31. https://doi.org/10.18637/jss.v105.i07
- van Buuren, S., & Groothuis-Oudshoorn, K. (2011). mice: Multivariate Imputation by Chained Equations in R. Journal of Statistical Software, 45(3), 1–67. https://doi.org/10.18637/jss.v045.i03
- Wei, T., & Simko, V. (2021). R package ‘corrplot’: Visualization of a Correlation Matrix (Version 0.92). Comprehensive R Archive Network (CRAN). https://github.com/taiyun/corrplot