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

كيفية إنشاء مضلع تكراري في R

دليل أكاديمي شامل لإنشاء المضلع التكراري (Frequency Polygon) في لغة R باستخدام حزمة ggplot2 لتحليل وتصور توزيع البيانات الإحصائية بدقة.

تاريخ النشر

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

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

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

1. مقدمة وأساسيات المضلع التكراري (Frequency Polygon) في لغة R

1.1 المفهوم الرياضي والإحصائي للمضلع التكراري

يُعرَّف المضلع التكراري من المنظور الإحصائي والرياضي بأنه تمثيل بياني خطي ثنائي الأبعاد يُستخدم لعرض التوزيع التكراري لمتغير كمي مستمر. يتأسس هذا الرسم الرياضي على تجزئة المدى الكلي للبيانات إلى فترات أو فئات متساوية العرض تُعرف بالفئات التكرارية (Class Intervals). ولكل فئة من هذه الفئات، يتم حساب نقطتين أساسيتين: القيمة الممثلة للفئة وتُدعى مركز الفئة (Class Midpoint)، والتكرار العددي المطلق أو النسبي (Frequency) الذي يعبر عن عدد المشاهدات الواقعة ضمن حدود تلك الفئة. يتم تحديد مركز الفئة رياضياً عبر جمع الحد الأدنى الحقيقي للفئة مع حدها الأعلى الحقيقي وقسمة الناتج على اثنين.

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

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

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

1.2 أهمية المضلعات التكرارية في استكشاف البيانات التجريبية والسلوكية

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

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

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

1.3 مزايا استخدام لغة R وحزمة ggplot2 في التمثيل البياني

تُعد لغة R البيئة البرمجية القياسية الأكثر موثوقية لدى مجتمع الإحصائيين وعلماء البيانات حول العالم، وذلك بفضل بنيتها الرياضية المتقدمة والمصممة خصيصاً للحوسبة الإحصائية. وتستمد لغة R قوتها الهائلة في مجال التمثيل البصري من منظومة حزم tidyverse، وعلى رأسها حزمة ggplot2 التي طورها العالم هادلي ويكهام (Hadley Wickham) استناداً إلى النظرية التأسيسية التي وضعها ليلاند ويلكنسون في كتابه الشهير “قواعد الرسومات البيانية” (The Grammar of Graphics).

تقوم فلسفة ggplot2 على مبدأ البناء الطبقي التراكمي للرسوم البيانية (Layered Architecture). فبدلاً من استدعاء دوال جامدة تنتج رسوماً مغلقة يصعب تعديلها، تتيح الحزمة للمستخدم البدء بتحديد البيانات الأساسية، ثم ربط المتغيرات بالخصائص البصرية والجمالية (Aesthetic Mappings)، وتطبيق الطبقات الهندسية (Geometries)، وإضافة التحويلات الإحصائية (Statistical Transformations)، والتحكم في أنظمة الإحداثيات (Coordinates)، وتنسيق السمات البصرية الدقيقة (Themes) باستقلالية ومرونة تامة.

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

2. إعداد بيئة العمل البرمجية واستيراد الحزم اللازمة

2.1 تثبيت وتحميل حزمة ggplot2 ومكتبات tidyverse

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

install.packages(“tidyverse”)

أو يمكن تثبيت حزمة الرسم البياني بشكل مستقل عبر الأمر:

install.packages(“ggplot2”)

بعد اكتمال عملية التثبيت بنجاح، يجب استدعاء المكتبات إلى جلسة العمل البرمجية الحالية لتفعيل الدوال والأوامر المضمنة فيها. يتم ذلك باستخدام دالة التحميل library() على النحو الآتي:

library(ggplot2)
library(dplyr)

يُنصح دائماً بالتحقق من توافق الإصدارات البرمجية وتحديث الحزم دورياً لتجنب التعارض في المعلمات البرمجية، بالإضافة إلى ضبط مسار دليل العمل (Working Directory) باستخدام الدالة setwd() أو عبر إنشاء مشروع مخصص (R Project) داخل RStudio لضمان تنظيم وحفظ السجلات والرسوم البيانية المصدرة في المسارات الصحيحة.

2.2 توليد وإعداد البيانات لضمان قابلية التكرار (Reproducibility)

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

set.seed(1234)

نقوم بعد ذلك بإنشاء إطار بيانات (Data Frame) يتضمن عينة تحاكي درجات مقياس نفسي في معالجة المعلومات والتركيز الانتباهي لدى مجموعتين من المشاركين (مجموعة ضابطة ومجموعة تجريبية). نستخدم دالة rnorm() لتوليد متغير كمي مستمر يتبع التوزيع الطبيعي بمتوسط وانحراف معياري محددين:

n_per_group <- 500
control_scores <- rnorm(n = n_per_group, mean = 70, sd = 10)
experimental_scores <- rnorm(n = n_per_group, mean = 78, sd = 8)
study_data <- data.frame(
  Score = c(control_scores, experimental_scores),
  Group = factor(rep(c(“Control”, “Experimental”), each = n_per_group))
)

يوفر هذا الهيكل البياني المنظم أساساً مثالياً لتطبيق كافة التعديلات المتقدمة على المضلعات التكرارية، حيث يشتمل على متغير كمي مستمر (Score) ومتغير تصنيفي نوعي (Group).

2.3 الفحص الاستكشافي الأولي للبنية الهيكلية للبيانات

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

يتم الفحص الهيكلي الأولي من خلال تطبيق الدوال الأساسية الآتية:

str(study_data)
head(study_data, n = 6)
summary(study_data)

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

3. البناء الأساسي للمضلع التكراري باستخدام geom_freqpoly()

3.1 صياغة الكود البرمجي الأساسي وتعيين الخصائص الجمالية

يتم بناء المضلع التكراري في حزمة ggplot2 من خلال استدعاء الدالة الهندسية المخصصة geom_freqpoly(). يبدأ الكود بتهيئة كائن الرسم عبر دالة ggplot() مع تمرير إطار البيانات المحدد وتعيين الخاصية الجمالية الأساسية (aesthetic mapping) باستخدام دالة aes() لتحديد المتغير المراد تمثيله على المحور الأفقي، ثم ربط هذه التهيئة بالطبقة الهندسية عبر معامل الإضافة (+):

ggplot(data = study_data, mapping = aes(x = Score)) +
  geom_freqpoly()

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

3.2 تحليل المخرجات البيانية الافتراضية

عند توليد الرسم البياني باستخدام الإعدادات الافتراضية، ستظهر رسالة تنبيهية قياسية في واجهة RStudio Console نصها: `stat_bin()` using `bins = 30`. Pick better value with `binwidth`. تخبر هذه الرسالة الباحث بأن الحزمة قامت افتراضياً بتقسيم البيانات إلى 30 فئة تكرارية متساوية المدى.

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

4. التحكم في فئات التوزيع وتحديد معلمات Bins و Binwidth

4.1 ضبط عدد الفئات باستخدام معامل bins

يُعد معامل bins المحدد المباشر لعدد الفترات التكرارية التي سيتم تجزئة المدى الإحصائي إليها على المحور الأفقي. يؤدي تعديل هذه القيمة إلى تغييرات جذرية في المظهر الهندسي للمضلع التكراري وسلوكه الإحصائي:

ggplot(study_data, aes(x = Score)) +
  geom_freqpoly(bins = 15)

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

على النقيض من ذلك، فإن الإفراط في زيادة عدد الفئات (مثل ضبط bins = 60 أو 100) يؤدي إلى تفتيت البيانات وظهور تذبذبات حادة وانقطاعات متكررة تمثل ضوضاء إحصائية ناتجة عن صغر أحجام العينات داخل الفئات الدقيقة، مما يشوه القدرة على استنتاج المعالم الحقيقية للتوزيع الأصلي. من الناحية الإحصائية، يمكن الاسترشاد بقواعد رياضية معيارية لاختيار عدد الفئات الأمثل، وأشهرها قاعدة ستيرجز (Sturges’ Rule) التي تنص على أن عدد الفئات يساوي تقريباً:

k = 1 + 3.322 * log10(N)

حيث تمثل N الحجم الكلي للعينة المدروسة.

Frequency polygon with custom bins in R
Frequency polygon with custom bins in R

4.2 تحديد العرض الدقيق للفئة باستخدام معامل binwidth

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

ggplot(study_data, aes(x = Score)) +
  geom_freqpoly(binwidth = 2)

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

4.3 تحسين دقة التمثيل عند أطراف التوزيع (Boundaries)

من المشكلات الهندسية الشائعة عند رسم المضلعات التكرارية حدوث تشوهات عند الأطراف الدنيا والعليا نتيجة عدم محاذاة الفئات مع القيم المرجعية الدقيقة. توفر حزمة ggplot2 معاملين متقدمين للتحكم في هذه البنية الهندسية: معامل boundary ومعامل center.

يُستخدم معامل boundary لتحديد نقطة ارتكاز ثابتة تبدأ أو تنتهي عندها حدود الفئات. على سبيل المثال، عند ضبط boundary = 0، يضمن الباحث أن كافة الفئات ستبدأ من مضاعفات صحيحة لصفر المقياس دون إزاحة عشوائية:

ggplot(study_data, aes(x = Score)) +
  geom_freqpoly(binwidth = 2.5, boundary = 40)

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

5. مقارنة المضلع التكراري بالمدرج التكراري ومنحنى الكثافة

5.1 المضلع التكراري في مقابل المدرج التكراري (Histogram)

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

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

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

5.2 المضلع التكراري في مقابل تقدير كثافة النواة (Kernel Density)

يمثل تقدير كثافة النواة عبر الدالة geom_density() مقاربة رياضية متقدمة تعتمد على النماذج غير المعلمية (Non-parametric) لتحويل التكرارات التجريبية المتقطعة إلى دالة كثافة احتمالية ملساء ومستمرة (Probability Density Function). يتم ذلك عبر تطبيق دوال نواة رياضية (مثل دالة النواة الغاوسية) على كل نقطة بيانية مع تنعيمها بواسطة معامل عرض النطاق (Bandwidth).

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

ggplot(study_data, aes(x = Score, y = after_stat(density))) +
  geom_freqpoly(binwidth = 2)

5.3 الدمج التكاملي بين المدرج والمضلع التكراري في رسم موحد

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

ggplot(study_data, aes(x = Score)) +
  geom_histogram(binwidth = 2, fill = “gray85”, color = “gray60”, alpha = 0.7) +
  geom_freqpoly(binwidth = 2, color = “#1B4F72”, linewidth = 1.1) +
  theme_minimal()

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

6. مقارنة التوزيعات للمجموعات المتعددة عبر المضلع التكراري

6.1 استخدام المتغيرات التصنيفية مع معامل color

تتمثل القوة التحليلية الحقيقية للمضلع التكراري في تسهيل المقارنة المباشرة بين التوزيعات الفرعية المستقلة. لإنشاء مضلعات تكرارية متعددة تمثل مستويات مختلفة لمتغير تصنيفي، يتم ربط المتغير النوعي بالمعامل الجمالي color داخل دالة aes():

ggplot(study_data, aes(x = Score, color = Group)) +
  geom_freqpoly(binwidth = 2, linewidth = 1)

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

6.2 تخصيص أنماط الخطوط وعرضها للتمييز البصري

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

ggplot(study_data, aes(x = Score, color = Group, linetype = Group)) +
  geom_freqpoly(binwidth = 2, linewidth = 1) +
  scale_linetype_manual(values = c(“solid”, “dashed”)) +
  scale_color_manual(values = c(“#333333”, “#777777”))

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

6.3 تقسيم الرسوم عبر الشبكات الوجهية (Faceting)

في الحالات التي تتضمن وجود متغيرات تصنيفية متعددة أو عندما تكون المضلعات التكرارية شديدة التداخل والتعقيد، توفر حزمة ggplot2 آلية متقدمة تُعرف بالتقسيم الوجهي (Faceting). تتيح هذه التقنية تقسيم الرسم البياني الإجمالي إلى لوحات فرعية متجاورة بناءً على مستويات المتغيرات المستقلة باستخدام دالة facet_wrap() أو facet_grid():

ggplot(study_data, aes(x = Score, color = Group)) +
  geom_freqpoly(binwidth = 2, linewidth = 1) +
  facet_wrap(~ Group, nrow = 1) +
  theme_bw()

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

7. إضافة التظليل اللوني والمساحات عبر دالة geom_area()

7.1 الانتقال من الخطوط إلى المساحات المظللة (Frequency Area Plot)

يمثل مخطط المساحة التكرارية (Frequency Area Plot) امتداداً جمالياً وتحليلياً متقدماً للمضلع التكراري التقليدي. يتم إنشاء هذا النمط باستخدام الدالة الهندسية geom_area() مع التحديد الصريح لتطبيق التحويل الإحصائي stat = “bin”، مما يؤدي إلى تظليل المساحة المحصورة بين الخط التكراري للمضلع ومحور الأساس الأفقي بالكامل:

ggplot(study_data, aes(x = Score, fill = Group)) +
  geom_area(stat = “bin”, binwidth = 2, alpha = 0.4, position = “identity”)

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

7.2 التظليل المتراكم (Stacked) والمستقل للمجموعات

توفر حزمة ggplot2 آليتين رئيستين لتنظيم تموضع المساحات المظللة للمجموعات عبر معامل position:

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

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

7.3 تنسيق لوحات الألوان الأكاديمية المتوافقة مع النشر العلمي

يخضع اختيار الألوان في الرسوم البيانية الأكاديمية لمعايير أخلاقية وعلمية دقيقة. يُنصح بشدة بتجنب لوحات الألوان الافتراضية الصارخة أو غير المتناسقة، والاعتماد بدلاً من ذلك على لوحات لونية مصممة إدراكياً لتكون متدرجة ومريحة للعين، والأهم من ذلك أن تكون قابلة للتمييز من قِبل الأفراد المصابين بعمى الألوان (Colorblind-friendly).

توفر حزمة viridis وحزمة RColorBrewer حلولاً مثالية لهذه المتطلبات، ويمكن تطبيقها مباشرة عبر الدوال المخصصة:

ggplot(study_data, aes(x = Score, color = Group)) +
  geom_freqpoly(binwidth = 2, linewidth = 1.2) +
  scale_color_viridis_d(option = “plasma”, end = 0.8) +
  theme_minimal()

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

8. تخصيص المحاور وعناوين الرسم البياني والسمات (Themes)

8.1 تسمية المحاور وإضافة العناوين والتعليقات التوضيحية

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

ggplot(study_data, aes(x = Score, color = Group)) +
  geom_freqpoly(binwidth = 2, linewidth = 1) +
  labs(
    title = “التوزيع التكراري لدرجات التركيز الانتباهي”,
    subtitle = “مقارنة بين المجموعة التجريبية والمجموعة الضابطة (N = 1000)”,
    x = “درجة المقياس المعياري (نطاق الدرجات: 40 – 110)”,
    y = “التكرار المطلق (عدد المشاهدات)”,
    color = “المجموعة البحثية:”,
    caption = “المصدر: بيانات دراسة الاستجابة المعرفية (2024)”
  )

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

8.2 التحكم في تدريج وحدود المحاور (Scales)

يتطلب الإخراج البياني الاحترافي ضبط الفواصل الرقمية الدقيقة لحدود المحاور باستخدام دوال المقاييس المستمرة scale_x_continuous() و scale_y_continuous(). يسمح ذلك بتحديد بداية ونهاية المحور عبر المعامل limits، وتحديد مواقع الأرقام المطبوعة على التدريج عبر المعامل breaks:

ggplot(study_data, aes(x = Score, color = Group)) +
  geom_freqpoly(binwidth = 2, linewidth = 1) +
  scale_x_continuous(
    limits = c(35, 115),
    breaks = seq(40, 110, by = 10),
    expand = expansion(mult = c(0, 0.05))
  ) +
  scale_y_continuous(
    limits = c(0, 70),
    breaks = seq(0, 70, by = 10),
    expand = expansion(mult = c(0, 0.05))
  )

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

8.3 تطبيق السمات الأكاديمية المتقدمة وتنسيق الخلفيات

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

ggplot(study_data, aes(x = Score, color = Group)) +
  geom_freqpoly(binwidth = 2, linewidth = 1.1) +
  theme_classic(base_size = 12, base_family = “sans”) +
  theme(
    plot.title = element_text(face = “bold”, size = 14, hjust = 0.5),
    plot.subtitle = element_text(size = 11, hjust = 0.5, margin = margin(b = 10)),
    axis.title = element_text(face = “bold”),
    legend.position = c(0.85, 0.85),
    legend.background = element_rect(fill = “white”, color = “gray80”),
    axis.line = element_line(linewidth = 0.8, color = “black”)
  )

يساعد وضع وسيلة الإيضاح (Legend) داخل المساحة الفارغة العلوية للرسم في الاستغلال الأمثل لحيز الصفحة، وتقليل الهدر الفراغي، وإبراز المضلع التكراري كعنصر بصري مركزي متكامل.

9. معالجة البيانات المفقودة والقيم الشاذة قبل رسم المضلع التكراري

9.1 التعامل مع القيم المفقودة (Missing Values – NAs)

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

Warning message: Removed k rows containing non-finite values (stat_bin).

لتجنب هذا التحذير والتحكم المنهجي في تدفق البيانات، يمكن للباحث تمرير المعامل البرمجي na.rm = TRUE مباشرة داخل دالة geom_freqpoly():

ggplot(study_data, aes(x = Score)) +
  geom_freqpoly(binwidth = 2, na.rm = TRUE)

ومع ذلك، يقتضي البحث الأكاديمي الرصين ألا يقتصر التعامل مع القيم المفقودة على مجرد الحذف الآلي عند الرسم؛ بل يجب على الباحث فحص نمط الفقد (Missingness Pattern) للتحقق مما إذا كان الفقد عشوائياً تماماً (MCAR) أو عشوائياً (MAR) أو غير عشوائي (MNAR)، وتطبيق أساليب التعويض المتعدد (Multiple Imputation) عند الضرورة قبل بناء المنحنيات التوزيعية لضمان عدم تشويه الشكل الحقيقي للمضلع التكراري نتيجة التحيز الناجم عن الحذف المبتور.

9.2 كشف ومعالجة القيم المتطرفة (Outliers)

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

يوفر فحص أطراف وذيول المضلع التكراري وسيلة تشخيصية أولية لكشف هذه الشواذ. بعد الرصد البصري، يجب تطبيق المعايير الإحصائية الصارمة لتشخيص القيم المتطرفة، مثل حساب الدرجات المعيارية والتحقق من المشاهدات التي تتجاوز قيمتها المطلقة 3 انحرافات معيارية (|Z| > 3)، أو تطبيق معيار المدى الربيعي (IQR) لتوكي (Tukey’s Fences):

Q1 <- quantile(study_data$Score, 0.25, na.rm = TRUE)
Q3 <- quantile(study_data$Score, 0.75, na.rm = TRUE)
IQR_val <- Q3 – Q1
lower_bound <- Q1 – 1.5 * IQR_val
upper_bound <- Q3 + 1.5 * IQR_val

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

10. تطبيقات المضلع التكراري في تحليل البيانات السلوكية والنفسية

10.1 تحليل أزمنة الاستجابة في التجارب المعرفية (Reaction Times)

في علم النفس المعرفي والعلوم العصبية السلوكية، يمثل زمن الرجع أو زمن الاستجابة (Reaction Time) أحد أهم المتغيرات المعتمدة لقياس كفاءة العمليات العقلية وسرعة المعالجة المركزية. تتميز بيانات أزمنة الاستجابة بخصائص توزيعية فريدة؛ إذ إنها لا تتبع التوزيع الطبيعي المتماثل بل تتبع توزيعات ملتوية إيجابياً بشدة تُعرف بتوزيعات إكس-غاوسيان (Ex-Gaussian Distributions) أو التوزيع اللوغاريتمي الطبيعي (Log-normal)، حيث تتجمع معظم الاستجابات السريعة في نطاق زمني ضيق بينما يمتد ذيل طويل من الاستجابات البطيئة نحو اليمين.

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

10.2 تقييم توزيع درجات الاختبارات النفسية والتحصيلية

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

فإذا انزاحت قمة المضلع التكراري نحو أقصى اليمين مع تركز معظم الدرجات عند المستويات العليا، دلّ ذلك على وجود “تأثير السقف” (Ceiling Effect) وسهولة بنود الاختبار المفرطة التي عجزت عن التمييز بين المتفوقين. أما إذا انزاحت القمة نحو أقصى اليسار وتركزت التكرارات عند الدرجات المتدنية، دل ذلك على “تأثير الأرضية” (Floor Effect) وصعوبة الاختبار البالغة. كما يُستخدم المضلع التكراري لمقارنة توزيع الدرجات المعيارية لعينة التقنين العامة بتوزيع درجات عينات إكلينيكية محددة (مثل المصابين باضطراب فرط الحركة وتشتت الانتباه) لرصد نقاط القطع التشخيصية (Clinical Cut-offs) بدقة تصويرية واضحة.

10.3 دراسة التغير في التوزيعات عبر الدراسات التتبعية والطولية

تعتمد التصاميم البحثية الطولية والتتبعية وشبه التجريبية على رصد التغير في السمات السلوكية والأعراض النفسية قبل وبعد تطبيق البرامج العلاجية أو التدخلات الإرشادية (Pre-test vs. Post-test Designs). يتيح المضلع التكراري تصويراً ديناميكياً لهذا التغير التطوري عبر الزمن.

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

11. تصدير الرسوم البيانية بدقة عالية ونشر النتائج الأكاديمية

11.1 استخدام دالة ggsave() لضبط خيارات التصدير

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

final_plot <- ggplot(study_data, aes(x = Score, color = Group)) +
  geom_freqpoly(binwidth = 2, linewidth = 1) +
  theme_classic()

ggsave(
  filename = “figures/frequency_polygon_apa.tiff”,
  plot = final_plot,
  device = “tiff”,
  width = 16,
  height = 10,
  units = “cm”,
  dpi = 600,
  compression = “lzw”
)

تشترط دوريات النشر الأكاديمية العالمية عادةً تصدير الرسوم بصيغ الصور النقطية الخالية من الفقد مثل TIFF بمعدل دقة لا يقل عن 300 إلى 600 DPI (نقطة في البوصة) لضمان حدة الخطوط ونقاء النصوص عند الطباعة الورقية. كما يمكن حفظ الرسوم بصيغ المتجهات الرياضية اللامحدودة الدقة مثل PDF أو SVG والتي تتيح للمحررين إجراء أي تعديلات مطبعية لاحقة على الخطوط والمحاور دون أي تشوه في جودة الصورة.

11.2 الالتزام بدليل النشر لجمعية علم النفس الأمريكية (APA Style)

يفرض دليل النشر الصادر عن جمعية علم النفس الأمريكية (الإصدار السابع – APA 7th Edition) معايير صارمة لتنسيق الأشكال التوضيحية والرسوم البيانية داخل الأوراق البحثية والرسائل العلمية. يتطلب الامتثال لهذه المعايير مراعاة البنود الإجرائية التالية:

  • رقم الشكل وعنوانه: لا يُوضع العنوان الرئيسي داخل حيز الرسم البياني نفسه؛ بل يُكتب فوق الرسم بخط غامق (Bold) مثل: Figure 1، يليه في السطر التالي مباشرة عنوان وصفي موجز ومائل (Italic) مثل: Frequency Polygon of Attention Scores Across Experimental and Control Groups.
  • بنية الرسم: يجب أن تكون الخلفية بيضاء تماماً وخالية من التظليلات الرمادية أو خطوط الشبكة الثانوية، مع استخدام خطوط واضحة للمحورين الأفقي والرأسي وأرقام مقروءة بخط قياسي (مثل Arial أو Times New Roman).
  • التعليق التوضيحي (Figure Note): يُوضع أسفل الرسم مباشرة ويبدأ بكلمة Note. مائلة، ويتضمن شرحاً وافياً لرموز المجموعات، وقيم أحجام العينات (N)، والوحدات القياسية المستخدمة، مع تفصيل أي اختصارات سيكومترية واردة في الرسم.

12. استكشاف الأخطاء البرمجية الشائعة واستكشاف حلولها في R

12.1 أخطاء التعيين الجمالي وبنية البيانات

يواجه العديد من الباحثين أخطاء برمجية متكررة عند البدء في تطبيق دالة geom_freqpoly(). من أبرز هذه الأخطاء محاولة تمرير متغير تصنيفي نوعي (Character أو Factor) مباشرة إلى المحور الأفقي x؛ حيث تؤدي هذه الصياغة إلى توقف التنفيذ وإظهار خطأ إحصائي لأن خوارزمية stat_bin تتطلب متغيراً عددياً كمياً مستمراً لحساب الفترات ومراكز الفئات. لعلاج هذا الخطأ، يجب التحقق من نوع المتغير باستخدام الدالة is.numeric() وتحويله إذا لزم الأمر.

خطأ شائع آخر يتمثل في الخلط بين وضع الخصائص الجمالية داخل دالة aes() أو خارجها. فعندما يرغب الباحث في تلوين المضلع التكراري بلون ثابت محدد (مثل اللون الأزرق)، فإن كتابة geom_freqpoly(aes(color = “blue”)) تؤدي إلى خطأ منطقي يقوم فيه R بإنشاء فئة وهمية باسم “blue”. الصياغة البرمجية الصحيحة تقتضي وضع الثوابت اللونية الجمالية خارج دالة الربط الجمالي على النحو الآتي: geom_freqpoly(color = “blue”, linewidth = 1).

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

12.2 أخطاء التوافق وحساب التكرارات غير المتطابقة

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

من المشكلات المنهجية المتقدمة أيضاً تباين أحجام العينات بين المجموعات الفرعية المقارنة (Unbalanced Sample Sizes)؛ فعندما تحتوي المجموعة الضابطة على 1000 مشارك بينما تحتوي المجموعة التجريبية على 100 مشارك فقط، فإن رسم المضلعين باستخدام التكرار المطلق (count) سيؤدي إلى ظهور المضلع التكراري للمجموعة الأولى شاهقاً جداً بينما يبدو مضلع المجموعة الثانية مسطحاً ومغموراً في القاع، مما يستحيل معه مقارنة شكل التوزيعين بصرياً. يتمثل الحل الإحصائي الأمثل في تحويل المحور الرأسي إلى كثافة نسبية أو نسبة مئوية عبر الصياغة: aes(y = after_stat(density)) أو aes(y = after_stat(count / sum(count)))، مما يضمن توحيد مساحة المنحنيين وجعل المقارنة قائمة على البنية التوزيعية الصرفة بصرف النظر عن التفاوت في الأعداد المطلقة.

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

خاتمة

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

References

  • American Psychological Association. (2020). Publication manual of the American Psychological Association (7th ed.). American Psychological Association. https://doi.org/10.1037/0000165-000
  • Freedman, D., Pisani, R., & Purves, R. (2007). Statistics (4th ed.). W. W. Norton & Company.
  • R Core Team. (2023). R: A language and environment for statistical computing. R Foundation for Statistical Computing, Vienna, Austria. https://www.R-project.org/
  • Sturges, H. A. (1926). The choice of a class interval. Journal of the American Statistical Association, 21(153), 65–66. https://doi.org/10.1080/01621459.1926.10502161
  • Wickham, H. (2016). ggplot2: Elegant graphics for data analysis (2nd ed.). Springer-Verlag New York. https://doi.org/10.1007/978-3-319-24277-4
  • Wickham, H., Çetinkaya-Rundel, M., & Grolemund, G. (2023). R for data science: Import, tidy, transform, visualize, and model data (2nd ed.). O’Reilly Media.
  • 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, أغسطس 30). كيفية إنشاء مضلع تكراري في R. عرب سايكلوجي. https://arabpsychology.com/statistics/how-to-create-a-frequency-polygon-in-r/
looti, Mohammed. “كيفية إنشاء مضلع تكراري في R.” عرب سايكلوجي, 30 أغسطس 2026, https://arabpsychology.com/statistics/how-to-create-a-frequency-polygon-in-r/.
looti, Mohammed. “كيفية إنشاء مضلع تكراري في R.” عرب سايكلوجي. أغسطس 30, 2026. https://arabpsychology.com/statistics/how-to-create-a-frequency-polygon-in-r/.