الإحصاء والبياناتبرمجة R والتحليل الإحصائي

كيفية رسم مدرجات تكرارية متعددة في R (مع أمثلة)

دليل شامل ومفصل لتعلم كيفية رسم ومقارنة المدرجات التكرارية المتعددة في لغة R باستخدام Base R وggplot2، مع تطبيقات عملية وأمثلة على البيانات النفسية.

تاريخ النشر

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

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

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

1. مقدمة شاملة حول المدرجات التكرارية المتعددة في لغة R وأهميتها الإحصائية

1.1 المفهوم الإحصائي للمدرج التكراري ودوره في التحليل الاستكشافي للبيانات

يمثل المدرج التكراري (Histogram) أداة بيانية كلاسيكية تُستخدم لتمثيل التوزيع التكراري لمتغير كمي مستمر. تعمل هذه الأداة من خلال تقسيم المدى الكلي للبيانات إلى فترات فرعية متتالية وغير متداخلة تُعرف بالفئات أو الحاويات (Bins)، ثم حساب عدد المشاهدات (Frequency) التي تقع داخل كل فئة، وتمثيل تلك التكرارات بأعمدة رأسية متجاورة يتناسب ارتفاعها، أو مساحتها، طردياً مع عدد المشاهدات أو كثافتها الاحتمالية داخل الفئة المعنية.

يتجاوز المدرج التكراري مجرد كونه رسماً بيانياً للأعمدة؛ فهو نافذة استكشافية حاسمة لتقييم الخصائص التوزيعية المعقدة للمتغيرات. من خلال الفحص البصري للمدرج، يستطيع المحلل تقييم مدى تماثل التوزيع (Symmetry) واكتشاف درجات الالتواء (Skewness) سواء كان التواءً موجباً نحو اليمين أو سالباً نحو اليسار، فضلاً عن تقييم التفرطح (Kurtosis) الذي يعكس ثقل ذيول التوزيع وارتفاع قمته. تكتسب هذه المؤشرات أهمية خاصة في التحقق من افتراض التوزيع الطبيعي (Normality Assumption)، وهو شرط جوهري لتطبيق اختبارات الفروق المعلمية مثل اختبار “ت” (t-test) وتحليل التباين (ANOVA).

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

1.2 دوافع دمج ومقارنة مدرجات تكرارية متعددة على رسم بياني واحد

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

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

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

1.3 نظرة عامة على المقاربات البرمجية المتاحة في R لإنشاء المدرجات المتعددة

توفر بيئة لغة R مرونة فائقة لتوليد وتخصيص الرسوم البيانية عبر مسارين رئيسيين يمثل كل منهما فلسفة برمجية متميزة. المسار الأول هو نظام الرسوم الأساسي المدمج (Base R Graphics)، والذي يعتمد على دوال كلاسيكية سريعة ومباشرة مثل دالة hist()، مع استخدام وسائط التحكم في النوافذ والتراكب مثل add = TRUE وpar(mfrow). يتميز هذا النظام بعدم حاجته لتثبيت حزم خارجية، وسرعته الاستثنائية في الاستكشاف الأولي السريع للبيانات، إلا أنه يتطلب كتابة أكواد يدوية مطولة نسبياً لضبط عناصر التصميم المعقدة مثل وسيلة الإيضاح وتنسيق الألوان الشفافة وضبط حدود المحاور بصورة متزامنة.

المسار الثاني، والأكثر شيوعاً وقوة في الأوساط الأكاديمية والمهنية المعاصرة، هو حزمة ggplot2 المرتكزة على النظرية البنيوية “قواعد بنية الرسوم” (Grammar of Graphics) التي طورها ليلاند ويلكنسون وصاغها برمجياً هادلي ويكهام. تتيح هذه الفلسفة بناء الرسوم البيانية عبر طبقات متراكمة ومنطقية (Layered Approach)، حيث يتم ربط المتغيرات بالخصائص الجمالية (Aesthetic Mappings) ثم تحديد الشكل الهندسي المطلوب عبر geom_histogram(). يمنح نظام ggplot2 الباحثين تحكماً مطلقاً في مظهر الرسم، وإمكانية إضافة منحنيات الكثافة، وإنشاء لوحات فرعية متناسقة تلقائياً عبر دوال التقسيم (Faceting)، مما يجعله الخيار الأمثل لإعداد مخرجات بصرية مطابقة لمعايير النشر المرموقة.

يعتمد اختيار الباحث بين هذين المسارين على طبيعة المهمة الحالية ومستوى التعقيد المطلوب. فبينما يفضل استخدام Base R للمهام البرمجية البسيطة داخل الدوال المخصصة والفحص الفوري للبيانات، يُنصح دائماً بالاعتماد على ggplot2 عند بناء لوحات متقدمة تتضمن مقارنات متعددة الفئات، أو عند الحاجة إلى تخصيص دقيق ومتقدم للثيمات وتصدير المخططات بدقة متناهية للنشر العلمي والتقارير الاحترافية.

2. تهيئة بيئة العمل وإعداد البيانات الإحصائية والنفسية في R

2.1 تثبيت واستدعاء المكتبات الضرورية

لبناء بيئة عمل متكاملة وقادرة على معالجة وتصور التوزيعات المتعددة بأعلى كفاءة، يتعين علينا استدعاء منظومة من الحزم التكميلية المتوافقة. تأتي حزمة tidyverse في مقدمة هذه الحزم، وهي مظلة برمجية تضم حزمة ggplot2 المتخصصة في التصوير البياني، إلى جانب حزم المعالجة وهيكلة البيانات مثل dplyr وtidyr. يتيح تثبيت التايديفيرس بيئة متجانسة تتكامل فيها هياكل البيانات مع دوال الرسم بسلاسة تامة دون حدوث تضارب في الأنواع والتعريفات.

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

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

2.2 توليد بيانات افتراضية قابلة للتكرار (Reproducible Data Generation)

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

سنقوم بمحاكاة درجات مقياس افتراضي للقلق والاكتئاب عبر استخدام دالة التوزيع الطبيعي rnorm(). سننشئ ثلاث عينات مستقلة تمثل مستويات مختلفة من التدخل العلاجي: مجموعة ضابطة (Control Group)، ومجموعة علاج معرفي سلوكي تقليدي (CBT Group)، ومجموعة علاج باليقظة الذهنية (Mindfulness Group). نقوم بتحديد حجم كل عينة بـ 250 مشاركاً، مع تعيين متوسطات حسابية وانحرافات معيارية متباينة تعكس الفروق المتوقعة سريرياً بعد تطبيق التدخلات العلاجية.

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

2.3 إعادة تشكيل وهيكلة البيانات: التنسيق العريض (Wide) مقابل التنسيق الطويل (Long)

تعتمد كيفية تنظيم البيانات داخل أطر البيانات (Data Frames) بشكل مباشر على الأداة البرمجية المستخدمة في الرسم. في نظام Base R التقليدي، يسهل التعامل مع البيانات المنظمة وفق “التنسيق العريض” (Wide Format)، حيث يمثل كل عمود متغيراً أو مجموعة مستقلة بذاتها (مثل عمود لدرجات المجموعة الضابطة، وعمود مستقل لدرجات مجموعة العلاج المعرفي). يتيح هذا التنسيق استدعاء كل متجه على حدة ورسمه مباشرة عبر دوال النظام الأساسي.

في المقابل، تشترط فلسفة حزمة ggplot2 تنظيم البيانات وفق “التنسيق الطويل” (Long Format) أو ما يعرف بمبدأ البيانات المرتبة (Tidy Data). في هذا التنسيق، يحتوي إطار البيانات على عمود يمثل درجات القياس المجمعة (القيم العددية)، وعمود تصنيفي آخر يعمل كمتغير تجميعي (Grouping Factor) يشير إلى اسم المجموعة أو الشرط التجريبي الذي تنتمي إليه كل درجة. هذا الهيكل البياني هو ما يسمح لـ ggplot2 بتعيين المتغير التصنيفي للسمة الجمالية للتعبئة fill = group وتقسيم التوزيعات بصورة آلية متطورة.

لتحويل البيانات من التنسيق العريض إلى التنسيق الطويل بسلاسة، نستخدم دالة pivot_longer() المتوفرة في حزمة tidyr. بعد إجراء التحويل، يجب فحص الهيكل البنائي لإطار البيانات والتأكد من صحة أنواع المتغيرات باستخدام دوال الفحص الأساسية مثل head() لمعاينة الصفوف الأولى، وstr() لفحص بنية الأعمدة، وsummary() للحصول على ملخص إحصائي سريع للأوصاف الرقمية والتكرارية، مما يضمن جاهزية البيانات للانتقال إلى مرحلة الرسم والتصوير البياني.

3. رسم مدرجات تكرارية متعددة باستخدام نظام R الأساسي (Base R)

3.1 الأسلوب المباشر لرسم مدرجين متراكبين باستخدام الوسيط add=TRUE

يقوم النهج الكلاسيكي لرسم مدرجات تكرارية متراكبة في Base R على فكرة استدعاء دالة hist() مرتين متتاليتين؛ حيث تنشئ المكالمة الأولى المدرج التكراري الأساسي للمجموعة الأولى، بينما تُستخدم المكالمة الثانية للمجموعة الأخرى مع إضافة الوسيط المنطقي add = TRUE. يوجه هذا الوسيط محرك الرسوم في R بعدم مسح نافذة الرسم الحالية أو إنشاء مخطط جديد، بل إسقاط الأعمدة التكرارية للتوزيع الثاني مباشرة فوق المخطط القائم بالفعل.

تتطلب هذه العملية الحسابية ضبطاً يدوياً مسبقاً لحدود المحاور الأفقية xlim والعمودية ylim في أمر الرسم الأول. إذا لم يتم تحديد هذه الحدود لتستوعب المدى الكامل لكلا التوزيعين معاً، فإن محرك الرسوم سيقوم بضبط المحاور وفق بيانات التوزيع الأول فقط، مما يؤدي إلى اقتطاع أجزاء من التوزيع الثاني إذا كان يحتوي على قيم متطرفة أو تكرارات أعلى تتجاوز نطاق الرسم الأول. لذلك، يجب حساب الحد الأدنى والأقصى للبيانات والتكرارات لكلا المجموعتين وتمريرها بدقة إلى الدالة الأولى.

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

3.2 إدارة الألوان والشفافية باستخدام دالة rgb() لمنع حجب البيانات

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

لحل هذه المعضلة الهندسية في Base R، نلجأ إلى دالة rgb() لتعريف تراكيب لونية مخصصة تعتمد على نظام الألوان القياسي: الأحمر (Red)، الأخضر (Green)، والأزرق (Blue)، بالإضافة إلى المعامل الرابع الحاسم وهو قناة الشفافية أو الألفا (Alpha Channel). تتراوح قيم هذه المعاملات بين 0 و 1 (أو بين 0 و 255)، حيث تمثل القيمة 0 شفافية مطلقة تجعل العنصر غير مرئي، بينما تمثل القيمة 1 لوناً مصمتاً تماماً. يتيح ضبط قيمة ألفا عند مستوى يتراوح بين 0.4 و 0.6 الحصول على ألوان نصف شفافة تسمح برؤية التفاصيل البنائية لكلا المدرجين في آن واحد.

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

Multiple histograms in one plot in R
Multiple histograms in one plot in R

3.3 إضافة وتنسيق وسيلة الإيضاح (Legend) في Base R

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

تتيح دالة legend() مرونة كاملة في تحديد موضع الظهور على رقعة الرسم، إما عبر تمرير إحداثيات رقمية دقيقة (x, y)، أو باستخدام كلمات مفتاحية موضعية بديهية مثل 'topright'، 'topleft'، أو 'bottomright'. يجب اختيار الموضع الذي يخلو من الأعمدة التكرارية لتجنب تغطية وسيلة الإيضاح للبيانات المرسومة. تتضمن المعايير الأساسية للدالة تمرير وسيط التسميات legend = c('Group A', 'Group B')، ووسيط ألوان التعبئة fill الذي يجب أن يتطابق تماماً مع صيغ ألوان rgb() نصف الشفافة المستخدمة في رسم المدرجات.

للارتقاء بالمظهر الجمالي للرسم البياني وجعله مناسباً للأوراق العلمية الرصينة، يُنصح بتخصيص إطار وسيلة الإيضاح عبر الوسيط bty = 'n' لإزالة الخطوط الخارجية الصندوقية غير الضرورية، وتعديل حجم خط النص عبر الوسيط cex لضمان تناسب أبعاد الكلمات مع الحجم الكلي للمخطط، مما يمنح المخرج النهائي مظهراً أكاديمياً نظيفاً ومهنياً.

4. تخصيص وتحسين المدرجات التكرارية المتعددة في Base R

4.1 التحكم في حجم الفئات التكرارية (Bins / Breaks)

يعد تحديد عدد الفئات التكرارية وعرضها (Bin Width) القرار الأكثر حساسية وتأثيراً في بنية المدرج التكراري. يتحكم وسيط breaks في دالة hist() في هذا التقسيم، حيث يمكن تمرير رقم تقريبي لعدد الفئات المطلوبة، أو متجه يحتوي على نقاط القطع المحددة بدقة، أو اسم خوارزمية إحصائية معيارية لحساب التقسيم الأمثل للبيانات.

تعتمد لغة R افتراضياً صيغة “ستورجس” (Sturges’ formula)، والتي تعمل بكفاءة مع البيانات الموزعة توزيعاً طبيعياً ومعتدلاً، إلا أنها قد تخفق في تمثيل التوزيعات شديدة الالتواء أو متعددة القمم. في مثل هذه الحالات، يمكن اللجوء إلى خوارزميات بديلة مثل قاعدة “فريدمان-دياكونيس” (Freedman-Diaconis) عبر تمرير breaks = 'FD'، والتي تعتمد على المدى الربيعي وتوفر حماية ممتازة ضد تشوهات التوزيع الناتجة عن القيم الشاذة، أو قاعدة “سكوت” (Scott) التي تعتمد على الانحراف المعياري وحجم العينة.

عند مقارنة مدرجين تكراريين أو أكثر، تبرز ضرورة قصوى لـ “مزامنة الفئات” (Bins Synchronization). إذا تم رسم المجموعة الأولى بفئات عريضة والمجموعة الثانية بفئات ضيقة، فستصبح المقارنة البصرية مضللة وغير عادلة علمياً؛ إذ ستبدو المجموعة ذات الفئات الأضيق بتكرارات منخفضة ومشتتة بينما تبدو الأخرى بتكرارات متراكمة وضخمة. يتمثل الحل المنهجي في تعريف متجه موحد لنقاط القطع يبدأ من أدنى قيمة في المجموعتين وينتهي عند أقصى قيمة فيهما، وتمرير نفس هذا المتجه كوسيط breaks لكلا المدرجين دون استثناء.

4.2 تنسيق العناوين والمحاور والشبكة الخلفية

يتطلب إعداد الرسوم البيانية لأغراض النشر أو العرض العلمي عناية فائقة بالنصوص الإيضاحية وتنسيق المحاور. في نظام Base R، يتم تخصيص العنوان الرئيسي للمخطط عبر وسيط main، بينما يُستخدم وسيط sub لإضافة تعليق توضيحي أسفل الرسم. يتم تعيين تسميات المحور الأفقي والمحور الرأسي عبر xlab وylab على التوالي، مع الحرص التام على تضمين وحدات القياس بدقة (مثل: “درجات مقياس بيك للاكتئاب (نقاط)” أو “التردد المطلق”).

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

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

4.3 عرض مدرجات متعددة متجاورة باستخدام دالة par(mfrow)

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

يتيح نظام Base R تحقيق هذا التصميم بسهولة بالغة عبر دالة ضبط معايير الرسوم par() وتمرير وسيط تخطيط المصفوفة mfrow = c(rows, cols). فعلى سبيل المثال، يؤدي الأمر par(mfrow = c(1, 3)) إلى تقسيم نافذة الرسوم إلى صف واحد يحتوي على ثلاثة أعمدة، مما يتيح رسم ثلاثة مدرجات تكرارية متعاقبة تظهر جنباً إلى جنب على شاشة واحدة.

لضمان نزاهة المقارنة البصرية في هذا النمط المتجاور، من الضروري للغاية توحيد مقاييس المحاور الأفقية (xlim) والمحاور الرأسية (ylim) عبر كافة الرسوم المنفصلة. إذا تباينت المقاييس، سيتولد انطباع خاطئ لدى القارئ باختلاف التوزيعات رغم تطابقها المحتمل. علاوة على ذلك، يجب دائماً إعادة ضبط معايير الرسوم إلى حالتها الافتراضية عبر استدعاء par(mfrow = c(1, 1)) فور الانتهاء من رسم الشبكة، لتجنب تأثر أي مخططات بيانية لاحقة بهذا التقسيم.

5. بناء المدرجات التكرارية المتراكبة باستخدام حزمة ggplot2

5.1 البنية الأساسية لاستخدام geom_histogram مع المتغيرات التجميعية

تستند حزمة ggplot2 إلى فلسفة بناء تدريجية تبدأ بربط إطار البيانات والخصائص الجمالية داخل دالة ggplot()، حيث يتم تمرير المتغير العددي إلى المحور الأفقي aes(x = value)، وتمرير المتغير التصنيفي التجميعي إلى خاصية التعبئة fill = group. تلي هذه الخطوة إضافة الطبقة الهندسية المخصصة للمدرجات التكرارية عبر استدعاء geom_histogram().

يمثل وسيط الموضع (position) العنصر الحاسم الذي يحدد الكيفية التي ستتعامل بها حزمة ggplot2 مع الأعمدة التكرارية للمجموعات المتعددة. افتراضياً، تطبق الحزمة خيار التراكم الرأسي position = 'stack'، حيث توضع أعمدة المجموعات فوق بعضها البعض تراكمياً، وهو ما يجعل قراءة التوزيع الفردي لكل مجموعة أمراً بالغ الصعوبة. لتحقيق التراكب المقارن المباشر، يجب تغيير وسيط الموضع صراحة إلى position = 'identity'، مما يجعل كل مدرج ينطلق مستقلاً من خط الأساس الصفري للمحور الرأسي.

بالتزامن مع ضبط الموضع على identity، يصبح من الإلزامي تحديد معامل شفافية عام عبر الوسيط alpha (بقيمة تتراوح عادة بين 0.4 و0.6). يضمن ذلك إمكانية رؤية كافة الطبقات المتراكبة ومناطق التقاطع بوضوح بصري استثنائي دون أن تحجب الطبقات الأمامية الأعمدة الخلفية. كما يمكن استخدام خيار الموضع البديل position = 'dodge' لوضع أعمدة المجموعات متجاورة جنباً إلى جنب داخل كل فئة تكرارية، إلا أن خيار التراكب الشفاف identity يظل الأكثر تفضيلاً لدراسة شكل المنحنيات ومقارنة التوزيعات المستمرة.

5.2 التحكم الدقيق في الفئات (Bins و Binwidth)

تقدم حزمة ggplot2 آليتين دقيقتين للتحكم في بنية الفئات التكرارية وتفادي مشكلات التنعيم المفرط أو التشتت الزائد. الآلية الأولى هي تحديد عدد الفئات الإجمالي عبر وسيط bins داخل دالة geom_histogram() (القيمة الافتراضية في الحزمة هي 30 فئة). توفر هذه الآلية تحكماً سريعاً، إلا أنها قد لا تتناسب دائماً مع طبيعة الفواصل العددية المنطقية لبيانات القياس النفسي والاجتماعي.

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

بالإضافة إلى ذلك، توفر الحزمة وسائط إضافية فائقة الدقة مثل boundary أو center، والتي تحدد نقطة الارتكاز الرياضية لبدء تقسيم الفئات (مثل إلزام الفئات بأن تبدأ تماماً من الأعداد الصحيحة كـ 0، 5، 10، … إلخ). يساعد ضبط هذه المحددات في منع ظهور أعمدة عشوائية تمتد عبر فواصل عشرية غير مرغوبة، ويضمن تطابقاً كاملاً في حدود الفئات عند مقارنة مجموعات فرعية متباينة.

5.3 تخصيص لوحات الألوان والتعبئة في ggplot2

يعد الاختيار المتقن للألوان في ggplot2 عنصراً جوهرياً يتجاوز الأبعاد التجميلية ليصل إلى تعزيز وضوح الاتصال العلمي وإتاحة الرسوم لكافة فئات القراء، بما في ذلك الأفراد الذين يعانون من درجات مختلفة من عمى الألوان (Color Vision Deficiency). توفر المنظومة دوال تحكم لونية قوية ترتبط تلقائياً بمستويات المتغير التجميعي المعين لخاصية fill.

لتطبيق لوحة ألوان يدوية مخصصة ومطابقة للهويات المؤسسية أو المعايير الأكاديمية الصارمة، تُستخدم دالة scale_fill_manual()، حيث يتم تمرير متجهات لونية دقيقة باستخدام الأسماء القياسية أو رموز الهيكس السداسية (Hex Codes). على سبيل المثال، يمكن تخصيص تدرجات هادئة وعالية التباين تمنع التداخل البصري المزعج وتضمن تمييزاً فورياً بين المجموعات التجريبية.

كذلك، يمكن الاستفادة من لوحات الألوان المعيارية الجاهزة عبر حزمة RColorBrewer باستخدام دالة scale_fill_brewer(palette = 'Set2')، أو الاعتماد على لوحات viridis العلمية الشهيرة عبر دالة scale_fill_viridis_d(). تتميز لوحات viridis بأنها مصممة وفق معايير الإدراك البصري الموحد وتظل واضحة ومتباينة تماماً حتى عند طباعة الرسم باللونين الأبيض والأسود أو بتدرجات الرمادي، مما يجعلها الخيار النموذجي للنشر في الدوريات العلمية المحكمة عالمياً.

6. رسم مدرجات تكرارية متعددة منفصلة عبر الأقسام (Faceting) في ggplot2

6.1 استخدام دالة facet_wrap() لإنشاء شبكة مدرجات تكرارية

تُعد تقنية “التقسيم إلى أقسام فرعية” (Faceting) إحدى أقوى وأبرز المزايا البنيوية في حزمة ggplot2؛ إذ تتيح تفكيك البيانات تلقائياً وتوليد مصفوفة من المخططات الفرعية المتناسقة بناءً على مستويات متغير تصنيفي معين، مع الحفاظ على نفس القواعد الجمالية وتنسيقات المحاور عبر كافة اللوحات دون الحاجة لكتابة حلقات تكرارية معقدة.

تُستخدم دالة facet_wrap(~ group) عندما نرغب في تقسيم البيانات وفق متغير تصنيفي أحادي يتضمن عدة مستويات (مثل مقارنة 4 أو 6 مجموعات علاجية مختلفة). تقوم الدالة بترتيب اللوحات بصورة مرنة تلتف تلقائياً لتشغل المساحة المتاحة بأفضل شكل هندسي، مع إمكانية التحكم الصارم في عدد الصفوف والأعمدة عبر الوسائط nrow وncol لتنسيق العرض بما يناسب تخطيط الصفحة الأكاديمية.

تتحكم دالة التقسيم تلقائياً في توحيد مقاييس المحاور بين جميع الأقسام الفرعية، وهو السلوك الافتراضي المثالي لضمان المقارنة الموضوعية. ومع ذلك، في الحالات الاستثنائية التي تتفاوت فيها أعداد العينات تفاوتاً هائلاً أو تختلف نطاقات القياس، يمكن تحرير المحاور عبر تمرير scales = 'free_y' أو scales = 'free'، مما يمنح كل لوحة فرعية استقلالية في قياساتها الرأسية أو الأفقية، مع ضرورة توخي الحذر عند استخدام هذا الخيار لتجنب تضليل القارئ في تقدير الأحجام النسبية للتكرارات.

6.2 استخدام دالة facet_grid() للمقارنات ثنائية التصنيف المتعددة

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

تُصاغ الدالة باستخدام صيغة المعادلات الرياضية في R: facet_grid(rows_variable ~ cols_variable). يؤدي هذا التنسيق إلى وضع مستويات المتغير الأول في صفوف أفقية متتالية، ومستويات المتغير الثاني في أعمدة رأسية متعامدة، حيث يمثل كل تقاطع مدرجاً تكرارياً مستقلاً يعرض توزيع المتغير الكمي المستمر تحت هذا الشرط التجريبي المركب والمحدد بدقة.

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

6.3 تخصيص مظهر ونصوص شرائط الأقسام (Facet Strips)

تحتوي كل لوحة فرعية ناتجة عن دوال التقسيم على شريط عنوان علوي يُعرف بـ (Facet Strip) يوضح اسم الفئة أو المستوى التجريبي المعروض داخلها. للوصول بالرسم إلى مستوى احترافي يتطابق مع المجلات العلمية، توفر حزمة ggplot2 قدرات متقدمة لتخصيص كل تفصيلة في هذا الشريط عبر دالة التنسيق العام theme().

يمكن تعديل لون خلفية الشريط وإزالة الحدود المصمتة المزعجة باستخدام العنصر strip.background = element_rect(fill = 'grey95', color = NA)، مما يمنح المخططات مظهراً عصرياً ونظيفاً. كما يتم تخصيص خصائص الخط، كالحجم والوزن واللون والمحاذاة، عبر العنصر strip.text = element_text(size = 11, face = 'bold', family = 'sans') لضمان مقروئية تامة للعناوين الفرعية.

بالإضافة إلى ذلك، يمكن استخدام أدوات التسمية المتقدمة (Labellers) المدمجة في الحزمة، مثل دالة labeller()، لتعديل النصوص التلقائية واستبدال الرموز البرمجية الإنجليزية بمصطلحات عربية معربة بدقة ووضوح (مثل تحويل كود ‘Ctrl’ إلى ‘المجموعة الضابطة’)، فضلاً عن إمكانية ضبط المسافات الفاصلة بين اللوحات الفرعية عبر عنصر panel.spacing لتجنب تكدس العناصر وضمان تنفس بصري مريح للتصميم العام.

7. التعامل مع مقاييس التردد والكثافة الاحتمالية (Frequency vs. Density)

7.1 تحويل المحور الرأسي من التكرارات المطلقة إلى الكثافة الاحتمالية

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

يتمثل الحل الإحصائي الصارم لهذه المشكلة في تحويل المحور الرأسي من التكرار الخام إلى “الكثافة الاحتمالية” (Probability Density). في هذا المقياس، لا يعبر ارتفاع العمود عن عدد الحالات الفردية، بل عن النسبة التكرارية مقسومة على عرض الفئة، بحيث تصبح “المساحة الإجمالية” للمدرج التكراري مساوية تماماً للواحد الصحيح (أو 100%) لجميع المجموعات بغض النظر عن حجم عيناتها الفعلي.

في نظام Base R، يتحقق هذا التحويل البسيط بتمرير الوسيط freq = FALSE أو prob = TRUE داخل دالة hist(). أما في حزمة ggplot2، فيتم ذلك باستخدام الدالة الإحصائية المدمجة عبر تعديل السمة الجمالية للمحور الرأسي داخل طبقة المدرج لتصبح: geom_histogram(aes(y = after_stat(density))). يلغي هذا التعديل أثر تباين أحجام العينات ويضع كافة التوزيعات على مقياس احتمالي موحد يتيح مقارنة شكل ونمط التوزيعات بمنتهى النزاهة والموضوعية الرياضية.

7.2 دمج منحنيات الكثافة (Density Curves) فوق المدرجات التكرارية المتعددة

يوفر دمج منحنى الكثافة الاحتمالية الممهد (Kernel Density Estimation) فوق المدرج التكراري رؤية بصرية متكاملة تجمع بين دقة التكرارات المقطوعة في فئات وسلاسة المنحنى الرياضي المستمر. يساعد هذا الدمج في تتبع القمم التوزيعية والانحدارات دون التأثر بالتقلبات الناتجة عن اختيار نقاط قطع الفئات التكرارية.

في حزمة ggplot2، يتحقق هذا التكامل السلس عبر إضافة طبقة geom_density() مباشرة بعد طبقة المدرج التكراري المحول إلى مقياس الكثافة الاحتمالية. لضمان التمايز البصري، يمكن جعل المدرجات التكرارية شفافة للغاية كخلفية هيكلية، مع رسم خطوط منحنيات الكثافة بسماكة أعلى ولون داكن وواضح يحدد المسار الرياضي لكل مجموعة عبر خاصية color = group.

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

7.3 إضافة خطوط النزعة المركزية (المتوسط والوسيط) فوق الرسوم المتعددة

لتعزيز القوة التفسيرية للمدرجات التكرارية المتعددة وربط البنية التوزيعية بالمؤشرات الإحصائية الوصفية الكلاسيكية، يُنصح دائماً بإسقاط خطوط عمودية تمثل مقاييس النزعة المركزية، كالمتوسط الحسابي (Mean) أو الوسيط (Median)، لكل مجموعة من المجموعات المعروضة على الرسم.

يبدأ تنفيذ هذه الخطوة في إطار منظومة tidyverse بحساب القيم التلخيصية مسبقاً عبر تجميع البيانات باستخدام دالتي group_by() وsummarise() من حزمة dplyr لإنشاء جدول إحصائي مصغر يحتوي على متوسط كل مجموعة. بعد ذلك، يتم تمرير هذا الجدول إلى طبقة الخطوط الرأسية في ggplot2 عبر دالة geom_vline()، مع ربط موضع التقاطع السيني بالمتوسطات المحسوبة aes(xintercept = mean_value, color = group).

لتحقيق أعلى مستوى من الاحترافية التحريرية، يتم ضبط هذه الخطوط الرأسية لتكون متقطعة (linetype = 'dashed') وبسماكة ملائمة، مع إمكانية إضافة تسميات رقمية توضيحية أعلى الخطوط باستخدام دالة geom_text() لعرض القيمة الحسابية الدقيقة للمتوسط (مثل: “M = 45.2”). يمنح هذا الجمع البصري القارئ القدرة على استيعاب مركز التوزيع ودرجة انتشاره وتكراراته التفصيلية في نظرة شمولية واحدة.

8. تطبيق عملي متقدم: تحليل ومقارنة بيانات القياس النفسي والتجريبي

8.1 بناء سيناريو الدراسة: مقارنة درجات القلق قبل وبعد التدخل العلاجي

لتجسيد كافة المفاهيم البرمجية والإحصائية السابقة في سياق تطبيقي يحاكي واقع البحوث السريرية المنشورة، سنفترض سيناريو دراسة نفسية تجريبية تهدف إلى تقييم فاعلية برنامج علاجي مركب لتقليل درجات القلق العام لدى عينة سريرية قوامها 300 مريض. تم قياس درجات القلق على مقياس مقنن يمتد من 0 إلى 100 نقطة عبر ثلاث مراحل زمنية متتابعة: مرحلة ما قبل العلاج (Pre-treatment Baseline)، مرحلة ما بعد التدخل العلاجي المعرفي السلوكي المباشر (Post-treatment)، ومرحلة المتابعة بعد مرور ستة أشهر (6-Month Follow-up).

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

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

8.2 تنفيذ الكود الشامل خطوة بخطوة باستخدام ggplot2

نبدأ في هذا القسم بصياغة الكود البرمجي المتكامل لبناء اللوحة الإحصائية النهائية. يتم استدعاء المكتبات اللازمة ggplot2، dplyr، وscales، وضبط معلمات توليد البيانات لضمان التطابق التام. نقوم بتعريف إطار البيانات وحساب المتوسطات الحسابية والانحرافات المعيارية لكل مرحلة زمنية باستخدام أدوات dplyr لتغذية الخطوط الرأسية المرجعية.

في بناء كود الرسم عبر ggplot()، نقوم بتعيين درجات القلق للمحور السيني وتعيين المتغير الزمني لكل من خاصية التعبئة وخاصية لون الحدود. نضيف طبقة geom_histogram() مع ضبط aes(y = after_stat(density))، وتحديد binwidth = 3 مع position = 'identity' وشفافية alpha = 0.45. تلي ذلك إضافة طبقة geom_density(size = 1.1) لتتبع المسار الممهد لكل توزيع بدقة متناهية.

نقوم بعد ذلك بإسقاط طبقة geom_vline() لترسيم المتوسطات المحسوبة بخطوط متقطعة متناسقة الألوان، وإضافة النصوص التوضيحية عبر geom_text(). نختتم الكود بتطبيق اللوحة اللونية المناسبة عبر scale_fill_viridis_d() وتخصيص كافة عناصر الثيم الأكاديمي الصارم عبر دالة theme_classic() وإلغاء أي حشو بصري غير ضروري، لنحصل على مخرج تصويري متكامل وجاهز للإدراج المباشر في التقارير العلمية.

8.3 تفسير النتائج البصرية وربطها بالمؤشرات الإحصائية الاستدلالية

يقدم المخطط البياني النهائي الناتج قراءة بصرية بالغة الثراء والدلالة السيكومترية. يُظهر الفحص المباشر للمدرجات المتراكبة تحولاً دراماتيكياً واضحاً لكتلة التوزيع التكراري من الجانب الأيمن للمحور الأفقي (درجات قلق مرتفعة في مرحلة ما قبل العلاج حول متوسط M = 74.5) نحو الجانب الأيسر (درجات قلق منخفضة بعد العلاج حول متوسط M = 42.1)، وهو ما يقدم برهاناً بصرياً فورياً ومقنعاً على الفاعلية العلاجية للتدخل السلوكي.

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

يوفر هذا التمثيل البصري أرضية صلبة تعزز وتدعم نتائج الاختبارات الاستدلالية المتقدمة مثل تحليل التباين للقياسات المتكررة (Repeated Measures ANOVA). إن الجمع بين القيمة الاحتمالية الإحصائية (p-value) وحجم الأثر (Effect Size) من جهة، وهذا المدرج التكراري المعبر من جهة أخرى، يمنح التقرير العلمي عمقاً استثنائياً يمكن القراء والمراجعين من استيعاب ديناميات التغير السريري بكافة أبعادها الإحصائية والواقعية.

9. مقارنة المدرجات التكرارية مع المخططات البديلة والمكملة في R

9.1 مقارنة المدرجات المتعددة مع مخططات الكثافة المدمجة (Density Plots / Ridgeline Plots)

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

عند مقارنة عدد كبير من المجموعات (كأن نقارن درجات 8 أو 10 مجموعات دراسية مختلفة)، قد يؤدي تراكب المدرجات التكرارية أو حتى منحنيات الكثافة العادية إلى فوضى بصرية خانقة. يبرز هنا دور مخططات التلال الرائعة المعروفة بـ Ridgeline Plots والمتاحة عبر حزمة ggridges في R. تقوم هذه المخططات بصف منحنيات الكثافة المتعددة رأسياً مع تداخل جزئي أنيق وجذاب يتيح مقارنة عشرات التوزيعات في مساحة مدمجة دون أي التباس بصري.

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

9.2 المدرجات التكرارية في مواجهة المخططات الصندوقية (Boxplots) والكمان (Violin Plots)

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

للتغلب على هذا القصور المشترك بين الصندوق والمدرج، ظهر “مخطط الكمان” (Violin Plot) كأداة هجينة عبقرية تجمع بين دقة المخطط الصندوقي وقوة منحنى الكثافة الاحتمالية؛ حيث يمثل صورة مرآتية متناظرة لمنحنى الكثافة لكل مجموعة مع وضع صندوق تلخيصي مصغر في قلبه. يتيح مخطط الكمان مقارنة النزعة المركزية والانتشار والتفرطح والتعدد القمي لعدة مجموعات متجاورة بكفاءة فائقة.

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

9.3 مخططات التكرار النقطية (Dotplots) والمدرجات التكرارية للسلاسل الزمنية الصغرى

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

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

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

10. تقنيات التخصيص الجمالي المتقدم وتصدير الرسوم للنشر الأكاديمي

10.1 تنسيق عناصر الثيم (Themes) بالكامل وفق معايير APA

تفرض جمعية علم النفس الأمريكية في دليل نشرها السابع (APA 7th Edition) معايير تصميمية صارمة للرسوم والمخططات البيانية؛ حيث تشترط وضوحاً مطلقاً وتجريداً تاماً من أي حشو أو زخارف غير وظيفية (Non-data Ink). يشمل ذلك إزالة الخلفيات الملونة والرمادية، وحذف خطوط الشبكة المتقاطعة ما لم تكن ضرورية جداً، وضبط المحاور لتقتصر على خطين واضحين للمحورين السيني والصادي.

لتحقيق هذه المعايير بدقة داخل ggplot2، نبدأ بتطبيق الثيم الكلاسيكي theme_classic() أو استخدام حزمة ggthemes وتطبيق الدالة الجاهزة theme_apa(). نقوم بعد ذلك بضبط خصائص النصوص بدقة عبر theme()، متضمنة تعيين حجم خط موحد للعناوين والمحاور، وتحديد نوع خط قياسي معتمد عالمياً مثل Arial أو Times New Roman، وضبط محاذاة العناوين لتكون في أقصى اليسار أو في المنتصف وفق الشروط المحددة.

كما يتطلب نمط APA وضع وسيلة الإيضاح في موضع مدروس ومناسب، ويفضل دائماً وضعها داخل المساحة البيضاء غير المستغلة من الرسم أو في الجزء العلوي، مع إزالة إطارها الخارجي تماماً. يساعد ضبط هوامش الرسم الكلية عبر plot.margin في توفير فراغ متوازن حول المخطط يمنع تداخل النصوص مع حواف الصفحة عند إدراج الشكل النهائي في معالج النصوص أو برامج النشر المكتبي.

10.2 دعم النصوص العربية والتسميات متعددة اللغات في R Graphics

تاريخياً، واجه الباحثون العرب تحديات تقنية ملحوظة عند محاولة كتابة نصوص باللغة العربية داخل رسوم R ومحركاتها البيانية؛ حيث كانت الحروف تظهر متقطعة أو معكوسة الترتيب من اليسار إلى اليمين نتيجة لقصور محركات التصيير الافتراضية في معالجة النصوص ثنائية الاتجاه (Bi-directional Text Rendering).

تم حل هذه المشكلة بصورة جذرية واحترافية من خلال حزمة showtext الحديثة. تتيح هذه الحزمة استيراد وتصيير أي خط عربي احترافي بصيغة TrueType أو OpenType، والوصول المباشر إلى مكتبة خطوط جوجل العالمية المفتوحة (Google Fonts) مثل خطوط “Cairo” و”Amiri” و”Tajawal” عبر دالة font_add_google().

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

10.3 تصدير الرسوم البيانية بجودة طباعية فائقة (High-Resolution Export)

لا تتوقف جودة العمل التحليلي عند حدود التصميم البرمجي الرائع على الشاشة، بل تكتمل بتصدير المخرج البياني بصيغ وأبعاد تلبي الشروط التقنية الصارمة لدور النشر الأكاديمية والمجلات المفهرسة في قواعد البيانات العالمية مثل Scopus وWeb of Science، والتي تشترط عادة دقة لا تقل عن 300 إلى 600 نقطة في البوصة (DPI).

في بيئة ggplot2، تُعد دالة ggsave() الأداة المعيارية الذهبية لحفظ المخططات. تتيح هذه الدالة تحديد الأبعاد الفيزيائية الدقيقة للرسم بالبوصة أو السنتيمتر عبر وسائط width وheight وunits لتتوافق بدقة مع عرض أعمدة المجلات العلمية (سواء كانت عموداً فردياً أو مزدوجاً)، مع تمرير وسيط الدقة dpi = 300 لضمان نقاء المخرجات النقطية.

يُنصح دائماً بتصدير الرسوم بصيغ الرسوميات المتجهية (Vector Formats) مثل PDF أو SVG عندما تتيح دار النشر ذلك؛ إذ تحتفظ هذه الصيغ بنقاء لا نهائي للخطوط والأعمدة مهما تم تكبير الرسم أو تصغيره دون أي فقدان للجودة. أما في حال طلب صيغ الصور النقطية، فتعتبر صيغة TIFF المضغوطة بدون فقدان (Lossless LZW) أو صيغة PNG عالية الدقة الخيارين الأكثر تفضيلاً واعتماداً في الأوساط الأكاديمية.

11. الأخطاء الشائعة في رسم المدرجات المتعددة واستكشاف الأخطاء وإصلاحها

11.1 الأخطاء الإحصائية والبصرية المضللة

يقع العديد من الباحثين في منزلقات إحصائية وتصويرية غير مقصودة عند بناء المدرجات التكرارية المتعددة، مما يؤدي إلى تشويه الرسالة العلمية للبيانات. يأتي في مقدمة هذه الأخطاء الاستخدام غير المنضبط لعدد الفئات التكرارية (Over-binning or Under-binning)؛ حيث يؤدي اختيار فئات ضيقة جداً إلى خلق ضوضاء بصرية وتفتيت التوزيع إلى قمم وهمية متناثرة، بينما يؤدي اختيار فئات واسعة جداً إلى طمس المعالم الحقيقية للتوزيع وإخفاء التواءاته وقممه الجوهرية.

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

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

11.2 الأخطاء البرمجية الشائعة في R وحلولها التقنية

أثناء كتابة الأكواد البرمجية في R، قد تظهر رسائل خطأ أو سلوكيات غير متوقعة للرسم تتطلب فهماً تقنياً لسببها الجذري. من أبرز هذه المشكلات في ggplot2 نسيان تحديد position = 'identity' عند تمرير متغير تجميعي لخاصية التعبئة fill، مما يؤدي افتراضياً إلى تراكم الأعمدة فوق بعضها (Stacking) وظهور قيم وهمية متضخمة على المحور الرأسي لا تمثل التكرار الحقيقي لأي مجموعة.

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

في نظام Base R، تعد رسالة الخطأ الشهيرة 'figure margins too large' من أكثر العقبات تكراراً عند تقسيم النوافذ؛ وتحدث عندما تكون هوامش الرسم المحددة أكبر من المساحة المتاحة في نافذة العرض في RStudio. يتم معالجة هذا الخطأ إما بتكبير مساحة نافذة الرسم يدوياً بالفأرة، أو بضبط هوامش الرسم برمجياً باستخدام الأمر par(mar = c(4, 4, 2, 1)) لتصغير المساحات الفارغة حول المخطط والسماح بظهور كافة اللوحات بسلاسة.

11.3 قائمة تدقيق (Checklist) لجودة المدرج التكراري قبل النشر

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

  • مطابقة الفئات والمقاييس: هل تم توحيد عرض الفئات (Binwidth) ونقاط البداية لكافة المجموعات المقارنة؟ وهل تم توحيد مقاييس المحاور الأفقية والرأسية في حالة اللوحات المتعددة؟
  • الشفافية والكثافة: في حالة الرسوم المتراكبة، هل تم ضبط قيمة الشفافية (Alpha) بوضوح لمنع حجب البيانات؟ وهل تم التحويل إلى الكثافة الاحتمالية إذا كانت أحجام العينات غير متكافئة؟
  • تسميات المحاور والوحدات: هل يتضمن كل محور اسماً واضحاً ومقروءاً مع ذكر وحدة القياس بدقة بين قوسين؟ وهل تم التحقق من سلامة نصوص اللغة العربية وخلوها من التقطيع؟
  • وسيلة الإيضاح: هل وسيلة الإيضاح واضحة وغير مغطية لأي بيانات تكرارية، وتطابق ألوانها تماماً ألوان الأعمدة والمنحنيات المرسومة؟
  • إمكانية القراءة بالأبيض والأسود: هل اللوحة اللونية المختارة صالحة للقراءة ومتباينة بوضوح للأشخاص الذين يعانون من عمى الألوان أو عند الطباعة بتدرجات الرمادي؟
  • الدقة وتنسيق التصدير: هل تم تصدير الشكل بدقة لا تقل عن 300 DPI أو بصيغة متجهة (PDF/SVG) بالأبعاد المناسبة للصفحة المطبوعة؟
  • قابلية إعادة الإنتاج (Reproducibility): هل الكود البرمجي منظم وموثق بالكامل، ويحتوي على دالة تثبيت البذرة العشوائية set.seed() لضمان استنساخ نفس المخرجات بدقة؟

12. خاتمة وأفضل الممارسات لتصور التوزيعات المتعددة في لغة R

12.1 ملخص الفروق والمقارنة الشاملة بين Base R و ggplot2

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

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

يوضح الجدول الإرشادي التالي مقارنة تركيبية بين الوظائف والأوامر المتطابقة بين النظامين لتسهيل الانتقال بينهما:

  • إنشاء المدرج الأساسي: يُقابل الأمر hist(x) في Base R استدعاء ggplot(data, aes(x)) + geom_histogram() في ggplot2.
  • تراكب المجموعات: يُقابل الأمر hist(y, add=TRUE) في Base R ضبط السمة aes(fill=group) مع position='identity' في ggplot2.
  • التحويل إلى الكثافة: يُقابل الوسيط freq = FALSE في Base R التعبير aes(y = after_stat(density)) في ggplot2.
  • تقسيم اللوحات: تُقابل دالة المصفوفات par(mfrow) في Base R دوال الأقسام التلقائية facet_wrap() وfacet_grid() في ggplot2.
  • التحكم في الشفافية: تُقابل دالة الألوان rgb(..., alpha) في Base R الوسيط المباشر alpha = 0.5 في ggplot2.

12.2 خريطة طريق لاحتراف تصور البيانات الإحصائية في R

إن إتقان رسم المدرجات التكرارية المتعددة يمثل نقطة انطلاق جوهرية نحو احتراف منظومة علم البيانات والتصوير الإحصائي المتقدم في R. لتطوير هذه المهارات والانتقال بها إلى آفاق مهنية متقدمة، يُنصح الباحث بالانفتاح على مكتبات التصوير التفاعلي الحديثة مثل حزمة plotly، والتي تتيح تحويل مخططات ggplot2 الثابتة إلى رسوم بيانية تفاعلية بمجرد استدعاء دالة ggplotly()، مما يسمح للمستخدم بتمرير الفأرة فوق الأعمدة لقراءة التكرارات الدقيقة وتكبير نطاقات محددة من التوزيع بسلاسة.

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

كما يُوصى بتعميق الفهم الإحصائي من خلال دراسة حزم التحريك البياني مثل gganimate لتصوير التغير الزمني للتوزيعات التكرارية في صورة مقاطع رسومية متحركة تبرز ديناميات التحول السلوكي والتجريبي عبر الزمن، فضلاً عن مداومة الاطلاع على المراجع والكتب المرجعية الرصينة في مجال تصور البيانات وعلم الإحصاء التطبيقي في بيئة R.

12.3 الخلاصة الإرشادية والتوصيات النهائية للباحثين

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

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

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

References

  • Field, A., Miles, J., & Field, Z. (2012). Discovering statistics using R. SAGE Publications.
  • Grolemund, G., & Wickham, H. (2017). R for data science: Import, tidy, transform, visualize, and model data. O’Reilly Media. https://r4ds.had.co.nz/
  • Murrell, P. (2018). R graphics (3rd ed.). Chapman and Hall/CRC. https://doi.org/10.1201/9780429447273
  • R Core Team. (2023). R: A language and environment for statistical computing. R Foundation for Statistical Computing, Vienna, Austria. https://www.R-project.org/
  • Wickham, H. (2016). ggplot2: Elegant graphics for data analysis (2nd ed.). Springer-Verlag New York. https://ggplot2-book.org/
  • Wilke, C. O. (2019). Fundamentals of data visualization: A primer on making informative and compelling figures. O’Reilly Media. https://clauswilke.com/dataviz/
  • Wilkinson, L. (2005). The grammar of graphics (2nd ed.). Springer Science & Business Media. https://doi.org/10.1007/0-387-28695-0

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

looti, M. (2026, أغسطس 29). كيفية رسم مدرجات تكرارية متعددة في R (مع أمثلة). عرب سايكلوجي. https://arabpsychology.com/statistics/how-to-plot-multiple-histograms-in-r-with-examples/
looti, Mohammed. “كيفية رسم مدرجات تكرارية متعددة في R (مع أمثلة).” عرب سايكلوجي, 29 أغسطس 2026, https://arabpsychology.com/statistics/how-to-plot-multiple-histograms-in-r-with-examples/.
looti, Mohammed. “كيفية رسم مدرجات تكرارية متعددة في R (مع أمثلة).” عرب سايكلوجي. أغسطس 29, 2026. https://arabpsychology.com/statistics/how-to-plot-multiple-histograms-in-r-with-examples/.