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

كيفية رسم توزيع بواسون في R

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

تاريخ النشر

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

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

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

1. مقدمة إلى توزيع بواسون ودوره في النمذجة الإحصائية عبر لغة R

1.1 التعريف النظري لتوزيع بواسون الإحصائي

يُعد توزيع بواسون نموذجاً احتمالياً منفصلاً وضعه عالم الرياضيات الفرنسي سيميون دينيس بواسون في أبحاثه المنشورة عام 1837. يُعنى هذا التوزيع بتقدير احتمالية وقوع عدد محدد من الأحداث المستقلة داخل فترة زمنية أو نطاق مكاني ثابت، شريطة أن تحدث هذه الأحداث بمعدل وسطي معروف وثابت يرمز له بالرمز الإغريقي لامبدا (λ)، وبصرف النظر عن الوقت المنقضي منذ وقوع الحدث الأخير. يمثل التوزيع النموذج الطبيعي للبيانات المنفصلة التي تعبر عن أعداد صحيحة موجبة غير مقيدة بحد أعلى صارم (0, 1, 2, 3, …).

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

من أهم الخصائص البنيوية لتوزيع بواسون هي خاصية تطابق المتوسط الحسابي مع التباين الرياضي، حيث تتساوى القيمة المتوقعة مع التباين الرياضي عند القيمة λ (أي أن E(X) = Var(X) = λ). تلعب هذه الخاصية المعروفة بـ “Equidispersion” دوراً جوهرياً في تقييم مدى مطابقة البيانات الواقعية للتوزيع، وتمثل المعيار الإحصائي الأول الذي ينطلق منه الإحصائيون قبل بناء النماذج الخطية المعممة في لغة R.

1.2 أهمية تمثيل توزيع بواسون بيانيًا في التحليل الإحصائي

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

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

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

1.3 تطبيقات توزيع بواسون في العلوم النفسية والسلوكية

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

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

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

2. الأسس الرياضية لدالة كتلة الاحتمال (PMF) الخاصة بتوزيع بواسون

2.1 الصيغة الرياضية لدالة كتلة الاحتمال

تُعرف دالة كتلة الاحتمال (Probability Mass Function – PMF) لتوزيع بواسون رياضياً بأنها الدالة التي تعطي احتمالية أن يكون المتغير العشوائي المنفصل X مساوياً تماماً لقيمة عددية صحيحة k، وتصاغ رياضياً وفق المعادلة التالية:

P(X = k) = (λ^k * e^(-λ)) / k!

حيث تمثل المتغيرات في هذه المعادلة العناصر الرياضية الآتية: k هو عدد مرات وقوع الحدث، وهو عدد صحيح غير سالب ينتمي للمجموعة {0, 1, 2, 3, …}. المعلمة λ هي معدل وقوع الحدث الإيجابي (λ > 0)، والحرف e يمثل الأساس الطبيعي للوغاريتم (ثابت أويلر ويساوي تقريباً 2.71828)، بينما يمثل الرمز !k مضروب العدد k (Factorial) وهو حاصل ضرب جميع الأعداد الصحيحة الموجبة من 1 حتى k، مع الاصطلاح الرياضي بأن 0! = 1.

لحساب الاحتمال يدوياً عند افتراض أن معدل حدوث خطأ إملائي معين هو λ = 2 أخطاء في الصفحة، ونرغب في حساب احتمال ظهور 3 أخطاء في صفحة مختارة عشوائياً (k = 3):

P(X = 3) = (2^3 * e^(-2)) / 3! = (8 * 0.135335) / 6 = 1.08268 / 6 ≈ 0.1804

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

Poisson probability mass function
Poisson probability mass function

2.2 الخصائص الإحصائية الجوهرية للتوزيع

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

فيما يتعلق بشكل التوزيع، يُقاس معامل الالتواء (Skewness) بالعلاقة الرياضية 1 مقسوماً على الجذر التربيعي لـ λ (أي 1/√λ). نظراً لأن λ قيمة موجبة دائماً، فإن الالتواء يكون دائماً موجباً (التواء نحو اليمين)، غير أنه يتناقص تدريجياً كلما كبرت قيمة λ مقترباً من الصفر. أما معامل التفرطح الإضافي (Kurtosis) فيُحسب بالعلاقة 1/λ، وهو ما يشير إلى أن قمة التوزيع تكون أكثر حدة من التوزيع الطبيعي عندما تكون λ صغيرة، ثم تتراجع حدتها مع نمو المعدل.

وفقاً لمبرهنة النهاية المركزية، عندما تنمو قيمة المعلمة λ لتصل إلى قيم كبيرة نسبياً (عادة λ ≥ 10 أو λ ≥ 20)، يتقارب توزيع بواسون المنفصل تقارباً تقاربياً وثيقاً من التوزيع الطبيعي المستمر بالمعلمات: المتوسط μ = λ، والتباين σ² = λ. يبرز هذا التقارب بوضوح عند رسم المنحنيات في R، حيث يتحول الشكل المدبب الملتوي تدريجياً إلى شكل الجرس المتناظر تماماً حول المركز.

2.3 الفروق الجوهرية بين التوزيعات المنفصلة والتوزيعات المستمرة

من الأهمية بمكان من الناحية الإحصائية والمنهجية التمييز بين دالة كتلة الاحتمال (PMF) الخاصة بالتوزيعات المنفصلة، ودالة كثافة الاحتمال (PDF) الخاصة بالتوزيعات المستمرة. في دالة كتلة الاحتمال مثل توزيع بواسون، تمثل النقطة الاحتمالية P(X = k) كتلة حقيقية من الاحتمال يمكن أن تأخذ قيمة محددة أكبر من الصفر، ويكون مجموع احتمالات جميع القيم الممكنة مساوياً للواحد الصحيح تماماً عبر عملية الجمع المنفصل (Summation).

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

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

3. منظومة دوال توزيع بواسون المدمجة في لغة R

3.1 وظيفة الدالة dpois() لحساب دالة كتلة الاحتمال

توفر لغة R منظومة قياسية مدمجة شديدة القوة للتعامل مع التوزيعات الاحتمالية، وتعد الدالة dpois() المسؤولة الأساسية عن حساب دالة كتلة الاحتمال لتوزيع بواسون. تستقبل الدالة تركيبة محددة من المعاملات: dpois(x, lambda, log = FALSE)، حيث يمثل x المتجه العددي للقيم المنفصلة المراد حساب الاحتمال عندها، وlambda تمثل المعلمة الموجبة لمعدل التوزيع، بينما يتيح الوسيط المنطقي log إرجاع اللوغاريتم الطبيعي للاحتمال في حال تعيينه إلى TRUE، وهو خيار بالغ الأهمية عند إجراء تحسينات الإمكان الأعظم لتفادي أخطاء التدفق السفلي (Underflow).

تتميز دالة dpois() بالقدرة على التعامل مع المتجهات بمرونة تامة (Vectorization)، مما يتيح حساب احتمالات سلسلة متصلة من الأعداد الصحيحة بخطوة واحدة ودون الحاجة لكتابة حلقات تكرارية (Loops). على سبيل المثال، يمكن تمرير المتجه 0:10 في موضع المتغير x مع تحديد قيمة lambda = 3 لاستخراج متجه كامل يحتوي على أحد عشر احتمالاً يغطي الأحداث من عدم وقوع أي حدث حتى وقوع عشرة أحداث متتالية.

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

Poisson distribution probability mass function in R
Poisson distribution probability mass function in R

3.2 استكشاف الدوال الرديفة: ppois() و qpois() و rpois()

تكتمل منظومة معالجة توزيع بواسون في R بوجود ثلاث دوال إضافية تتكامل مع دالة الكتلة لتقديم تحليل إحصائي شامل. الدالة الأولى هي ppois(q, lambda, lower.tail = TRUE, log.p = FALSE)، وهي المسؤولة عن حساب دالة التوزيع التراكمي (CDF)، حيث تقوم بحساب الاحتمال التراكمي P(X ≤ q). في حال ضبط lower.tail = FALSE، تقوم الدالة بحساب احتمالية الذيل الأيمن P(X > q)، وهي أداة رئيسية لحساب القيم الاحتمالية (p-values) في اختبارات الدلالة الإحصائية للبيانات العدية.

الدالة الثانية هي دالة المئين أو دالة الشريحة qpois(p, lambda, lower.tail = TRUE) (Quantile Function)، وهي المعكوس الرياضي لدالة التوزيع التراكمي. تستقبل الدالة قيمة احتمالية p تقع بين 0 و 1، وتقوم بإرجاع أصغر عدد صحيح k يحقق أن الاحتمال التراكمي عنده أكبر من أو يساوي الاحتمال المعطى (P(X ≤ k) ≥ p). تفيد هذه الدالة في استخراج فترات الثقة وتحديد النقاط الحرجة للرفض الإحصائي في اختبارات الفرضيات.

أما الدالة الثالثة فهي دالة التوليد العشوائي rpois(n, lambda)، وتستخدم في توليد عينات عشوائية تجريبية بعدد n تتبع توزيع بواسون بمعدل محدد. تلعب هذه الدالة دوراً محورياً في دراسات المحاكاة بطريقة مونت كارلو (Monte Carlo Simulations)، واختبار قوة النماذج الإحصائية، وإجراء المقارنات البصرية بين التوزيعات النظرية والبيانات المجمعة تجريبياً.

3.3 إعداد بيئة العمل والتحقق من صحة المدخلات في R

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

كما يتطلب استقرار الكود البرمجي التأكد من أن معلمة المعدل lambda هي عدد حقيقي موجب تماماً (λ > 0). في حال تمرير قيمة سالبة أو مساوية للصفر عن طريق الخطأ، ستنتج دوال R قيماً غير معرفة (NaN) مع إطلاق تحذيرات برمجية صريحة. لذلك، من الممارسات البرمجية الرصينة في R بناء شروط تحقق واختبار للمدخلات باستخدام دوال مثل stopifnot() للتأكد من منطقية المعالم قبل بدء عمليات الرسم البياني المعقدة.

يضاف إلى ذلك أهمية التحقق من اتساع نطاق المتجه المخصص للرسم؛ إذ ينبغي ألا يقتصر النطاق على بضع نقاط حول المتوسط، بل يجب أن يمتد ليشمل على الأقل نطاقاً يغطي أربعة أو خمسة انحرافات معيارية أعلى المتوسط (أي إلى حدود λ + 5√λ)، وذلك لضمان ظهور كامل المنحنى واقتراب مجموع الاحتمالات في فضاء الرسم من الواحد الصحيح، وهو ما يمكن فحصه عبر تشغيل دالة sum(dpois(x, lambda)) والتأكد من مطابقتها للقيمة 1.0 مع هامش خطأ حوسبي متناهي الصغر.

4. الرسم الأساسي لدالة كتلة الاحتمال باستخدام نظام Base R

4.1 إنشاء الرسم الأساسي باستخدام دالة plot() مع الوسيط type=’h’

يوفر النظام الرسومي الافتراضي في R (Base R Graphics) بيئة سريعة وقوية لإنتاج مخططات احصائية مباشرة دون الحاجة لتحميل حزم خارجية. لرسم دالة كتلة الاحتمال لتوزيع بواسون، نبدأ بتعريف متجه النجاحات الممكنة، وليكن من 0 إلى 15، ثم نحدد قيمة المعلمة λ ولتكن 4. يتم تمرير هذه القيم إلى دالة plot() بالشكل الإجرائي المباشر:

success <- 0:15
lambda_val <- 4
prob <- dpois(success, lambda = lambda_val)
plot(success, prob, type = 'h')

يكمن السر في الحصول على تمثيل إحصائي سليم في استخدام الوسيط type = 'h' (والذي يشير إلى High-density vertical lines). يقوم هذا الوسيط برسم خطوط رأسية مستقيمة ترتفع من خط الصفر على المحور الأفقي لتصل تماماً إلى النقطة التي تمثل قيمة الاحتمال المناظرة لكل حدث k على المحور الرأسي. هذا النمط من الرسم يعكس بدقة الطبيعة غير المتصلة للمتغير العشوائي، متفادياً التشويش الذي يحدث عند استخدام النمط الافتراضي للنقاط المتصلة بالخطوط.

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

4.2 تفسير المحاور الهندسية للرسم البياني

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

في المقابل، يمثل المحور الرأسي (Y-axis) قيمة دالة كتلة الاحتمال P(X = k)، وهو مقياس مقيد بالضرورة داخل الفترة الاحتمالية المغلقة [0, 1]. يوضح هذا المحور الحجم النسبي لفرصة وقوع كل عدد من الأحداث؛ حيث يشير العمود الأطول إلى المنوال الإحصائي (Mode) للتوزيع، وهو الحدث الأكثر ترجيحاً للحدوث، والذي يقع عادة عند القيمة الصحيحة للعدد λ أو العدد الصحيح السابق له مباشرة (في حال كانت λ عدداً صحيحاً، يشترك الحدان λ و λ-1 في أعلى احتمال).

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

4.3 استخراج وعرض مصفوفة الاحتمالات المرافقة للرسم

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

prob_table <- data.frame(Events = success, Probability = round(prob, 4))
print(prob_table)

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

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

5. تخصيص وتحسين جمالية المخطط البياني في Base R

5.1 تعديل العناوين وتسميات المحاور لتوثيق أكاديمي دقيق

لا يعتبر المخطط البياني مكتملاً من الناحية الأكاديمية دون توفير سياق وصفي واضح من خلال العناوين والتسميات التوضيحية الدقيقة. يتيح نظام Base R إمكانية تخصيص كافة النصوص المرافقة للرسم باستخدام معاملات مخصصة داخل دالة plot():

plot(success, prob, type = 'h', main = expression(paste("Poisson PMF with ", lambda, " = 4")), xlab = "Number of Occurrences (k)", ylab = "Probability P(X = k)", sub = "Source: Simulated Experimental Data")

يتيح استخدام دالة expression() بالتعاون مع paste() كتابة الحرف الإغريقي λ بشكل رياضي صحيح وأنيق داخل العنوان الرئيسي main، مما يرفع من جودة الإخراج البصري للمخطط ليتوافق مع معايير المجلات المفهرسة عالمياً. كما تعمل التسميات الصريحة للمحاور عبر xlab و ylab على إزالة أي لبس يتعلق بوحدات القياس وطبيعة المتغير المعروض.

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

5.2 التحكم في سماكة الخطوط، الألوان، وأنماط النقاط

تبدو الخطوط الافتراضية في دالة plot(..., type='h') رفيعة نسبياً (بسمك 1 نقطة)، مما قد يضعف وضوحها عند إدراج المخطط في مستندات مطبوعة أو عروض تقديمية. يمكن تعديل سماكة الخطوط باستخدام المعامل lwd (Line Width)، مع إمكانية إضفاء ألوان جذابة باستخدام المعامل col:

plot(success, prob, type = 'h', lwd = 4, col = "steelblue", xlab = "k", ylab = "P(X = k)")
points(success, prob, pch = 16, col = "darkblue", cex = 1.2)

إن دمج دالة points() الإضافية كطبقة تالية لرسم الأعمدة يمنح المخطط مظهراً احترافياً يعرف في الأدبيات البيانية بـ “Lollipop Plot” (مخطط المصاصة). تضع هذه الطبقة نقاطاً دائرية مصمتة (عبر تحديد نوع النقطة pch = 16) بأحجام مضبوطة (cex = 1.2) وألوان متناسقة فوق قمة كل عمود رأسي تماماً.

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

5.3 إضافة الشبكات التوضيحية وشروح المعالم الإحصائية

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

grid(nx = NULL, ny = NULL, col = "lightgray", lty = "dotted")

يمكن تمييز المتوسط الحسابي للتوزيع (λ) من خلال رسم خط عمودي متقطع باستخدام دالة abline():

abline(v = lambda_val, col = "firebrick", lwd = 2, lty = 2)

كما يمكن تعزيز المخطط بإدراج دليل تفسيري (Legend) يوضح مدلول الخطوط والألوان، ونصوص توضيحية داخل فضاء الرسم باستخدام دالة text() للإشارة الصريحة إلى موقع المتوسط والمنوال:

legend("topright", legend = c("PMF Values", paste("Mean (", lambda, "=", lambda_val, ")")), col = c("steelblue", "firebrick"), lwd = c(4, 2), lty = c(1, 2), bty = "n")

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

6. التمثيل البياني لدالة التوزيع التراكمي (CDF) لتوزيع بواسون في R

6.1 المفهوم الإحصائي لدالة التوزيع التراكمي في المتغيرات المنفصلة

تُعرّف دالة التوزيع التراكمي (Cumulative Distribution Function – CDF) لمتغير عشوائي X يتبع توزيع بواسون بالصيغة الرياضية F(k) = P(X ≤ k). تمثل هذه الدالة مجموع الاحتمالات المنفصلة لجميع قيم المتغير التي تقل عن أو تساوي عدداً محدداً k، أي أنها حاصل جمع احتمالات كتل بواسون من الصفر وحتى k:

F(k) = ∑ [ (λ^i * e^(-λ)) / i! ] حيث يمتد الجمع من i = 0 إلى i = k

تكتسب الدالة التراكمية أهمية استثنائية في التحليل الإحصائي التطبيقي، إذ تُبنى عليها معظم اختبارات الفرضيات وحساب مستويات الدلالة في النماذج اللامعلمية واختبارات جودة الملاءمة مثل اختبار كولموغوروف-سميرنوف (Kolmogorov-Smirnov Test). في بيئة R، يتم حساب هذه القيم بسرعة ودقة عالية باستخدام الدالة المدمجة ppois(k, lambda).

نظراً لأن المتغير العشوائي هنا متغير منفصل، فإن منحنى الدالة التراكمية لا يتخذ شكلاً أملساً أو انسيابياً كما هو الحال في التوزيع الطبيعي، بل يظهر دائماً على شكل دالة دَرَجية متقطعة (Step Function). تظل قيمة الدالة التراكمية ثابتة وأفقية تماماً على امتداد الفترة الممتدة بين أي عددين صحيحين متتاليين [k, k+1)، ثم تقفز قفزة رأسية مفاجئة عند الوصول إلى العدد الصحيح التالي، ويكون مقدار هذا الارتفاع الرأسي مساوياً تماماً لقيمة كتلة الاحتمال النقطية P(X = k+1).

6.2 خطوات رسم الدالة التراكمية باستخدام plot() و stepfun()

يوفر نظام Base R عدة طرق فعالة لرسم الدالة التراكمية، أبسطها استخدام دالة plot() مع تخصيص الوسيط type = 's' لإنشاء الدرجات السلمية (Step-like plot):

k_values <- 0:15
cum_prob <- ppois(k_values, lambda = 4)
plot(k_values, cum_prob, type = 's', col = "darkgreen", lwd = 2, main = "Cumulative Distribution Function (CDF)", xlab = "k", ylab = "F(k) = P(X <= k)")

للحصول على تمثيل رياضي صارم ودقيق يتوافق مع التعريف الرياضي للاستمرارية من اليمين (Right-continuity)، يفضل استخدام الدالة المتخصصة stepfun() المدمجة في حزمة stats:

cum_fn <- stepfun(k_values, c(0, cum_prob))
plot(cum_fn, verticals = FALSE, pch = 16, main = "Exact Step CDF of Poisson(4)", xlab = "k", ylab = "F(k)", col.points = "darkgreen")

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

6.3 المقارنة البصرية بين دالة الكتلة ودالة التوزيع التراكمي

لتسهيل الفهم البصري واستيعاب العلاقة التكاملية بين دالة كتلة الاحتمال (PMF) ودالة التوزيع التراكمي (CDF)، يُعد من أفضل الممارسات المنهجية عرض المخططين جنباً إلى جنب في إطار رسم موحد. يمكن تهيئة بيئة الرسم في R لتحقيق ذلك عبر تقسيم نافذة العرض باستخدام دالة par(mfrow = c(1, 2)):

par(mfrow = c(1, 2), mar = c(4, 4, 2, 1))
# الرسم الأول: دالة الكتلة
plot(0:12, dpois(0:12, 3), type = 'h', lwd = 3, col = "navy", main = "PMF (lambda = 3)", xlab = "k", ylab = "P(X = k)")
points(0:12, dpois(0:12, 3), pch = 16, col = "navy")
# الرسم الثاني: دالة التراكم
plot(0:12, ppois(0:12, 3), type = 's', lwd = 3, col = "darkred", main = "CDF (lambda = 3)", xlab = "k", ylab = "F(k)")
points(0:12, ppois(0:12, 3), pch = 16, col = "darkred")
par(mfrow = c(1, 1)) # إعادة تعيين البيئة

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

7. مقارنة قيم لامبدا (λ) المتعددة وتحليل تغير الشكل التوزيعي

7.1 تأثير تباين قيم λ على الالتواء وتماثل المنحنى

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

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

وعندما تتجاوز قيمة λ العتبة 10 أو 15، يتلاشى الالتواء الظاهري بشكل شبه كامل، ويصبح المنحنى متناظراً إلى حد بعيد حول وسطه الحسابي. في هذه المرحلة، تصبح كتل الاحتمال موزعة توزيعاً متوازناً على جانبي λ، مما يجعل التوزيع قابلاً للتقريب بدرجة دقة عالية باستخدام التوزيع الطبيعي المستمر، مع استخدام تصحيح الاستمرارية (Continuity Correction) للتعامل مع الطبيعة المنفصلة للأعداد.

7.2 رسم عدة توزيعات بواسون متراكبة في مخطط واحد في Base R

لإجراء مقارنة بصرية مباشرة ومتقاطعة توضح أثر تباين معلمات المعدل، يمكن رسم عدة منحنيات احتمالية لتوزيع بواسون بقيم λ مختلفة فوق لوحة رسم بيانية واحدة في Base R. يتم إنشاء الرسم الأساسي للتوزيع الأول أولاً، ثم تستخدم دالة lines() و points() لإسقاط التوزيعات اللاحقة بألوان وأنماط خطوط مميزة:

x_vals <- 0:20
plot(x_vals, dpois(x_vals, lambda = 1), type = 'b', pch = 16, col = "coral", lwd = 2, ylim = c(0, 0.4), main = "Comparison of Poisson Distributions", xlab = "k", ylab = "Probability")
lines(x_vals, dpois(x_vals, lambda = 4), type = 'b', pch = 17, col = "forestgreen", lwd = 2)
lines(x_vals, dpois(x_vals, lambda = 10), type = 'b', pch = 18, col = "royalblue", lwd = 2)
legend("topright", legend = c("lambda = 1", "lambda = 4", "lambda = 10"), col = c("coral", "forestgreen", "royalblue"), pch = c(16, 17, 18), lwd = 2, bty = "n")

يوفر نمط الرسم type = 'b' (Both points and lines) حلاً وسطاً يجمع بين النقاط التي تحدد الكتل المنفصلة والخطوط الرفيعة التي تساعد العين على تتبع المسار العام لكل توزيع على حدة. يتيح ضبط المعامل ylim = c(0, 0.4) ضمان استيعاب أعلى قمة احتمالية (التي تظهر عند λ = 1) دون حدوث أي اقتطاع للبيانات في الجزء العلوي من فضاء الرسم.

يبرز الدليل التوضيحي (Legend) دور كل منحنى بوضوح، مما يسهل على القارئ المقارنة الفورية بين المنحنى البرتقالي ذي الالتواء الحاد عند λ = 1، والمنحنى الأخضر المتوسط عند λ = 4، والمنحنى الأزرق الممتد والمتناظر عند λ = 10، موضحاً بأسلوب بصري سلس التحول الجذري في بنية التوزيع.

7.3 مصفوفات الرسم المتعدد (Faceted Plots) للمقارنة الشاملة

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

par(mfrow = c(2, 2), mar = c(4, 4, 3, 1))
lambdas <- c(1, 3, 7, 12)
colors <- c("darkorange", "purple", "darkcyan", "firebrick")
for (i in 1:length(lambdas)) {
  x <- 0:25
  y <- dpois(x, lambda = lambdas[i])
  plot(x, y, type = 'h', lwd = 3, col = colors[i], ylim = c(0, 0.4), xlim = c(0, 25), main = paste("Lambda =", lambdas[i]), xlab = "k", ylab = "Probability")
  points(x, y, pch = 16, col = colors[i])
  abline(v = lambdas[i], lty = 2, col = "gray40")
}
par(mfrow = c(1, 1))

تتجلى قوة هذه المقارنة الشبكية في توحيد حدود المحاور الأفقية (xlim = c(0, 25)) والرأسية (ylim = c(0, 0.4)) عبر كافة النوافذ الأربع. يضمن هذا التوحيد الصارم نزاهة المقارنة البصرية؛ حيث يرى المحلل بوضوح تام كيف تتراجع القمة القصوى تدريجياً من 0.37 عند λ = 1 إلى أقل من 0.12 عند λ = 12، وكيف يتسع التشتت الأفقي للأعمدة ليعكس التزايد المطرد في التباين الرياضي للنموذج.

8. التمثيل البياني المتقدم لتوزيع بواسون باستخدام حزمة ggplot2

8.1 بناء هيكل البيانات وتأسيس كائن ggplot

تُعد حزمة ggplot2 المعيار الذهبي للرسم البياني المتقدم في لغة R، حيث تعتمد على فلسفة “قواعد النحو البياني” (Grammar of Graphics). تقتضي هذه الفلسفة تحويل المتجهات الرياضية إلى إطار بيانات منتظم (data.frame or tibble) قبل الشروع في الرسم، مما يتيح ربط المتغيرات بالخصائص الجمالية والهندسية للرسم بمرونة فائقة:

library(ggplot2)
df_poisson <- data.frame(k = 0:15, prob = dpois(0:15, lambda = 5))
p <- ggplot(df_poisson, aes(x = k, y = prob))

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

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

8.2 استخدام هندسة الأعمدة والنقاط: geom_col() و geom_segment()

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

p + geom_col(fill = "cadetblue", width = 0.2) + geom_point(size = 3, color = "navy") + labs(title = "Poisson Distribution (lambda = 5)", x = "Number of Events (k)", y = "P(X = k)")

أما الخيار الأكثر تطابقاً مع التقاليد الإحصائية الكلاسيكية فهو استخدام هندسة المقاطع المستقيمة عبر دالة geom_segment()، والتي ترسم خطوطاً رأسية دقيقة تنطلق من الصفر إلى نقطة الاحتمال:

ggplot(df_poisson, aes(x = k, y = prob)) +
  geom_segment(aes(xend = k, y = 0, yend = prob), color = "steelblue", size = 1.2) +
  geom_point(size = 3.5, color = "midnightblue") +
  scale_x_continuous(breaks = 0:15) +
  labs(title = "Probability Mass Function of Poisson(5)", subtitle = "Rendered with ggplot2 Lollipop Geometry", x = "Count (k)", y = "Probability Mass")

يضمن استخدام scale_x_continuous(breaks = 0:15) إظهار كافة الأعداد الصحيحة بوضوح على المحور الأفقي دون تخطي أي رقم، مما يعزز الطبيعة المنفصلة للبيانات. يمنح هذا المخطط الهجين (Segment + Point) مظهراً فائق النقاء يلبي متطلبات النشر في أرقى الدوريات العلمية.

8.3 تطبيق السمات الجمالية والتقسيم الوجهي (Faceting)

تتجلى القوة القصوى لحزمة ggplot2 عند دمج السمات الجمالية الاحترافية وتطبيق التقسيم الوجهي (Faceting) لمقارنة سيناريوهات متعددة. لنفترض أننا نريد مقارنة أربعة توزيعات بواسون (λ = 2, 5, 8, 12) في إطار واحد:

k_grid <- expand.grid(k = 0:20, lambda = c(2, 5, 8, 12))
k_grid$prob <- dpois(k_grid$k, lambda = k_grid$lambda)
k_grid$\lambda_label <- paste("\lambda ==", k_grid$lambda)
ggplot(k_grid, aes(x = k, y = prob, fill = factor(lambda))) +
  geom_col(width = 0.6, show.legend = FALSE) +
  facet_wrap(~ lambda_label, scales = "free_y", labeller = label_parsed) +
  scale_fill_viridis_d(option = "magma", begin = 0.2, end = 0.8) +
  theme_minimal(base_size = 13) +
  theme(panel.grid.minor = element_blank(), strip.text = element_text(face = "bold", size = 12)) +
  labs(title = "Faceted Poisson Mass Functions", x = "Events (k)", y = "Probability")

تقوم دالة facet_wrap() بتقسيم فضاء الرسم تلقائياً إلى لوحات فرعية أنيقة، مع استخدام label_parsed لتصيير الرموز الرياضية في عناوين اللوحات بصورة سليمة. تتيح إضافة لوحة الألوان المتقدمة scale_fill_viridis_d() تمايزاً بصرياً مريحاً للعين وقابلاً للقراءة حتى في حال طباعة المستند بالأبيض والأسود، بينما تضمن السمة theme_minimal() مظهراً عصرياً خالياً من الحشو البصري والحدود الزائدة.

9. محاكاة البيانات العشوائية ومقارنتها بالمنحنى النظري لتوزيع بواسون

9.1 توليد العينات الاحتمالية باستخدام دالة rpois()

تعد المحاكاة العشوائية ركيزة لا غنى عنها لاختبار النظريات الإحصائية والتحقق من كفاءة المقدرات. في لغة R، تتيح الدالة rpois(n, lambda) توليد عينات عشوائية تحاكي تماماً السلوك الرياضي لتوزيع بواسون. لضمان القابلية لإعادة التكرار العلمي (Reproducibility) والحصول على نفس النتائج الدقيقة عند إعادة تشغيل الكود، يجب تثبيت المولد الرقمي العشوائي باستخدام دالة set.seed():

set.seed(42)
sample_size <- 1000
true_lambda <- 3.5
simulated_data <- rpois(n = sample_size, lambda = true_lambda)

عقب توليد البيانات، يقوم الباحث بفحص المؤشرات الوصفية للتحقق من تقارب العينة المولدة من المعلمات النظرية الأصلية:

sample_mean <- mean(simulated_data)
sample_var <- var(simulated_data)
cat("True Mean/Var:", true_lambda, "nSample Mean:", sample_mean, "nSample Var:", sample_var)

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

9.2 رسم المدرج التكراري للبيانات التجريبية ومطابقته مع PMF النظري

لتقييم مدى تطابق العينة المحاكاة مع النموذج النظري بصرياً، يتم رسم المدرج التكراري للبيانات التجريبية بنظام التكرار النسبي (Empirical Relative Frequency) ثم إسقاط خطوط دالة كتلة الاحتمال النظرية فوقه مباشرة في Base R:

max_k <- max(simulated_data)
emp_freq <- table(factor(simulated_data, levels = 0:max_k)) / sample_size
plot(0:max_k, as.numeric(emp_freq), type = 'h', lwd = 8, col = "lightgray", lend = "butt", ylim = c(0, max(emp_freq) * 1.2), main = "Simulated Sample vs. Theoretical Poisson PMF", xlab = "Observed Value (k)", ylab = "Relative Frequency / Probability")
# تراكب القيم النظرية
points(0:max_k, dpois(0:max_k, lambda = true_lambda), col = "crimson", pch = 19, cex = 1.3)
lines(0:max_k, dpois(0:max_k, lambda = true_lambda), col = "crimson", lty = 2, lwd = 2)
legend("topright", legend = c("Empirical Sample (N=1000)", "Theoretical PMF"), col = c("gray", "crimson"), lwd = c(8, 2), pch = c(NA, 19), bty = "n")

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

9.3 دراسة أثر حجم العينة على تقارب التوزيع التجريبي من النظري

يوفر الرسم البياني التوضيحي في R أفضل وسيلة تعليمية لإثبات قانون الأعداد الكبيرة (Law of Large Numbers). من خلال محاكاة ثلاث عينات بأحجام متباينة تصاعدياً (مثلاً: N = 50، و N = 500، و N = 5000) من نفس التوزيع، يمكن رسم التكرارات النسبية لكل عينة بجانب المنحنى النظري:

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

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

10. ملاءمة توزيع بواسون للبيانات السيكولوجية والواقعية ورسم التوافق

10.1 تقدير معلمة لامبدا للبيانات التجريبية بطريقة الإمكان الأعظم (MLE)

عند التعامل مع بيانات ميدانية واقعية غير معلومة المعالم مسبقاً، تتمثل الخطوة الإحصائية الأولى في تقدير معلمة المعدل λ المجهولة من واقع البيانات المجمعة. وفقاً لنظرية التقدير الإحصائي بطريقة الإمكان الأعظم (Maximum Likelihood Estimation – MLE)، فإن المقدر الأكثر كفاءة وغير المنحاز لمعلمة بواسون هو ببساطة المتوسط الحسابي للعينة (λ̂ = x̄).

لتنفيذ ذلك بطريقة إحصائية قياسية وشاملة، يُنصح باستخدام حزمة fitdistrplus المتخصصة في ملاءمة التوزيعات الاحتمالية في R:

library(fitdistrplus)
# ملاءمة توزيع بواسون للبيانات المجمعة
fit_poi <- fitdist(simulated_data, "pois")
summary(fit_poi)

يقوم الأمر fitdist() بتقدير المعلمة وحساب الخطأ المعياري للتقدير (Standard Error) وفترات الثقة، بالإضافة إلى حساب مقاييس جودة الملاءمة الشاملة مثل لوغاريتم الإمكان (Log-Likelihood) ومعيار أكايكي للمعلومات (AIC) ومعيار بايز للمعلومات (BIC). تمثل هذه المؤشرات الأساس العددي الذي يعتمد عليه الباحث للمفاضلة بين نموذج بواسون والنماذج التوزيعية البديلة.

10.2 إنشاء مخططات التشخيص والملاءمة البيانية (Goodness-of-Fit Plots)

توفر حزمة fitdistrplus وظيفة رسومية تشخيصية استثنائية عبر استدعاء دالة plot(fit_poi)، والتي تولد تلقائياً مصفوفة رباعية تحتوي على أربعة مخططات تشخيصية أساسية:

  1. مخطط الكثافة التجريبية مقابل النظرية (Empirical and Theoretical Densities): يقارن توزيع التكرار النسبي للبيانات الملاحظة بالكتل الاحتمالية للنموذج المفترض.
  2. مخطط التوزيع التراكمي المقارن (Empirical and Theoretical CDFs): يوضح درجة تطابق المنحنى الدرجي التراكمي للبيانات مع المنحنى التراكمي النظري.
  3. مخطط التجزيء الربيعي (Q-Q Plot): يرسم المئينات التجريبية مقابل المئينات النظرية، حيث يشير اصطفاف النقاط حول الخط المرجعي المائل إلى كمال الملاءمة.
  4. مخطط الاحتمال-الاحتمال (P-P Plot): يقارن الاحتمالات التراكمية الملاحظة بالاحتمالات النظرية لتقييم سلوك التوزيع في المركز والأطراف.

بالإضافة إلى ذلك، توفر حزمة vcd مخططاً تشخيصياً بالغ الأهمية يعرف بـ “Rootogram المعلق” (Hanging Rootogram) عبر الدالة rootogram(). يقوم هذا المخطط بتعليق الأعمدة التكرارية الملاحظة من المنحنى النظري بعد أخذ الجذر التربيعي للتكرارات لتحقيق استقرار التباين، مما يجعل أي انحراف عن خط الصفر دليلاً بصرياً قاطعاً على وجود نقص أو زيادة في التكرارات مقارنة بتوقعات نموذج بواسون.

10.3 دراسة حالة تطبيقية: نمذجة تكرار السلوكيات الاندفاعية لدى عينة سريرية

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

# محاكاة بيانات سريرية واقعية
set.seed(123)
impulsive_events <- rpois(150, lambda = 2.8)
lambda_hat <- mean(impulsive_events)
# بناء جدول المقارنة
obs_table <- table(factor(impulsive_events, levels = 0:10))
df_case <- data.frame(Events = 0:10, Observed = as.numeric(obs_table), Expected = dpois(0:10, lambda = lambda_hat) * 150)
# الرسم المتقدم للمقارنة السريرية
ggplot(df_case, aes(x = Events)) +
  geom_col(aes(y = Observed), fill = "darkslategray4", alpha = 0.7, width = 0.5) +
  geom_line(aes(y = Expected), color = "coral2", size = 1.2) +
  geom_point(aes(y = Expected), color = "coral2", size = 3) +
  theme_classic() +
  labs(title = "Clinical Modeling of Impulsive Behaviors", subtitle = paste("Poisson Fit: Estimated Lambda =", round(lambda_hat, 2)), x = "Weekly Impulsive Incidents", y = "Frequency of Patients")

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

11. التعامل مع التشتت الفائق (Overdispersion) ونماذج بواسون المعدلة

11.1 مفهوم التشتت الفائق وتشخيصه بيانياً وإحصائياً

تتمثل إحدى أكثر المشكلات شيوعاً عند نمذجة البيانات السلوكية والاجتماعية في ظاهرة التشتت الفائق (Overdispersion). تحدث هذه الظاهرة عندما يتجاوز التباين الفعلي للبيانات قيمة المتوسط الحسابي بدرجة كبيرة (Var(X) >> E(X))، وهو ما يمثل انتهاكاً صريحاً لفرضية التوزيع المتكافئ (Equidispersion) الجوهرية في نموذج بواسون.

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

بيانياً، يُشخص التشتت الفائق من خلال ملاحظة اتساع ذيل التوزيع التجريبي بدرجة تفوق كثيراً التناقص الأسي المتوقع في نموذج بواسون، بالإضافة إلى تركز تكرارات مرتفعة جداً عند القيمة صفر. كما يمكن إجراء تشخيص إحصائي رسمي عبر حساب نسبة التشتت (Dispersion Ratio = Var(X) / Mean(X))؛ فإذا تجاوزت هذه النسبة القيمة 1.5 أو 2.0، دلّ ذلك على عدم صلاحية نموذج بواسون القياسي وضرورة الانتقال إلى نماذج احتمالية أكثر مرونة.

11.2 التمثيل البياني لنموذج بواسون شبه التجريبي (Quasi-Poisson) والحدين السالب

عند ثبوت وجود التشتت الفائق، يبرز توزيع الحدين السالب (Negative Binomial Distribution) كبديل رياضي فائق القوة؛ إذ يشتمل على معلمة إضافية تسمى معلمة التشتت (Theta أو Dispersion Parameter) تسمح للتباين بالنمو كدالة تربيعية في المتوسط (Var(X) = μ + μ²/θ)، مما يمنحه قدرة فائقة على استيعاب الذيول الثقيلة والتشتت الواسع.

يوضح الكود التالي كيفية رسم مقارنة بيانية متباينة بين منحنى بواسون ومنحنى الحدين السالب على بيانات تعاني من التشتت الفائق:

x_range <- 0:20
mu_val <- 4
size_val <- 1.5 # معلمة التشتت للحدين السالب
df_disp <- data.frame(k = x_range, Poisson = dpois(x_range, lambda = mu_val), NegBinomial = dnbinom(x_range, mu = mu_val, size = size_val))
ggplot(df_disp, aes(x = k)) +
  geom_line(aes(y = Poisson, color = "Poisson (Var = 4)"), size = 1.2, linetype = "dashed") +
  geom_line(aes(y = NegBinomial, color = "Neg-Binomial (Var = 14.67)"), size = 1.2) +
  geom_point(aes(y = Poisson, color = "Poisson (Var = 4)"), size = 2.5) +
  geom_point(aes(y = NegBinomial, color = "Neg-Binomial (Var = 14.67)"), size = 2.5) +
  scale_color_manual(name = "Model Type", values = c("Poisson (Var = 4)" = "red3", "Neg-Binomial (Var = 14.67)" = "dodgerblue4")) +
  theme_minimal() +
  labs(title = "Overdispersion: Poisson vs. Negative Binomial", subtitle = "Same Mean (mu = 4) but Drastically Different Variance Structures", x = "Count (k)", y = "Probability Mass")

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

11.3 رسم نماذج بواسون المتضخمة بالأصفار (Zero-Inflated Poisson – ZIP)

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

تتعامل نماذج بواسون المتضخمة بالأصفار (Zero-Inflated Poisson – ZIP) مع هذه المشكلة من خلال دمج توزيعين: نموذج لوجستي لتقدير نسبة الأصفار الهيكلية (π)، ونموذج بواسون القياسي لبقية البيانات. يمكن تمثيل هذا النموذج بيانياً في R من خلال كتابة دالة الكتلة الهجينة:

dzipois <- function(x, lambda, pi) {
  ifelse(x == 0, pi + (1 - pi) * exp(-lambda), (1 - pi) * dpois(x, lambda))
}
x_pts <- 0:12
poi_std <- dpois(x_pts, lambda = 3)
zip_mod <- dzipois(x_pts, lambda = 3, pi = 0.35)
df_zip <- data.frame(k = factor(x_pts), Standard_Poisson = poi_std, ZIP = zip_mod)
df_zip_melt <- reshape2::melt(df_zip, id.vars = "k")
ggplot(df_zip_melt, aes(x = k, y = value, fill = variable)) +
  geom_col(position = "dodge", width = 0.7) +
  scale_fill_manual(values = c("Standard_Poisson" = "gray60", "ZIP" = "darkorchid4"), labels = c("Standard Poisson", "Zero-Inflated Poisson (pi=0.35)")) +
  theme_classic() +
  labs(title = "Zero-Inflated Poisson vs. Standard Poisson PMF", x = "Count (k)", y = "Probability Mass", fill = "Distribution")

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

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

12.1 الأخطاء الشائعة أثناء رسم توزيع بواسون في R وكيفية تجنبها

أثناء الممارسة العملية لرسم وتحليل توزيع بواسون في R، يقع الباحثون في مجموعة من الأخطاء المنهجية والبرمجية المتكررة التي ينبغي التنبه لها وتجنبها لضمان سلامة الإخراج العلمي:

  • الخطأ في اختيار النمط الهندسي للرسم: استخدام type = 'l' في Base R أو geom_line() المنفرد في ggplot2 دون وضع نقاط منفصلة، مما يعطي انطباعاً مضللاً بأن المتغير المقاس متغير متصل يقبل الكسور، وهو ما يتنافى مع مبادئ المتغيرات العدية المنفصلة.
  • بتر الذيل الأيمن للتوزيع: تحديد نطاق قصير للمحور الأفقي (مثلاً رسم النطاق 0:5 لتوزيع معلمه λ = 4)، مما يؤدي إلى تجاهل كتل احتمالية مهمة في الذيل تتجاوز قيمتها الإجمالية 20%، ويجعل مجموع الاحتمالات المعروضة أقل بكثير من الواحد الصحيح.
  • إهمال البعد الزمني أو المكاني لمعلمة المعدل: كتابة المعلمة λ كرقم مجرد دون تحديد وحدة القياس المصاحبة لها في تسميات المحاور (مثلاً: “عدد الأحداث في الساعة” أو “عدد الأخطاء لكل 100 كلمة”)، مما يفقد الرسم سياقه التطبيقي.
  • تجاهل تشخيص التشتت الفائق: الإصرار على ملاءمة ورسم نموذج بواسون القياسي لبيانات تظهر تبايناً هائلاً يفوق المتوسط، مما يؤدي إلى فترات ثقة ضيقة ومضللة واستنتاجات علمية غير دقيقة.

12.2 تصدير المخططات البيانية بجودة عالية للنشر الأكاديمي

تشترط المجلات العلمية المحكمة ومعايير جمعية علم النفس الأمريكية (APA) تصدير المخططات البيانية بدقة عالية لا تقل عن 300 نقطة في البوصة (DPI) لضمان وضوح الطباعة والرموز. في بيئة R، يمكن تصدير الرسوم المنشأة بنظام Base R باستخدام دوال الأجهزة الرسومية القياسية مثل png() و tiff() و pdf():

png(filename = "Poisson_Plot_APA.png", width = 8, height = 6, units = "in", res = 300)
# إدراج كود الرسم هنا
plot(0:15, dpois(0:15, 4), type = 'h', lwd = 3, col = "black", xlab = "Number of Incidents (k)", ylab = "Probability", main = "Poisson Distribution (Lambda = 4)")
points(0:15, dpois(0:15, 4), pch = 16, col = "black", cex = 1.2)
dev.off() # إغلاق الجهاز وحفظ الملف

أما عند استخدام حزمة ggplot2، فإن الدالة الموصى بها هي ggsave()، والتي تتيح التحكم الدقيق في الأبعاد والصيغة والدقة بسهولة بالغة:

ggsave("Poisson_ggplot_APA.tiff", plot = last_plot(), device = "tiff", width = 7, height = 5, units = "in", dpi = 300, compression = "lzw")

يضمن استخدام الضغط الخالي من الفقد مثل compression = "lzw" الحصول على أعلى نقاء بصري ممكن مع الحفاظ على حجم ملف مضغوط وملائم للإرسال عبر منصات المجلات الأكاديمية.

12.3 سكريبت تطبيقي شامل ومجمّع لجميع تقنيات الرسم في R

نختتم هذا الدليل بتقديم دالة مخصصة فائقة المرونة مكتوبة بلغة R، تتيح للمحلل رسم دالة كتلة الاحتمال التفاعلية لأي قيمة لمعلمة λ، مع إمكانية التبديل بين محرك Base R ومحرك ggplot2 بضغطة زر واحدة:

plot_poisson_master <- function(lambda, max_k = NULL, engine = "ggplot") {
  if (lambda <= 0) stop("Lambda must be strictly positive.")
  if (is.null(max_k)) max_k <- ceiling(lambda + 4 * sqrt(lambda) + 2)
  k_seq <- 0:max_k
  pmf <- dpois(k_seq, lambda = lambda)
  if (engine == "base") {
    plot(k_seq, pmf, type = 'h', lwd = 3, col = "navy", xlab = "Count (k)", ylab = "P(X = k)", main = paste("Poisson PMF (Lambda =", lambda, ")"))
    points(k_seq, pmf, pch = 16, col = "royalblue", cex = 1.2)
    grid(col = "gray90")
  } else if (engine == "ggplot") {
    require(ggplot2)
    df <- data.frame(k = k_seq, prob = pmf)
    p <- ggplot(df, aes(x = k, y = prob)) +
      geom_segment(aes(xend = k, y = 0, yend = prob), color = "steelblue4", size = 1.1) +
      geom_point(color = "darkred", size = 3) +
      theme_bw() +
      labs(title = paste("Poisson Distribution: Lambda =", lambda), x = "Number of Occurrences (k)", y = "Probability Mass")
    return(p)
  }
}

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

خاتمة

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

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

المراجع (References)

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

looti, M. (2026, أغسطس 26). كيفية رسم توزيع بواسون في R. عرب سايكلوجي. https://arabpsychology.com/statistics/how-to-plot-poisson-distribution-in-r/
looti, Mohammed. “كيفية رسم توزيع بواسون في R.” عرب سايكلوجي, 26 أغسطس 2026, https://arabpsychology.com/statistics/how-to-plot-poisson-distribution-in-r/.
looti, Mohammed. “كيفية رسم توزيع بواسون في R.” عرب سايكلوجي. أغسطس 26, 2026. https://arabpsychology.com/statistics/how-to-plot-poisson-distribution-in-r/.