الإحصاء النفسيتحليل البيانات في R

كيفية إجراء تصحيح بونفيروني في R

دليل إحصائي شامل ومفصل حول كيفية إجراء تصحيح بونفيروني في لغة البرمجة R للتحكم في معدل الخطأ عند المقارنات المتعددة في البحوث النفسية والبيانات السلوكية.

تاريخ النشر

تُعد معضلة المقارنات المتعددة وتراكم الأخطاء الاحتمالية من أبرز التحديات المنهجية التي تواجه الباحثين في حقول العلوم النفسية، السلوكية، والعلوم الطبية الحيوية المعاصرة. فعندما يقدم الباحث على اختبار فرضيات إحصائية متعددة ضمن نفس التصميم التجريبي أو مجموعة البيانات الواحدة، تتضاعف احتمالية الوقوع في الخطأ من النوع الأول (Type I Error) بشكل متسارع، مما يقود إلى قبول نتائج واهية واستنتاج وجود فروق جوهرية أو تأثيرات علاجية لا وجود لها في المجتمع الإحصائي الأصلي. يمثل هذا التحدي جوهر أزمة القابلية للتكرار (Replication Crisis) التي عصفت بالعلوم الاجتماعية في العقود الأخيرة، مما جعل التحكم الإحصائي الصارم في معدلات الخطأ ضرورة حتمية لضمان رصانة المعرفة العلمية ودقتها.

في إطار المنهجيات الإحصائية البارامترية، يبرز تصحيح بونفيروني (Bonferroni Correction) كأحد أقدم وأشهر الأساليب المتبعة لضبط معدل الخطأ الشامل للأسرة (Family-Wise Error Rate – FWER). يستند هذا الأسلوب الكلاسيكي إلى تعديل عتبة الدلالة الإحصائية أو تعديل القيم الاحتمالية المحسوبة، وذلك بهدف الحفاظ على مستوى ثقة عام وثابت للدراسة ككل، مما يحول دون تزييف الحقائق التجريبية نتيجة إجراء المقارنات الزوجية المتكررة بين متوسطات المجموعات التجريبية والضابطة.

تقدم بيئة البرمجة الإحصائية لغة R منظومة متكاملة ومرنة للغاية لتنفيذ هذه التصحيحات الإحصائية بدقة بالغة وكفاءة برمجية عالية. يهدف هذا الدليل الشامل والمطول إلى استعراض الأسس النظرية والرياضية العميقة لتصحيح بونفيروني، وتفكيك آلياته في سياق القياس النفسي والاجتماعي، وتقديم خطوات عملية تطبيقية متدرجة تبدأ من اختبار الفرضيات والتحقق من الافتراضات، وصولاً إلى استخراج النتائج، وتصورها بيانياً، وتوثيقها وفق أعلى معايير النشر الأكاديمي الصادرة عن جمعية علم النفس الأمريكية (APA Style).

1. مقدمة نظرية حول مشكلة المقارنات المتعددة في القياس النفسي والإحصائي

1.1 مفهوم المقارنات المتعددة ومعدل الخطأ الشامل للأسرة (FWER)

يُقصد بمشكلة المقارنات المتعددة (Multiple Comparisons Problem) تلك الظاهرة الإحصائية التي تنشأ عندما يقوم الباحث بإجراء عدد كبير من الاختبارات الاستدلالية المتزامنة على نفس مجموعة البيانات. في الأبحاث النفسية، نادراً ما يقتصر الباحث على مقارنة مجموعتين فقط؛ بل تتسع التصاميم التجريبية لتشمل عدة مجموعات علاجية، مثل مقارنة العلاج السلوكي المعرفي، والعلاج الدوائي، ومجموعة التدخل المدمج، والمجموعة الضابطة الخاملة، والمجموعة الضابطة النشطة. عندما يُجرى اختبار دلالة إحصائية مستقل لكل زوج من هذه المجموعات، فإن مستوى الخطأ المحدد مسبقاً لكل اختبار منفرد لم يعد يمثل مستوى الخطأ الإجمالي للدراسة.

هنا يبرز مفهوم معدل الخطأ الشامل للأسرة، والذي يُعرف إحصائياً بأنه احتمالية ارتكاب خطأ واحد على الأقل من النوع الأول (رفض الفرضية الصفرية الصحيحة خطأً) عبر كامل مجموعة الاختبارات أو الفرضيات المترابطة التي تشكل “أسرة” الفرضيات (Family of Hypotheses). يكتسب هذا المعدل أهمية قصوى في القياس النفسي لأن القرارات الإكلينيكية والتشخيصية تُبنى على دلالة هذه الفروق، وإذا لم يتم ضبط الخطأ الشامل، فإن الاستنتاجات العلمية تصبح مضللة وغير قابلة للتعميم.

يتمثل الفرق الجوهري بين معدل الخطأ لكل مقارنة فردية (Per-Comparison Error Rate – PCER) ومعدل الخطأ الشامل للأسرة في نطاق الحماية الإحصائية. فبينما يحدد الباحث عادةً معدل الخطأ الفردي عند مستوى ألفا تقليدي يعادل 0.05 لكل اختبار على حدة، فإن هذا الضمان ينهار فور تكرار الاختبارات؛ إذ يصبح معدل الخطأ الشامل أكبر بكثير من 0.05، مما يعني أن المنظومة البحثية ككل أصبحت أكثر عرضة لإعلان اكتشافات زائفة لا تمثل فروقاً حقيقية في المجتمع المستهدف.

1.2 تراكم الخطأ من النوع الأول (Type I Error) عند تكرار الاختبارات

لفهم الآلية الرياضية لتراكم الخطأ من النوع الأول، نفترض أن الباحث يجري عدداً قدره m من الاختبارات الإحصائية المستقلة، مع تحديد مستوى دلالة فردي ثابت مقداره α (وليكن 0.05). إن احتمالية عدم ارتكاب خطأ من النوع الأول في اختبار واحد فردي تساوي تماماً (1 – α)، أي 0.95. وبناءً على مبدأ ضرب الاحتمالات للأحداث المستقلة، فإن احتمالية الخروج من جميع الاختبارات البالغ عددها m دون ارتكاب أي خطأ من النوع الأول تُعطى بالصيغة الرياضية: (1 – α)m.

بالتبعية، فإن احتمالية ارتكاب خطأ واحد على الأقل من النوع الأول عبر مجمل هذه الاختبارات، وهو ما يمثل معدل الخطأ الشامل للأسرة (αFWER)، تُحسب بالمعادلة التالية:

αFWER = 1 – (1 – α)m

لتوضيح هذه الكارثة الإحصائية بمثال عملي: إذا كان لدى باحث نفسي دراسة تشتمل على 4 مجموعات تجريبية، فإن عدد المقارنات الزوجية الممكنة بين هذه المجموعات يبلغ 6 مقارنات فردية. بتطبيق المعادلة السابقة عند مستوى ألفا 0.05، نجد أن:

αFWER = 1 – (1 – 0.05)6 = 1 – (0.95)6 ≈ 1 – 0.735 = 0.265

هذا يعني أن احتمالية الخروج بنتيجة إيجابية كاذبة واحدة على الأقل قد قفزت من 5% إلى 26.5%! وإذا ارتفع عدد المجموعات إلى 5 مجموعات (مما يولد 10 مقارنات زوجية)، فإن احتمالية الوقوع في الخطأ الإيجابي الكاذب ترتفع إلى قرابة 40.1%. يترتب على هذا التضخم نشر ادعاءات غير دقيقة حول فاعلية علاجات وهمية، وتشتيت الجهود البحثية، وفقدان الثقة في نتائج القياسات السلوكية والنفسية.

1.3 متى نحتاج إلى الاختبارات البعدية (Post-hoc Tests) وتصحيح الاحتمالية

عند دراسة الفروق بين أكثر من مجموعتين، يُعد تحليل التباين الأحادي (One-Way ANOVA) الاختبار المبدئي الشائع. ومع ذلك، يعاني تحليل التباين من قصور جوهري يتمثل في كونه اختباراً إجمالياً (Omnibus Test)؛ فهو يختبر الفرضية الصفرية العامة القائلة بأن جميع متوسطات المجموعات متساوية. عندما تكون قيمة p الناتجة عن ANOVA دالة إحصائياً (أقل من 0.05)، فإن هذه النتيجة تخبرنا فقط بوجود اختلاف واحد على الأقل بين مجموعتين من المجموعات، دون أن تحدد بدقة أين تكمن هذه الفروق، أو ما هي أزواج المجموعات المتباينة تحديداً.

للانتقال من هذه الدلالة الإجمالية الغامضة إلى التحديد الإكلينيكي والنظري الدقيق للفروق بين المجموعات، يضطر الباحث إلى إجراء المقارنات البعدية الزوجية (Pairwise Post-hoc Comparisons). وتتطلب هذه المرحلة تطبيق أساليب الضبط الإحصائي والاحتمالي لمعالجة مشكلة تضخم الخطأ التراكمي التي تم شرحها آنفاً.

تعتمد معايير اختيار أسلوب الضبط المناسب على طبيعة الفرضيات البحثية؛ فإذا كانت المقارنات استكشافية وتشمل جميع الأزواج الممكنة، فإن أساليب التصحيح الصارمة تصبح إلزامية. ويأتي تصحيح بونفيروني في مقدمة هذه الخيارات المنهجية نظراً لبساطته وقوته المبرهنة في حماية الباحث من استخلاص استنتاجات خاطئة ناتجة عن عشوائية العينات.

2. الإطار الرياضي والنظري لتصحيح بونفيروني (Bonferroni Correction)

2.1 المعادلة الرياضية لاشتقاق مستوى الدلالة المصحح

يقوم تصحيح بونفيروني، الذي طُوّر استناداً إلى أعمال عالم الرياضيات الإيطالي كارلو إميليو بونفيروني، على فكرة بسيطة وأنيقة تهدف إلى تقييد معدل الخطأ الشامل للأسرة عند مستوى مستهدف لا يتجاوز α (عادة 0.05). لتحقيق ذلك، يتم تقسيم مستوى الدلالة الاسمي المستهدف على العدد الإجمالي للمقارنات الإحصائية المستقلة أو الفرضيات المختبرة (ويرمز لها بالرمز m).

تُصاغ معادلة تعديل مستوى الدلالة الفردي الجديد (αaltered) على النحو التالي:

αaltered = α / m

يتم احتساب عدد المقارنات الزوجية الكلية الممكنة بين عدد k من المجموعات المستقلة باستخدام صيغة التوافيق الرياضية المعروفة:

m = k(k – 1) / 2

فإذا كان لدينا تصميم تجريبي نفسي يشتمل على 4 مجموعات تجريبية (k = 4)، فإن عدد المقارنات الزوجية هو: m = 4(3) / 2 = 6 مقارنات. لكي نعتبر أي مقارنة زوجية بين مجموعتين دالة إحصائياً بموجب تصحيح بونفيروني، يجب ألا تتجاوز القيمة الاحتمالية الناتجة عن اختبار t لتلك المقارنة القيمة الحرجة الجديدة:

αaltered = 0.05 / 6 ≈ 0.00833

بهذا التعديل، تُرفض الفرضية الصفرية للمقارنة الزوجية فقط إذا كانت قيمة p أصغر من أو تساوي 0.00833، مما يضمن أن الخطأ الإجمالي لكافة الاختبارات الستة مجتمعة لن يتعدى سقف 0.05.

2.2 متباينة بولي (Boole’s Inequality) كأساس رياضي للتصحيح

يستمد تصحيح بونفيروني مشروعيته الرياضية الصارمة من إحدى النظريات الأساسية في نظرية الاحتمالات والمعروفة باسم متباينة بولي (Boole’s Inequality). تنص هذه المتباينة على أنه لأي مجموعة محدودة من الأحداث الاحتمالية (سواء كانت هذه الأحداث مستقلة أو غير مستقلة)، فإن احتمال وقوع حدث واحد على الأقل منها (أي احتمال اتحاد الأحداث) يكون دائماً أصغر من أو مساوياً لمجموع احتمالات وقوع كل حدث على حدة.

إذا رمزنا لحدث ارتكاب الخطأ من النوع الأول في المقارنة رقم i بالرمز Ei، وكان احتمال وقوع هذا الخطأ هو P(Ei) ≤ αaltered، فإن احتمال ارتكاب خطأ واحد على الأقل عبر m من المقارنات يُعبر عنه رياضياً بـ:

P(∪i=1m Ei) ≤ ∑i=1m P(Ei)

وبما أن الباحث يضبط مستوى الدلالة لكل اختبار فردي ليكون αaltered = α / m، فإن:

P(∪i=1m Ei) ≤ ∑i=1m (α / m) = m × (α / m) = α

تثبت هذه النتيجة الرياضية أن متباينة بولي توفر حداً أعلى مؤكداً لمعدل الخطأ الإجمالي؛ إذ تضمن بصورة قاطعة أن الخطأ الشامل للأسرة لن يتجاوز α أبداً، بغض النظر عن طبيعة العلاقات التبادلية أو درجات الارتباط والتداخل بين الاختبارات الإحصائية المختلفة، وهو ما يمنح الأسلوب قوة رياضية универсаلية.

2.3 تعديل قيم P-values مقابل تعديل مستوى ألفا (Alpha Level)

في الممارسة الإحصائية والبرمجية، توجد طريقتان متطابقتان رياضياً لتطبيق تصحيح بونفيروني، وتؤدي كلتاهما إلى نفس القرار الاستدلالي تماماً:

  • الطريقة الأولى: تعديل مستوى الدلالة (α): وفيها يحتفظ الباحث بالقيم الاحتمالية الأولية الناتجة عن الاختبارات (Unadjusted p-values) كما هي، ويقارنها بمستوى ألفا المخفض (α / m).
  • الطريقة الثانية: تعديل القيم الاحتمالية (Adjusted p-values): وفيها يتم تعديل القيمة الاحتمالية لكل اختبار بضربها مباشرة في عدد المقارنات الإجمالي m، وفق الصيغة: padj = min(1.0, p × m)، ثم تُقارن هذه القيمة المعدلة بمستوى الدلالة المعياري الأصلي (α = 0.05).

تُعد معالجة القيم المعدلة التي تتجاوز القيمة 1.0 أمراً محورياً في البنية الحسابية؛ فبما أن الاحتمال الرياضي لا يمكن أن يتجاوز 1.0، فإن أي قيمة ناتجة عن عملية الضرب تتعدى هذا الحاجز يتم تقييدها بسقف أقصى محدد عند 1.0 تماماً.

تحظى الطريقة الثانية (تعديل قيم p) بتفضيل واسع في البرمجيات الإحصائية الحديثة وفي لغة R على وجه الخصوص. يعود ذلك إلى أن الباحث يستطيع قراءة النتائج وتفسيرها مباشرة بالمقارنة مع العتبة المألوفة (0.05)، مما يسهل تضمين الجداول الإحصائية وتوحيد مستويات الدلالة المعتمدة في التقارير الأكاديمية دون إرباك القارئ بتغيير عتبات المقارنة في كل جدول.

3. أهمية تصحيح بونفيروني في البحوث النفسية والاجتماعية

3.1 التحكم في النتائج الإيجابية الكاذبة في الدراسات السلوكية

تتميز البحوث النفسية والسلوكية بطبيعة معقدة تجعلها شديدة التأثر بالأخطاء الاستدلالية؛ حيث تتضمن هذه الدراسات عادةً متغيرات تابعة متعددة لقياس السمات المعرفية، كالقلق، والاكتئاب، والوظائف التنفيذية، والذكاء العاطفي. في مثل هذه البيئات القياسية، يميل الباحثون إلى جمع كميات هائلة من البيانات وإجراء اختبارات دلالة متعددة لاستكشاف الفروق بين الفئات العمرية أو الاجتماعية المختلفة.

يؤدي غياب الضبط الإحصائي الصارم في مثل هذه السياقات إلى الوقوع في فخ “التنقيب في البيانات” (Data Dredging أو p-hacking)، حيث تصبح بعض الفروق العشوائية دالة إحصائياً بمحض الصدفة البحتة. يوفر تصحيح بونفيروني خط دفاع منهجي يحمي القرارات التشخيصية والإكلينيكية، مما يضمن أن البرامج العلاجية والتدخلات السلوكية لا تُعتمد إلا إذا أظهرت أدلة إحصائية قوية تتجاوز حاجز التشتت العشوائي.

يسهم هذا الأسلوب بشكل فعال في تعزيز موثوقية الأبحاث وقابليتها لإعادة الإنتاج والتكرار في مختبرات أخرى، وهو المعيار الذهبي الذي تسعى المؤسسات الأكاديمية العالمية لتثبيته في مواجهة موجة التشكيك في الدراسات النفسية التجريبية.

3.2 سيناريوهات المقارنة بين مجموعات التدخل النفسي والعلاجي

تتعدد السيناريوهات البحثية التي يبرز فيها تصحيح بونفيروني كأداة حيوية للتقييم، ومن أبرز هذه التطبيقات:

  • التجارب الإكلينيكية المقارنة: عند اختبار فاعلية بروتوكول علاج نفسي جديد (كالعلاج المعرفي القائم على اليقظة الذهنية) مقابل العلاج التقليدي، ومقابل العلاج الدوائي، ومجموعة التدخل الوهمي، تقتضي النزاهة العلمية ضبط المقارنات البعدية لبيان ما إذا كان التفوق الملاحظ ذا وزن إحصائي حقيقي.
  • تقييم المناهج والاستراتيجيات التعليمية: عند تطبيق نماذج تدريسية متباينة على فصول دراسية متعددة لقياس استيعاب المفاهيم المجردة، يحمي التصحيح الباحثين التربويين من تفضيل طريقة تدريس بناءً على طفرة عشوائية في أداء عينة محددة.
  • تحليل أبعاد المقاييس النفسية متعددة العوامل: عند تطبيق مقاييس مثل مقياس الشخصية متعدد الأوجه أو مقاييس التكيف الاجتماعي التي تولد درجات فرعية متعددة، يساعد تصحيح بونفيروني في التأكد من أن الفروق بين الجنسين أو الفئات الثقافية ليست مجرد نتاج تكرار العمليات الحسابية على العوامل الفرعية.

3.3 قيود التحفظ الشديد وخطر الوقوع في الخطأ من النوع الثاني

على الرغم من الرصانة الرياضية لتصحيح بونفيروني، إلا أنه يواجه انتقادات منهجية واسعة في الأدبيات الإحصائية بسبب نزعته المحافظة للغاية (Overly Conservative). فعندما يرتفع عدد المقارنات m بشكل كبير (كما هو الحال في الدراسات التي تضم 6 مجموعات فأكثر، حيث يتجاوز عدد المقارنات 15 مقارنة)، تنخفض قيمة ألفا المعدلة إلى مستويات بالغة الضآلة، مما يؤدي إلى انخفاض حاد في القوة الإحصائية (Statistical Power) للاختبار.

يترتب على هذا الانخفاض تزايد خطر الوقوع في الخطأ من النوع الثاني (Type II Error)، وهو الفشل في اكتشاف أو إثبات الفروق الحقيقية الموجودة بالفعل بين المجموعات التجريبية. في الأبحاث النفسية الإكلينيكية، قد يعني هذا استبعاد تدخل علاجي واعد وفعال لمجرد أن حجم العينة لم يكن كافياً لتخطي عتبة بونفيروني المتشددة.

لذا، يتعين على الباحث الموازنة الحذرة بين الرغبة في تحجيم النتائج الإيجابية الكاذبة وضرورة الحفاظ على حساسية النموذج الإحصائي وقدرته على رصد التأثيرات الواقعية ذات الأهمية التطبيقية والعملية.

4. إعداد بيئة العمل واستيراد البيانات في لغة R

4.1 تثبيت الحزم الأساسية وإعداد بيئة RStudio

لإجراء التحليلات الإحصائية وتطبيق تصحيح بونفيروني بكفاءة واحترافية، يُفضل الاعتماد على بيئة RStudio المتكاملة وتجهيز مكتبة الحزم المخصصة للتعامل مع البيانات والتحليل البارامتري المتقدم. نعتمد بشكل رئيسي على منظومة tidyverse لتنظيف البيانات ومعالجتها، وحزمة rstatix لإجراء المقارنات المتقدمة بسلاسة، بالإضافة إلى حزمة multcomp لإجراء الاختبارات المتعددة المعممة وحساب فترات الثقة المصححة.

يتم تثبيت هذه الحزم واستدعاؤها داخل جلسة R عبر الأوامر البرمجية التالية:

install.packages(c("tidyverse", "rstatix", "multcomp", "car", "ggpubr"))

library(tidyverse)

library(rstatix)

library(multcomp)

library(car)

library(ggpubr)

يُنصح كذلك بضبط خيارات العرض الرقمي لنتائج التحليل من خلال تعطيل التدوين العلمي التلقائي للأرقام الكسرية الصغيرة عبر الأمر options(scipen = 999)، وضبط عدد الخانات العشرية المعروضة إلى ثلاث أو أربع خانات بواسطة options(digits = 4)، مما يسهل قراءة القيم الاحتمالية الدقيقة بصرياً والتأكد من مطابقتها للمعايير الأكاديمية.

4.2 هيكلة وتجهيز بيانات الدراسات النفسية (Data Wrangling)

تتطلب الاختبارات الإحصائية في R هيكلة محددة للبيانات؛ حيث يجب أن تكون البيانات مرتبة في شكل “طويل” (Long Format) بحيث يمثل كل صف مشاركاً واحداً، ويحتوي على عمود يحدد المجموعة التجريبية وعمود آخر يمثل درجة المقياس النفسي المقاسة. لإنشاء مجموعة بيانات تجريبية تحاكي دراسة نفسية تقارن درجات القلق لدى 4 مجموعات تخضع لتدخلات مختلفة (المجموعة الضابطة Control، العلاج السلوكي المعرفي CBT، التدخل الدوائي Med، والتدخل المدمج Combined)، نستخدم الكود التالي:

set.seed(123)

n_per_group <- 25

study_data <- data.frame(
  group = factor(rep(c("Control", "CBT", "Med", "Combined"), each = n_per_group),
                 levels = c("Control", "CBT", "Med", "Combined")),
  anxiety_score = c(
    rnorm(n_per_group, mean = 45, sd = 6),
    rnorm(n_per_group, mean = 38, sd = 5.5),
    rnorm(n_per_group, mean = 35, sd = 6.2),
    rnorm(n_per_group, mean = 30, sd = 5.0)
  )
)

إذا كانت البيانات مخزنة في ملفات خارجية (مثل CSV أو ملفات SPSS بامتداد .sav)، يمكن استيرادها باستخدام دوال مثل read_csv() أو haven::read_sav(). من الضروري جداً التأكد من تحويل المتغير المستقل إلى متغير فئوي من النوع Factor باستخدام الدالة as.factor() لضمان تعامل دوال النمذجة في R معه بشكل سليم أثناء التحليل.

4.3 الفحص الاستكشافي للبيانات وحساب الإحصاءات الوصفية

قبل الشروع في تطبيق اختبارات الاستدلال الإحصائي، يجب إجراء فحص وصفي دقيق لاستكشاف معالم التوزيع، والتحقق من أحجام العينات، وحساب المتوسطات والانحرافات المعيارية والأخطاء المعيارية لكل مجموعة تجريبية. يتم ذلك بسلاسة باستخدام وظائف حزمة dplyr:

descriptive_stats <- study_data %>%
  group_by(group) %>%
  summarise(
    n = n(),
    Mean = mean(anxiety_score, na.rm = TRUE),
    SD = sd(anxiety_score, na.rm = TRUE),
    SE = sd(anxiety_score, na.rm = TRUE) / sqrt(n()),
    Median = median(anxiety_score, na.rm = TRUE),
    IQR = IQR(anxiety_score, na.rm = TRUE)
  )

print(descriptive_stats)

يقدم هذا التلخيص الأولي نظرة استطلاعية واضحة تتيح للباحث التحقق من عدم وجود قيم مفقودة مشوهة للتحليل، وفحص التباين المبدئي بين المجموعات، والتأكد من اتزان التصميم التجريبي (تساوي أو تقارب أحجام العينات)، وهو ما يسهل تفسير نتائج المقارنات اللاحقة.

5. إجراء تحليل التباين الأحادي (One-Way ANOVA) في R كنقطة انطلاق

5.1 صياغة الفرضيات الصفرية والبديلة لتحليل التباين

يمثل تحليل التباين الأحادي الإجراء الإحصائي المنهجي الواجب تنفيذه قبل إجراء أي مقارنات بعدية عند دراسة الفروق بين ثلاث مجموعات أو أكثر. تُصاغ الفرضية الصفرية (Null Hypothesis – H0) بافتراض تساوي جميع متوسطات المجتمع للمجموعات التجريبية الأربع، أي:

H0: μControl = μCBT = μMed = μCombined

في المقابل، تُصاغ الفرضية البديلة (Alternative Hypothesis – H1) بأنه يوجد على الأقل متوسطان من متوسطات المجموعات يختلفان عن بعضهما اختلافاً جوهرياً ذا دلالة إحصائية. تؤكد الأعراف المنهجية الصارمة أنه لا يجوز الانتقال لتطبيق الاختبارات البعدية الزوجية وتصحيحات الاحتمالية إلا بعد رفض الفرضية الصفرية الإجمالية (ثبوت دلالة إحصاء F عند مستوى ألفا المعتمد)، وذلك لتفادي تضخيم معدلات الخطأ الناتجة عن المقارنات العشوائية غير المبررة بنموذج عام دال.

5.2 تطبيق دالة aov() و anova() في R

توفر لغة R الدالة المدمجة aov() لتركيب نموذج تحليل التباين عبر استخدام صيغة التعبير الخطي response ~ predictor. يتم بناء كائن النموذج وتخزينه في بيئة العمل عبر الكود التالي:

anova_model <- aov(anxiety_score ~ group, data = study_data)

anova_summary <- summary(anova_model)

print(anova_summary)

تقوم هذه الدالة بحساب مجموع المربعات بين المجموعات (Sum of Squares Between) ومجموع المربعات داخل المجموعات (Sum of Squares Within أو Residuals)، وتقسيم كل منهما على درجات الحرية المقابلة للوصول إلى متوسط المربعات (Mean Squares). ومن ثم يتم حساب النسبة الفائية (F-value) من خلال قسمة متوسط المربعات بين المجموعات على متوسط مربعات الخطأ المتبقي.

5.3 تفسير جدول تحليل التباين الإجمالي ودلالته الإحصائية

تتضمن مخرجات جدول summary(anova_model) عناصر حاسمة تصف الأداء الإحصائي للنموذج التجريبي:

  • درجات الحرية (Df): تظهر درجات الحرية للمتغير المستقل (عدد المجموعات ناقص واحد، أي 4 – 1 = 3)، ودرجات حرية البواقي (العدد الإجمالي للمشاركين ناقص عدد المجموعات، أي 100 – 4 = 96).
  • إحصاء فيشر (F value): يعكس النسبة بين التباين المفسر بواسطة التدخلات التجريبية والتباين غير المفسر (الخطأ العشوائي). كلما ارتفعت هذه القيمة، دل ذلك على وجود فروق تتجاوز التباين العشوائي.
  • القيمة الاحتمالية الإجمالية (Pr(>F)): إذا كانت هذه القيمة أصغر من 0.05، يتم رفض الفرضية الصفرية القائلة بتساوي المتوسطات.

بمجرد ثبوت الدلالة الإحصائية للنموذج الإجمالي، يحصل الباحث على المسوغ المنهجي لإجراء المقارنات البعدية الموجهة لتحديد أزواج المجموعات التي تقف وراء هذا الاختلاف العام، وهو ما ينقلنا مباشرة إلى فحص الافتراضات الإحصائية الضرورية.

6. التحقق من افتراضات تحليل التباين قبل تطبيق التصحيحات

6.1 فحص التوزيع الطبيعي للبواقي (Normality of Residuals)

تستند اختبارات ANOVA والمقارنات البعدية البارامترية المستندة إلى اختبار t إلى افتراض أن البواقي (Residuals) – أي الفروق بين الدرجات المشاهدة ومتوسطات المجموعات المقابلة – تتبع توزيعاً طبيعياً في المجتمع الإحصائي. لفحص هذا الافتراض في R، نقوم باستخراج بواقي النموذج وتطبيق اختبار شابيرو-ويلك (Shapiro-Wilk Test) كما يلي:

model_residuals <- residuals(anova_model)

shapiro_test_result <- shapiro.test(model_residuals)

print(shapiro_test_result)

تشير القيمة الاحتمالية غير الدالة (p > 0.05) إلى تحقق افتراض التوزيع الطبيعي وعدم وجود انتهاك إحصائي ملموس. ولتعزيز الفحص العددي بالتقييم البصري، ننشئ مخطط الاحتمال الطبيعي (Q-Q Plot) باستخدام دالة plot() أو حزمة ggplot2:

plot(anova_model, which = 2)

إذا اصطفت النقاط بصورة متقاربة على امتداد الخط المستقيم القطري دون انحرافات حادة في الأطراف، يُعد ذلك دليلاً بيانياً كافياً على اعتدالية التوزيع.

6.2 فحص تجانس التباين (Homogeneity of Variance)

يُعد افتراض تجانس تباين الخطأ عبر المجموعات (Homoscedasticity) شرطاً محورياً لصحة المقارنات البعدية التقليدية التي تعتمد على تقدير تباين موحد مدمج (Pooled Variance). يتم اختبار هذا الافتراض باستخدام اختبار ليفين (Levene’s Test) المتوفر في حزمة car:

levene_result <- leveneTest(anxiety_score ~ group, data = study_data)

print(levene_result)

إذا كانت القيمة الاحتمالية لاختبار ليفين أكبر من 0.05، فإننا نقبل فرضية تجانس التباين بين المجموعات. أما في حال انتهاك هذا الافتراض (p < 0.05)، فإن إجراء المقارنات الزوجية المعتادة بتصحيح بونفيروني التقليدي قد يعطي نتائج غير دقيقة. في تلك الحالة، يجب على الباحث استخدام بدائل لا تشترط تساوي التباين، مثل تطبيق اختبارات t المعدلة وفق طريقة ويلش (Welch’s t-test) مع دمج تصحيح بونفيروني، أو الاعتماد على اختبار جيمس-هويل (Games-Howell).

6.3 استقلالية المشاهدات وتأثير التصميم التجريبي

يُعد افتراض استقلالية المشاهدات (Independence of Observations) أهم افتراض إحصائي على الإطلاق، وهو افتراض منهجي يتعلق بآلية جمع البيانات وضبط التجربة أكثر من كونه معادلة تفحص رقمياً. يعني هذا الافتراض أن درجة أي مشارك في الاختبار النفسي لا ترتبط ولا تتأثر بدرجة أي مشارك آخر داخل المجموعة أو في المجموعات الأخرى.

يتحقق هذا الشرط من خلال التعشية السليمة (Random Assignment) وعزل المشاركين أثناء جلسات القياس. تجدر الإشارة إلى أن تصاميم القياسات المتكررة (Repeated Measures) – حيث يتم قياس نفس الأفراد عبر نقاط زمنية متعددة – تنتهك افتراض الاستقلالية عمداً؛ وتتطلب عند تطبيق تصحيح بونفيروني استخدام نماذج التباين للقياسات المتكررة (Repeated Measures ANOVA) أو النماذج الخطية المختلطة (Linear Mixed Models) مع تصحيح درجات الحرية عبر أساليب غرينهاوس-غايسر (Greenhouse-Geisser) قبل استخراج المقارنات الزوجية المصححة.

7. تطبيق تصحيح بونفيروني باستخدام دالة pairwise.t.test() الأساسية في R

7.1 البنية النحوية والوسائط الأساسية لدالة pairwise.t.test()

تُعد دالة pairwise.t.test() المضمنة في حزمة stats القياسية في لغة R من أبسط وأدق الأدوات البرمجية لإجراء كافة المقارنات الزوجية الممكنة بين المجموعات في خطوة واحدة. تتطلب الدالة مدخلين رئيسيين: المتغير التابع الرقمي (Response Vector)، ومتغير التجميع الفئوي (Grouping Factor).

تتضمن الدالة وسائط هامة تحدد السلوك الإحصائي للاختبار:

  • x: المتجه الرقمي الممثل للدرجات المقاسة (مثل study_data$anxiety_score).
  • g: المتغير الفئوي الممثل للمجموعات (مثل study_data$group).
  • p.adjust.method: أسلوب تصحيح القيمة الاحتمالية المرغوب.
  • pool.sd: متغير منطقي (TRUE أو FALSE) يحدد ما إذا كان سيتم حساب انحراف معياري مدمج موحد لكافة المجموعات (وهو الخيار الافتراضي عند تحقق تجانس التباين)، أو حساب تباين منفصل لكل زوج في حال عدم تجانس التباين.
  • paired: متغير منطقي يحدد ما إذا كانت العينات مرتبطة أم مستقلة.
  • alternative: تحديد اتجاه الفرضية (“two.sided” أو “less” أو “greater”).

7.2 تخصيص المعامل p.adjust.method = ‘bonferroni’

لتفعيل خوارزمية بونفيروني لحساب القيم الاحتمالية المعدلة، نقوم بتمرير السلسلة النصية "bonferroni" إلى الوسيط p.adjust.method. ينفذ الكود التالي المقارنات الزوجية المصححة على بيانات دراسة القلق:

bonferroni_results <- pairwise.t.test(
  x = study_data$anxiety_score,
  g = study_data$group,
  p.adjust.method = "bonferroni",
  pool.sd = TRUE,
  paired = FALSE,
  alternative = "two.sided"
)

print(bonferroni_results)

Bonferroni correction in R
Bonferroni correction in R

تقوم الدالة تلقائياً بحساب عدد المقارنات الممكنة m بناءً على عدد مستويات المتغير الفئوي، وحساب قيمة t لكل زوج، واستخراج قيمة p غير المصححة، ثم ضربها مباشرة في m مع وضع سقف عند القيمة 1.0 لعرض مصفوفة النتائج النهائية المصححة.

7.3 قراءة وتحليل مصفوفة قيم P الناتجة وتحديد الفروق الدالة

تولد الدالة مصفوفة مثلثية سفلية تعرض قيم p المعدلة عند تقاطع كل صف وعمود يمثلان زوجاً من المجموعات. يتم تفسير هذه المصفوفة بمقارنة كل قيمة معدلة معروضة مباشرة بمستوى الدلالة العام (α = 0.05):

  • إذا كانت قيمة p المعدلة لتقاطع (CBT – Control) تساوي مثلاً 0.0004، نستنتج وجود فرق دال إحصائياً بين مجموعة العلاج المعرفي والمجموعة الضابطة لصالح انخفاض القلق.
  • إذا كانت قيمة p المعدلة لتقاطع (Med – CBT) تساوي مثلاً 0.320، فإننا نقبل الفرضية الصفرية ونستنتج عدم وجود فرق جوهري بين العلاج الدوائي والعلاج المعرفي في هذه التجربة.
  • إذا كانت قيمة p لتقاطع (Combined – Control) أقل من 0.001، فإن ذلك يؤكد الفاعلية العالية للتدخل المدمج مقارنة بالمجموعة الضابطة بعد تطبيق أقصى درجات الضبط الإحصائي.

توفر هذه المصفوفة وضوحاً تاماً يمكّن الباحث من تحديد خريطة الفروق الزوجية بدقة متناهية وإدراجها مباشرة في مناقشة النتائج وتفسيراتها النظرية.

8. تطبيق تصحيح بونفيروني باستخدام دالة p.adjust() في R

8.1 استخراج قيم P الأولية من اختبارات t الفردية المستقلة

في بعض التصاميم البحثية المعقدة، قد لا تكون البيانات مصممة لإجراء كافة المقارنات عبر دالة مجمعة واحدة، أو قد يرغب الباحث في إجراء اختبارات t يدوية أو اختبارات ارتباط متعددة ثم تطبيق التصحيح عليها لاحقاً. لاستعراض هذا المسار المنهجي، نقوم بتنفيذ اختبارات t مستقلة لكل زوج من أزواج المجموعات الستة، واستخراج القيمة الاحتمالية الخام (Raw p-value) من كل اختبار:

p_raw <- c(
  t.test(anxiety_score ~ group, data = filter(study_data, group %in% c("Control", "CBT")))$p.value,
  t.test(anxiety_score ~ group, data = filter(study_data, group %in% c("Control", "Med")))$p.value,
  t.test(anxiety_score ~ group, data = filter(study_data, group %in% c("Control", "Combined")))$p.value,
  t.test(anxiety_score ~ group, data = filter(study_data, group %in% c("CBT", "Med")))$p.value,
  t.test(anxiety_score ~ group, data = filter(study_data, group %in% c("CBT", "Combined")))$p.value,
  t.test(anxiety_score ~ group, data = filter(study_data, group %in% c("Med", "Combined")))$p.value
)

comparison_names <- c("Control vs CBT", "Control vs Med", "Control vs Combined", "CBT vs Med", "CBT vs Combined", "Med vs Combined")

names(p_raw) <- comparison_names

print(p_raw)

ينتج عن هذه الخطوة متجه رقمي يحتوي على القيم الاحتمالية غير المصححة، والتي قد تقود إلى قرارات إيجابية كاذبة إذا فُسرت دون تعديل.

8.2 تنفيذ دالة p.adjust() لتعديل قائمة القيم المتعددة

تُعد دالة p.adjust() الأداة الأساسية العامة في لغة R لمعالجة أي متجه رقمي يحتوي على قيم احتمالية ناتجة عن أي نوع من الاختبارات الإحصائية (سواء كانت اختبارات t، أو معاملات ارتباط، أو اختبارات مربع كاي). لتطبيق تصحيح بونفيروني، نمرر المتجه الرقمي مع تحديد الوسيط method = "bonferroni":

p_bonf <- p.adjust(p_raw, method = "bonferroni")

ولعرض مقارنة بصرية واضحة بين القيم الخام والقيم المصححة، ندمجهما داخل إطار بيانات منظم (Data Frame):

adjustment_table <- data.frame(
  Comparison = comparison_names,
  Raw_P = round(p_raw, 5),
  Bonferroni_P = round(p_bonf, 5),
  Significant_Raw = p_raw < 0.05,
  Significant_Bonf = p_bonf < 0.05
)

print(adjustment_table)

يوضح هذا الجدول للباحث بدقة كيف تغيرت القرارات الاستدلالية؛ فقد نجد مقارنة معينة كانت دالة بالمعيار الخام (مثلاً p = 0.02) ولكنها فقدت دلالتها بعد تصحيح بونفيروني (padj = 0.12)، مما يحمي الدراسة من نشر نتيجة مضللة.

8.3 تعديل مستوى ألفا اليدوي ومقارنته بالمخرجات الآلية

للتأكد من التطابق الرياضي الكامل، يمكن للباحث حساب عتبة ألفا المعدلة يدوياً عبر الكود:

alpha_nominal <- 0.05

m_comparisons <- length(p_raw)

alpha_bonferroni <- alpha_nominal / m_comparisons

cat("Original Alpha:", alpha_nominal, "n")

cat("Adjusted Bonferroni Alpha Threshold:", round(alpha_bonferroni, 5), "n")

عند فحص المتجه الأصلي p_raw، سنلاحظ أن أي مقارنة تمتلك قيمة خام p_raw < alpha_bonferroni هي ذاتها المقارنة التي تمتلك p_bonf < 0.05 تماماً وبدون أي اختلاف. يمنح هذا الفهم المزدوج ثقة كاملة للباحث في تفسير مخرجات لغة R وتوثيقها بوضوح في الأبحاث العلمية.

9. استخدام حزم R المتقدمة لإجراء تصحيح بونفيروني (rstatix و multcomp)

9.1 استخدام حزمة rstatix للحصول على مخرجات متوافقة مع التنسيق المرتب (Tidy)

تتميز حزمة rstatix بتوافقها التام مع خطوط أنابيب تحليل البيانات الحديثة (Pipe-friendly Workflows) في منظومة tidyverse. تتيح دالة pairwise_t_test() الحصول على جدول بيانات مرتب من النوع tibble يضم كافة المؤشرات الإحصائية المطلوبة للنشر العلمي في هيكل واحد أنيق:

tidy_bonf_results <- study_data %>%
  pairwise_t_test(
    anxiety_score ~ group,
    p.adjust.method = "bonferroni",
    pool.sd = TRUE,
    detailed = TRUE
  )

print(tidy_bonf_results)

يحتوي هذا الجدول على أعمدة تحدد المجموعات المقارنة (group1, group2)، وأحجام العينات (n1, n2)، وقيمة إحصاء الاختبار (statistic)، ودرجات الحرية (df)، والقيمة الاحتمالية الخام (p)، والقيمة الاحتمالية المصححة ببونفيروني (p.adj)، بالإضافة إلى مؤشر نصي لدرجة الدلالة (p.adj.signif مثل ns أو * أو ** أو ***). هذا التنسيق يسهل عمليات التصدير والأتمتة اللاحقة للجداول والأشكال البيانية.

9.2 تطبيق دالة glht() من حزمة multcomp للمقارنات العامة المتعددة

تُعد حزمة multcomp (General Linear Hypotheses) المعيار الأكثر تقدماً ومرونة في إجراء اختبارات الفرضيات المتعددة في النماذج الخطية والنماذج الخطية المعممة. يتم تطبيق دالة glht() بربطها بكائن نموذج ANOVA المحسوب مسبقاً، وتحديد مصفوفة التباينات الزوجية عبر دالة mcp():

glht_model <- glht(anova_model, linfct = mcp(group = "Tukey"))

glht_bonf_summary <- summary(glht_model, test = adjusted("bonferroni"))

print(glht_bonf_summary)

تتيح هذه الحزمة أيضاً ميزة استثنائية تتمثل في حساب فترات الثقة المصححة بموجب تصحيح بونفيروني (Adjusted Simultaneous Confidence Intervals) لكل فرق بين متوسطين، وذلك عبر الأمر:

bonf_confint <- confint(glht_model, level = 0.95, calpha = univariate_calpha())

print(bonf_confint)

تضمن فترات الثقة المصححة هذه أن التغطية الشاملة لجميع الفترات مجتمعة تبلغ 95% على الأقل، مما يمنح الباحثين في القياس النفسي تقديراً كمياً دقيقاً لمدى التباين في حجم التأثير بين المجموعات.

9.3 حساب أحجام التأثير (Effect Sizes) المرافقة للمقارنات البعدية

لا تكتمل المعالجة الإحصائية الحديثة بمجرد الإبلاغ عن الدلالة الإحصائية وقيم p المصححة؛ بل يشترط دليل الجمعية الأمريكية لعلم النفس (APA) الإبلاغ عن أحجام التأثير لتقييم الأهمية العملية والإكلينيكية للفروق المكتشفة. يُعد مؤشر كوهين دي (Cohen’s d) المقياس المعياري للفروق بين المتوسطات. يمكن حسابه لكل مقارنة زوجية باستخدام حزمة rstatix:

effect_sizes <- study_data %>%
  cohens_d(anxiety_score ~ group, var.equal = TRUE)

print(effect_sizes)

نقوم بعد ذلك بدمج قيم d مع جدول نتائج بونفيروني المصحح لتقديم قراءة إحصائية شاملة؛ فحتى لو كان الفرق دالاً إحصائياً بمستوى padj < 0.001، فإن قيمة d توضح ما إذا كان حجم الأثر صغيراً (0.2)، متوسطاً (0.5)، أو كبيراً (0.8 فأكثر)، وهو ما يحدد القيمة الإكلينيكية الحقيقية لبروتوكول العلاج النفسي.

10. التصور البياني لنتائج المقارنات البعدية المصححة في R

10.1 إنشاء مخططات الصندوق (Boxplots) ومخططات الأعمدة باستخدام ggplot2

يمثل التصور البياني الدقيق خطوة جوهرية لتوصيل النتائج النفسية للقارئ بصورة بديهية ومقنعة. يُفضل استخدام مخططات الصندوق المعززة بنقاط التوزيع الفردية (Boxplots with Jittered Points) لعرض تشتت البيانات والمتوسطات والوسيط لكل مجموعة. نستخدم حزمة ggplot2 لبناء المخطط الأساسي:

base_plot <- ggplot(study_data, aes(x = group, y = anxiety_score, fill = group)) +
  geom_boxplot(alpha = 0.6, outlier.shape = NA, width = 0.5) +
  geom_jitter(width = 0.15, alpha = 0.7, size = 2, color = "darkgray") +
  scale_fill_brewer(palette = "Set2") +
  labs(
    title = "Effect of Psychological Interventions on Anxiety Scores",
    subtitle = "Pairwise comparisons adjusted using Bonferroni correction",
    x = "Treatment Group",
    y = "Anxiety Score (Standardized Scale)"
  ) +
  theme_classic() +
  theme(legend.position = "none")

print(base_plot)

10.2 إضافة أقواس الدلالة الإحصائية للقيم المصححة عبر حزمة ggpubr

لإظهار الفروق الدالة إحصائياً مباشرة فوق المجموعات المقارنة، نستخدم حزمة ggpubr التي تتكامل بسلاسة مع مخرجات دالة pairwise_t_test() لإضافة أقواس المقارنة ومستويات الدلالة المحددة بالنجوم الإحصائية:

stat_test <- tidy_bonf_results %>%
  add_xy_position(x = "group", step.increase = 0.1)

annotated_plot <- base_plot +
  stat_pvalue_manual(
    stat_test,
    label = "p.adj.signif",
    tip.length = 0.01,
    hide.ns = TRUE
  )

print(annotated_plot)

تضمن هذه الإضافة البرمجية ظهور الأقواس فقط للمقارنات التي حققت دلالة بعد تصحيح بونفيروني الصارم، مما يوفر على الباحث ساعات من التصميم اليدوي ويمنع أي خطأ في مطابقة الأرقام بالرسم.

10.3 تحسين المخططات البيانية لتتوافق مع معايير جمعية علم النفس الأمريكية (APA)

تشترط معايير APA (الإصدار السابع) البساطة والوضوح العالي في الرسوم البيانية، والابتعاد عن الألوان الصاخبة أو الخلفيات المظللة، واستخدام خطوط واضحة وتسميات محاور دقيقة تتضمن وحدات القياس. يمكن تطبيق سمة مخصصة تتوافق تماماً مع هذه المعايير عبر الكود التالي:

apa_final_plot <- annotated_plot +
  theme(
    text = element_text(family = "sans", size = 12),
    axis.title.x = element_text(face = "bold", margin = margin(t = 10)),
    axis.title.y = element_text(face = "bold", margin = margin(r = 10)),
    axis.text = element_text(color = "black", size = 10),
    axis.line = element_line(size = 0.8, color = "black"),
    plot.title = element_text(face = "bold", size = 14, hjust = 0),
    plot.subtitle = element_text(size = 11, fontface = "italic", hjust = 0)
  )

يتم بعد ذلك تصدير الرسم البياني بجودة طباعة فائقة الدقة (Vector PDF أو TIFF بدقة 300-600 DPI) عبر الأمر:

ggsave("Anxiety_Interventions_Bonferroni.png", plot = apa_final_plot, width = 8, height = 6, dpi = 600)

11. مقارنة تصحيح بونفيروني بأساليب التصحيح الأخرى في R

11.1 مقارنة بونفيروني مع اختبار توكي للفروق الدالة (Tukey’s HSD)

يُعد اختبار توكي للفروق الدالة الصادقة (Tukey’s Honest Significant Difference – HSD) المنافس الأبرز لتصحيح بونفيروني في سياق تحليل التباين الأحادي. يستند اختبار توكي إلى توزيع المدى المطور للطلاب (Studentized Range Distribution) وهو مصمم خصيصاً لاختبار كافة المقارنات الزوجية الممكنة بين جميع المجموعات.

يمكن إجراء اختبار توكي في R بسهولة باستخدام الدالة:

tukey_results <- TukeyHSD(anova_model)

print(tukey_results)

عند إجراء جميع المقارنات الزوجية الممكنة (All-Pairwise Comparisons)، يكون اختبار توكي أكثر قوة إحصائية (More Powerful) من تصحيح بونفيروني؛ حيث يولد فترات ثقة أضيق وقيم p أصغر، نظراً لأنه يأخذ في الاعتبار الارتباط الرياضي المشترك بين المقارنات الزوجية، بينما يفترض بونفيروني السيناريو الأسوأ لمتباينة بولي.

ومع ذلك، يظل تصحيح بونفيروني متفوقاً ومفضلاً في الحالات التالية: عندما يكون الباحث مهتماً فقط باختبار عدد محدود ومخطط مسبقاً من المقارنات (Planned Contrasts) بدلاً من فحص جميع الأزواج، أو عند مقارنة عدة مجموعات علاجية بمجموعة ضابطة واحدة فقط، حيث يصبح بونفيروني أقل تحفظاً وأكثر مرونة.

11.2 مقارنة بونفيروني مع تصحيح هولم-بونفيروني (Holm-Bonferroni)

قدم عالم الإحصاء السويدي ستيج هولم تعديلاً متدرجاً رائعاً لتصحيح بونفيروني التقليدي يُعرف باسم طريقة هولم-بونفيروني أو الطريقة التصاعدية (Step-down Bonferroni). في هذه الطريقة، يتم ترتيب القيم الاحتمالية غير المصححة تصاعدياً من الأصغر إلى الأكبر، ثم تعديل كل قيمة بعتبة متغيرة تعتمد على ترتيبها؛ حيث تقسم ألفا للاختبار الأول على m، وللاختبار الثاني على (m – 1)، وللاختبار الثالث على (m – 2)، وهكذا.

يتم تطبيق هذا التصحيح في R بمجرد تغيير وسيط الدالة إلى method = "holm":

p_holm <- p.adjust(p_raw, method = "holm")

أثبت الإحصائيون رياضياً أن تصحيح هولم يتحكم في معدل الخطأ الشامل للأسرة (FWER) بنفس الصرامة والضمان الكامل الذي يقدمه تصحيح بونفيروني الكلاسيكي دون أي تنازل، ولكنه في الوقت ذاته يتمتع بقوة إحصائية أعلى بكثير (Strictly More Powerful). لذلك، يوصي معظم خبراء المنهجية المعاصرين باعتماد تصحيح هولم كبديل افتراضي وأفضل لتصحيح بونفيروني الكلاسيكي في كافة التحليلات الاستكشافية.

11.3 التحكم في FWER مقابل التحكم في معدل الاكتشاف الكاذب (FDR)

عند الانتقال إلى الدراسات واسعة النطاق في علم النفس العصبي، أو أبحاث التصوير بالرنين المغناطيسي الوظيفي (fMRI)، أو أبحاث الجينوم السلوكي حيث يصل عدد الفرضيات المختبرة إلى الآلاف، يصبح التحكم في FWER عبر بونفيروني غير عملي بالمرة، حيث يؤدي إلى محو تام لكافة التأثيرات الحقيقية (خسارة فادحة للقوة الإحصائية).

في هذه البيئات البحثية، يتم التحول من التحكم في FWER إلى التحكم في معدل الاكتشاف الكاذب (False Discovery Rate – FDR)، وهو الأسلوب الذي ابتكره بنياميني وهوكبيرغ (Benjamini & Hochberg – BH). لا يهدف FDR إلى ضمان عدم ارتكاب أي خطأ إيجابي واحد كاذب، بل يضمن ألا تتجاوز نسبة الاكتشافات الكاذبة نسبة معينة (مثلاً 5%) من مجمل الفرضيات التي تم إعلان دلالتها.

يتم تطبيق طريقة BH في R عبر الأمر:

p_fdr <- p.adjust(p_raw, method = "BH")

يوضح الجدول التالي دليلاً شاملاً للمفاضلة بين هذه الأساليب المنهجية:

  • تصحيح بونفيروني (Bonferroni): الأنسب عند إجراء عدد قليل من المقارنات المخططة مسبقاً (FWER).
  • تصحيح هولم (Holm): البديل الأفضل دائماً للمقارنات الزوجية العامة للحفاظ على القوة الإحصائية (FWER).
  • اختبار توكي (Tukey HSD): الخيار الأمثل للمقارنات الزوجية الشاملة في تحليل التباين المتزن (FWER).
  • تصحيح بنياميني-هوكبيرغ (BH / FDR): الخيار الإلزامي في الدراسات الاستكشافية الضخمة وتحليل البيانات عالية الأبعاد (FDR).

12. كتابة تقرير النتائج وفق معايير جمعية علم النفس الأمريكية (APA Style)

12.1 الصياغة الأكاديمية الدقيقة لنتائج ANOVA وتصحيح بونفيروني

يتطلب توثيق النتائج وفق الإصدار السابع من دليل APA دقة بالغة في سرد القيم الإحصائية، ودرجات الحرية، ومستويات الدلالة، وأحجام التأثير. يجب أن يربط النص الأكاديمي بين الدلالة الرقمية والمعنى السلوكي بصياغة واضحة. فيما يلي نموذج قياسي لكتابة التقرير باللغة العربية مع مراعاة الاصطلاحات الإحصائية المعتمدة عالمياً:

“أظهرت نتائج تحليل التباين الأحادي (One-Way ANOVA) وجود فروق ذات دلالة إحصائية جوهرية في درجات القلق بين مجموعات التدخل العلاجي المختلفة، F(3, 96) = 28.45, p < .001, η2 = .47. وبناءً على هذه النتيجة الدالة، تم إجراء المقارنات البعدية الزوجية باستخدام اختبارات t مع تطبيق تصحيح بونفيروني لضبط معدل الخطأ الشامل للأسرة (FWER = .05). كشفت المقارنات المصححة أن مجموعة التدخل المدمج أظهرت انخفاضاً دالاً في درجات القلق (M = 30.12, SD = 4.88) مقارنة بكل من مجموعة العلاج المعرفي السلوكي (M = 37.85, SD = 5.42, padj < .001, Cohen’s d = 1.50) والمجموعة الضابطة (M = 45.20, SD = 5.95, padj < .001, Cohen’s d = 2.77). كما حققت مجموعة العلاج المعرفي انخفاضاً دالاً مقارنة بالمجموعة الضابطة (padj = .002, Cohen’s d = 1.28). في المقابل، لم تسفر المقارنة بين العلاج السلوكي والعلاج الدوائي المنفرد عن فروق ذات دلالة إحصائية بعد التصحيح (padj = .482, Cohen’s d = 0.35).”

12.2 تصميم جداول النتائج التلخيصية وفق دليل APA الإصدار السابع

يتطلب تنسيق جداول APA إزالة الخطوط الرأسية واستخدام خطوط أفقية رفيعة في أعلى الجدول وأسفله وأسفل رؤوس الأعمدة فقط، مع ضرورة توفير هوامش سفلية تفسر طبيعة التصحيح والرموز المستخدمة. يمكن تنظيم مخرجات R داخل جدول منسق يجمع الفروق بين المتوسطات، وفترات الثقة، وقيم p المصححة، وقيم حجم الأثر.

تسهل حزم مثل gt أو apaTables أتمتة هذه الجداول مباشرة من بيئة R لتصديرها بصيغة Word أو LaTeX جاهزة للنشر دون الحاجة لإعادة كتابة الأرقام يدوياً، مما يلغي تماماً احتمالية وقوع أخطاء النسخ والتحويل.

12.3 أفضل الممارسات وتجنب الأخطاء الشائعة في تفسير النتائج

لضمان الشفافية العلمية وأعلى درجات الرصانة المنهجية، يوصى باتباع الإرشادات التالية عند إجراء وتفسير تصحيح بونفيروني في R:

  • تجنب الإفراط في التصحيح (Over-Correction): لا تقم بتصحيح الفرضيات المخططة مسبقاً (A priori Orthogonal Contrasts) والمبنية على أساس نظري متين بنفس صرامة الفرضيات الاستكشافية البعدية المفتوحة؛ إذ يكفي في المقارنات الموجهة المحدودة الاعتماد على مستويات ألفا القياسية أو أساليب تصحيح أقل إجحافاً.
  • التفريق الصارم بين الدلالة الإحصائية والأهمية الإكلينيكية: لا يعني حصول فرق طفيف على قيمة padj < 0.001 (نتيجة كبر حجم العينة) أن التدخل العلاجي ناجح بالضرورة من الناحية السريرية؛ يجب دائماً قراءة القيمة الاحتمالية جنباً إلى جنب مع حجم التأثير وفترات الثقة.
  • الإفصاح الكامل والشفافية البرمجية: يجب على الباحثين تضمين كود R الكامل ومصفوفات البيانات الخام كملفات إضافية تكميلية (Supplementary Materials) لتمكين المراجعين والمجتمع العلمي من إعادة إنتاج التحليلات والتحقق من سلامة التصحيحات المطبقة.

خاتمة شاملة وتوصيات منهجية

يمثل تصحيح بونفيروني في لغة R أحد الركائز المنهجية الأساسية في التحليل الإحصائي البارامتري، حيث يقدم حلاً رياضياً كلاسيكياً صارماً لحماية الباحثين من مخاطر التضخم التراكمي للخطأ من النوع الأول عند اختبار الفرضيات المتعددة. ومن خلال استيعاب الأساس النظري القائم على متباينة بولي، والتمكن من الدوال البرمجية المتنوعة في R مثل pairwise.t.test() و p.adjust() وحزم التحليل الحديثة مثل rstatix و multcomp، يستطيع الباحث النفسي والاجتماعي إدارة بياناته بكفاءة استثنائية ونقل استنتاجاته بمصداقية أكاديمية لا تتزعزع.

ومع ذلك، يجب أن يظل الباحث واعياً للطبيعة المحافظة لهذا التصحيح، وأن يتسلح بالقدرة على المفاضلة المنهجية بينه وبين البدائل الأكثر مرونة وقوة مثل تصحيح هولم-بونفيروني واختبار توكي، بما يضمن الجمع المتوازن بين الصرامة في كبح الاكتشافات الكاذبة والحساسية في رصد التأثيرات الإكلينيكية والسلوكية الحقيقية التي تسهم في تطوير المعرفة الإنسانية.

References

  • American Psychological Association. (2020). Publication manual of the American Psychological Association (7th ed.). American Psychological Association. https://doi.org/10.1037/0000165-000
  • Benjamini, Y., & Hochberg, Y. (1995). Controlling the false discovery rate: A practical and powerful approach to multiple testing. Journal of the Royal Statistical Society: Series B (Methodological), 57(1), 289–300. https://doi.org/10.1111/j.2517-6161.1995.tb02031.x
  • Bonferroni, C. E. (1936). Teoria statistica delle classi e calcolo delle probabilità. Pubblicazioni del R Istituto Superiore di Scienze Economiche e Commerciali di Firenze, 8, 3–62.
  • Cohen, J. (1988). Statistical power analysis for the behavioral sciences (2nd ed.). Lawrence Erlbaum Associates.
  • Field, A., Miles, J., & Field, Z. (2012). Discovering statistics using R. SAGE Publications.
  • Fox, J., & Weisberg, S. (2019). An R companion to applied regression (3rd ed.). SAGE Publications. https://socialsciences.mcmaster.ca/jfox/Books/Companion/
  • Holm, S. (1979). A simple sequentially rejective multiple test procedure. Scandinavian Journal of Statistics, 6(2), 65–70. https://www.jstor.org/stable/4615733
  • Hothorn, T., Bretz, F., & Westfall, P. (2008). Simultaneous inference in general parametric models. Biometrical Journal, 50(3), 346–363. https://doi.org/10.1002/bimj.200810425
  • Kassambara, A. (2023). rstatix: Pipe-friendly framework for basic statistical tests in R (R package version 0.7.2). https://CRAN.R-project.org/package=rstatix
  • Maxwell, S. E., Delaney, H. D., & Kelley, K. (2018). Designing experiments and analyzing data: A model comparison perspective (3rd ed.). Routledge. https://doi.org/10.4324/9781315642956
  • R Core Team. (2023). R: A language and environment for statistical computing. R Foundation for Statistical Computing. https://www.R-project.org/
  • Wickham, H., Averick, M., Bryan, J., Chang, W., McGowan, L. D., François, R., Grolemund, G., Hayes, A., Henry, L., Hester, J., Kuhn, M., Pedersen, T. L., Miller, E., Bache, S. M., Müller, K., Ooms, J., Robinson, D., Seidel, D. P., Spinu, V., … Yutani, H. (2019). Welcome to the Tidyverse. Journal of Open Source Software, 4(43), 1686. https://doi.org/10.21105/joss.01686

اقتباس هذا المقال

looti, M. (2026, سبتمبر 1). كيفية إجراء تصحيح بونفيروني في R. عرب سايكلوجي. https://arabpsychology.com/statistics/how-to-perform-bonferroni-correction-in-r/
looti, Mohammed. “كيفية إجراء تصحيح بونفيروني في R.” عرب سايكلوجي, 1 سبتمبر 2026, https://arabpsychology.com/statistics/how-to-perform-bonferroni-correction-in-r/.
looti, Mohammed. “كيفية إجراء تصحيح بونفيروني في R.” عرب سايكلوجي. سبتمبر 1, 2026. https://arabpsychology.com/statistics/how-to-perform-bonferroni-correction-in-r/.