تُعد بيئة نظام التحليل الإحصائي SAS (Statistical Analysis System) إحدى أكثر المنظومات البرمجية رسوخاً وشمولاً في مجالات معالجة البيانات، والتحليل الإحصائي المتقدم، والتنقيب في البيانات الضخمة. وفي صلب هذه المنظومة المتكاملة، تبرز مجموعة من الإجراءات الإحصائية الوصفية التي تُشكل حجر الزاوية لأي مشروع تحليلي رصين، ويأتي في طليعتها الإجراء الاستثنائي PROC SUMMARY. يمثل هذا الإجراء محركاً حسابياً فائق الكفاءة، صُمم خصيصاً لتمكين الباحثين ومحللي البيانات من استخلاص المؤشرات الإحصائية التلخيصية، وبناء الجداول التجميعية متعددة الأبعاد، وضغط الهياكل البيانية المعقدة في مصفوفات موجزة وقابلة للتطويع الرياضي والبرمجي اللاحق.
تكمن الأهمية الجوهرية لإجراء PROC SUMMARY في قدرته الفائقة على التعامل مع الهياكل البيانية ذات الأحجام الضخمة والمستويات التصنيفية المتشعبة دون استنزاف مفرط للذاكرة الحاسوبية، متفوقاً بذلك على العديد من المقاربات التحليلية التقليدية. وسواء كانت الغاية هي استكشاف الخصائص التوزيعية الأولية لمتغيرات كمية مستمرة، أو تفكيك التفاعلات المعقدة بين المتغيرات الفئوية عبر مستويات هرمية متعددة، فإن هذا الإجراء يوفر بنية برمجية محكمة تجمع بين المرونة النحوية والدقة الرياضية الصارمة، مما يجعله عنصراً لا غنى عنه في خطوط المعالجة الآلية للبيانات وإعداد التقارير الإحصائية المعتمدة.
يهدف هذا الدليل الشامل والمفصل إلى تقديم تفكيك منهجي وتطبيقي دقيق لإجراء PROC SUMMARY في نظام SAS الإحصائي. سنستعرض عبر هذا المقال التشريح البنيوي للإجراء، ونناقش خياراته ومعاملاته المتقدمة، ونسلط الضوء على المتغيرات التلقائية الحاكمة لبنيته الداخلية، إضافة إلى استعراض أمثلة تطبيقية واقعية مستمدة من مجموعات بيانات قياسية. كما سنتناول استراتيجيات تحسين الأداء، وتكامل المخرجات مع أدوات التصور البياني ولغة الماكرو، بهدف تزويد الباحث والممارس بالمعرفة النظرية والمهارة التطبيقية اللازمة لتوظيف هذا الإجراء بكفاءة واقتدار في الأبحاث الكمية والدراسات الميدانية المعاصرة.
- 1. مقدمة شاملة حول إجراء Proc Summary في نظام SAS الإحصائي
- 2. البنية النحوية الأساسية (Syntax) لإجراء Proc Summary
- 3. تحديد المتغيرات التحليلية باستخدام عبارة VAR
- 4. توجيه وحفظ المخرجات باستخدام عبارة OUTPUT
- 5. فهم المتغيرات التلقائية: المتغير _TYPE_ والمتغير _FREQ_
- 6. تطبيق عملي: تحليل متغير كمي أحادي باستخدام مجموعة بيانات Fish
- 7. التحليل الفئوي والتصنيفي باستخدام عبارة CLASS
- 8. استخدام عبارة BY للتحليل التكراري المقسم
- 9. التحكم في مستويات التجميع عبر عبارة WAYS و TYPES
- 10. حساب المؤشرات الإحصائية المتقدمة والمخصصة
- 11. أفضل الممارسات واستكشاف الأخطاء وإصلاحها (Troubleshooting & Best Practices)
- 12. التطبيقات المتقدمة والدمج في خطوط معالجة البيانات (Data Pipelines)
- خاتمة
- References
1. مقدمة شاملة حول إجراء Proc Summary في نظام SAS الإحصائي
1.1 تعريف الإجراء PROC SUMMARY وموقعه في حزمة SAS الإحصائية
يُعرّف إجراء PROC SUMMARY وظيفياً داخل بيئة SAS Documentation بأنه أداة حسابية إحصائية متخصصة في تلخيص واحتساب المقاييس الوصفية للبيانات الرقمية عبر المتغيرات المستمرة والمستويات الفئوية المختلفة. يرتكز الإجراء على خوارزميات معالجة عالية الكفاءة تقوم بقراءة سجلات مجموعات البيانات، وتجميع القيم المتناظرة، ثم حساب المؤشرات الأساسية مثل المتوسط الحسابي، والانحراف المعياري، والوسيط، والحدود الدنيا والقصوى، إضافة إلى التكرارات ونسب التباين. وتتم هذه المعالجة عبر مسار تحليلي مرن يسمح بالتعامل المتزامن مع مصفوفات ضخمة من البيانات دون الحاجة إلى إنشاء حلقات تكرارية معقدة في لغة البرمجة الأساسية.
يحتل الإجراء موقعاً استراتيجياً في مرحلة التحليل الاستكشافي الأولي للبيانات (Exploratory Data Analysis – EDA)، حيث يُتيح للمحلل الإحصائي تكوين فهم عميق وشامل لطبيعة التوزيعات الاحتمالية، وتحديد مقاييس النزعة المركزية ومؤشرات التشتت قبل الشروع في بناء النماذج الاستدلالية المتقدمة كالنماذج الخطية المعممة أو سلاسل الانحدار المعقدة. وعلاوة على ذلك، يبرز دور الإجراء كأداة هندسية لتحويل البيانات (Data Transformation Engine)، حيث يقوم بضغط آلاف أو ملايين السجلات الفردية وتلخيصها في هياكل جدولية مركزة وموجزة تعكس السلوك الإحصائي للظاهرة المدروسة عبر مختلف المستويات التصنيفية بدقة تامة.
1.2 المقارنة المنهجية بين PROC SUMMARY و PROC MEANS
تاريخياً ومنهجياً، يشترك كل من PROC SUMMARY و PROC MEANS في نفس المحرك الحسابي والخوارزميات الإحصائية التحتية المسؤولة عن معالجة الأرقام وتقدير المقاييس الوصفية؛ فكلاهما يُنتج نفس النتائج الرياضية المتطابقة تماماً لأي مجموعة بيانات معطاة. ومع ذلك، يكمن الفارق الجوهري والتقليدي بينهما في السلوك الافتراضي لإنتاج وطباعة المخرجات. يُعد PROC MEANS إجراءً موجهاً بطبيعته نحو العرض وإعداد التقارير الفورية؛ إذ يفترض افتراضياً طباعة جدول النتائج الإحصائية في نافذة المخرجات (Output Window أو نافذة النتائج OS/HTML) حتى وإن لم يُطلب منه إنشاء مجموعة بيانات جديدة.
في المقابل، صُمم PROC SUMMARY ليكون إجراءً خلفياً صامتاً وموجهاً نحو بناء وهندسة البيانات؛ حيث لا يقوم بطباعة أي نتائج على الشاشة بشكل افتراضي إلا إذا تم تزويده صراحةً بخيار الطباعة (PRINT)، بل يركز كلياً على تصدير النتائج وحفظها ضمن مجموعات بيانات جديدة عبر عبارة OUTPUT. هذا التمايز يجعل PROC SUMMARY الخيار الأمثل والأنسب للاستخدام في خطوط معالجة البيانات المؤتمتة (Automated Data Pipelines) ونظم الإنتاج البرمجية المتسلسلة، حيث يكون الهدف الأساسي هو توليد جداول وسيطة لاستخدامها في مراحل معالجة لاحقة دون إثقال واجهة المستخدم بتقارير بصرية غير ضرورية.

1.3 أهمية التلخيص الإحصائي في الأبحاث والبيانات السلوكية والكمية
يمثل التلخيص الإحصائي ركيزة لا غنى عنها في منهجية البحث العلمي الكمي، ولا سيما في مجالات العلوم الاجتماعية، والسلوكية، والعلوم الطبية، والمسوح الميدانية واسعة النطاق. فمن خلال حساب مقاييس النزعة المركزية مثل المتوسط والوسيط، ومقاييس التشتت كالانحراف المعياري والمدى الربيعي، يتمكن الباحث من اختزال الظواهر المعقدة والمتشابكة في أطر كمية قابلة للمقارنة والتعميم، مما يسهل رصد الفروق المعنوية بين المجموعات التجريبية والضابطة، أو مقارنة استجابات الشرائح السكانية المختلفة عبر الزمن.
علاوة على ذلك، يوفر التلخيص الإحصائي وسيلة دقيقة لفحص جودة العينات المجمعة والتحقق من سلامتها البنيوية؛ إذ يسمح باكتشاف الأنماط التوزيعية غير النمطية، ورصد القيم الشاذة والمتطرفة التي قد تعزى إلى أخطاء في القياس أو الإدخال، وتقييم حجم البيانات المفقودة وتأثيرها على القوة الإحصائية للدراسة. إن إجراء هذا النوع من التلخيص المنهجي عبر أدوات قوية مثل PROC SUMMARY يضمن للباحثين استناد استنتاجاتهم واختباراتهم الفرضية اللاحقة إلى قواعد بيانات منقحة، ومتسقة، وموثوقة إحصائياً.
2. البنية النحوية الأساسية (Syntax) لإجراء Proc Summary
2.1 الصيغة العامة للأمر PROC SUMMARY والمعاملات الأساسية
تتميز البنية النحوية لإجراء PROC SUMMARY في بيئة SAS بالوضوح الصارم والمرونة التركيبية العالية في آن واحد. تبدأ الشفرة البرمجية دائماً بالعبارة الرئيسية التي تعلن استدعاء الإجراء، متبوعة بمجموعة من الخيارات والمعاملات العامة التي تضبط سلوك التحليل ومستوى دقة النتائج ونوعية المخرجات المطلوبة. وتنتهي الكتلة البرمجية دائماً بعبارة RUN الإلزامية التي تُعطي الإشارة لمترجم SAS للبدء في تنفيذ العمليات المحددة ومعالجة البيانات المتدفقة.
تتضمن العبارة الأساسية للإجراء خيارات جوهرية تتحكم في شكل التحليل، مثل تحديد عدد الخانات العشرية المعروضة للمقاييس الإحصائية من خلال معامل MAXDEC=، وتفعيل الطباعة المرئية للنتائج عبر خيار PRINT، إضافة إلى خيارات التحكم في دقة التوزيعات الرياضية وتحديد مستويات الأهمية الإحصائية. إن الالتزام بقواعد البناء التركيبي وإنهاء كل عبارة برمجية بفاصلة منقوطة (;) يمثل المبدأ الحاكم لمنع أخطاء الترجمة النحوية وضمان التنفيذ المتسق للأوامر.
2.2 تحديد مجموعات البيانات المدخلة عبر عبارة DATA=
تُعد عبارة DATA= الخيار المحوري المسؤول عن توجيه إجراء PROC SUMMARY نحو جدول البيانات المستهدف للتحليل. وفي حال إغفال هذا الخيار، يقوم نظام SAS افتراضياً باستخدام آخر مجموعة بيانات تم إنشاؤها أو تعديلها في جلسة العمل الحالية (تُعرف باسم _LAST_). ومع ذلك، تتطلب الممارسات البرمجية الرصينة تحديد مصدر البيانات صراحةً، سواء كان ذلك بالإشارة إلى مجموعة بيانات مؤقتة داخل مكتبة العمل الافتراضية (WORK.Dataset_Name) أو مكتبة دائمة معرفة مسبقاً (Library.Dataset_Name).
تتيح عبارة DATA= أيضاً استخدام معلمات مجموعات البيانات المتقدمة (Dataset Options) لتصفية السجلات وتقييد تدفق البيانات قبل بدء التحليل؛ مثل استخدام خيار (WHERE=(Condition)) لتطبيق شروط تصفية منطقية دقيقة على المشاهدات المدخلة، أو خيار (OBS=n) لتحديد عدد محدد من السجلات لأغراض الاختبار والمعاينة السريعة. كما يمكن استخدام خيارات التحكم في الأعمدة مثل (KEEP=) و (DROP=) للحد من استهلاك الذاكرة عبر قراءة المتغيرات المعنية بالتحليل الإحصائي فقط، وهو ما يعزز كفاءة المعالجة وسرعة التنفيذ عند التعامل مع قواعد بيانات ضخمة.
2.3 إدارة القيم المفقودة والخيارات العامة (MISSING Option)
تمثل إدارة القيم المفقودة (Missing Values) أحد أدق الجوانب المنهجية في التحليل الإحصائي. يتعامل إجراء PROC SUMMARY بشكل افتراضي مع القيم المفقودة في المتغيرات الكمية عن طريق استبعادها من حساب المقاييس الوصفية لكل متغير على حدة، مع توثيق عدد المشاهدات الصحيحة المكتملة في المؤشر N، وعدد القيم المفقودة في المؤشر NMISS. أما بالنسبة للمتغيرات التصنيفية والفئوية، فإن السلوك الافتراضي يقضي باستبعاد أي مشاهدة تحتوي على قيمة مفقودة في أي متغير تصنيفي من التحليلات التجميعية للمجموعات.
لتغيير هذا السلوك وضمان عدم فقدان السجلات التي تحتوي على بيانات تصنيفية ناقصة، يُتيح SAS خيار MISSING العام، والذي يتم تضمينه مباشرة في عبارة PROC SUMMARY الرئيسية أو ضمن عبارة CLASS. يؤدي تفعيل هذا الخيار إلى معاملة القيمة المفقودة في المتغير الفئوي كفئة تصنيفية مستقلة وقائمة بذاتها، مما يسمح بحساب المؤشرات الإحصائية للمشاهدات المرتبطة بها وعرضها ضمن جدول النتائج، وهو أمر بالغ الأهمية عند تحليل استبانات المسوح التي تحتوي على أسئلة اختيارية أو فئات امتناع عن الإجابة.
3. تحديد المتغيرات التحليلية باستخدام عبارة VAR
3.1 وظيفة عبارة VAR وقواعد اختيار المتغيرات الكمية
تؤدي عبارة VAR (Analysis Variables Statement) دوراً محورياً وتوجيهياً داخل إجراء PROC SUMMARY؛ إذ تُخبر الإجراء بصورة قاطعة بالمتغيرات المستمرة والكمية المراد استخراج مؤشراتها وإحصاءاتها الوصفية. وبدون هذه العبارة، يحاول الإجراء افتراضياً تحليل جميع المتغيرات الرقمية الموجودة في مجموعة البيانات المدخلة، وهو ما قد يؤدي إلى هدر موارد المعالجة وحساب إحصاءات لا معنى لها لمتغيرات رقمية تُعبر في الأصل عن معرّفات رمزية أو أكواد تصنيفية (مثل أرقام الهويات أو الرموز البريدية).
تفرض قواعد لغة SAS أن تكون جميع المتغيرات المدرجة في قائمة عبارة VAR متغيرات رقمية (Numeric Variables) حصراً؛ حيث يؤدي تمرير أي متغير نصي أو حرفي (Character Variable) داخل هذه العبارة إلى توقف فوري لعملية التنفيذ مع تسجيل خطأ نحوي صريح في سجل النظام (SAS Log). ولذلك، يتعين على المحلل التأكد التام من الخصائص التخزينية والأنماط القياسية للمتغيرات قبل إدراجها ضمن مصفوفة التحليل الكمي.
3.2 التعامل مع المتغيرات المتعددة وتأثيرها على جدول المخرجات
يدعم إجراء PROC SUMMARY إمكانية إدراج مصفوفة متكاملة من المتغيرات التحليلية دفعة واحدة داخل عبارة VAR، مع توفير صيغ واختصارات برمجية مرنة لكتابة القوائم الطويلة. يمكن للمحلل كتابة أسماء المتغيرات مفصولة بمسافات بسيطة، أو استخدام اختصارات النطاق الموضعي والاسمي (Variable Lists)؛ مثل استخدام الشفرة (Var1-Var10) للإشارة إلى سلسلة متتالية من المتغيرات ذات الترقيم الرقمي، أو استخدام النمط الموضعي (FirstVar–LastVar) لتضمين جميع المتغيرات الواقعة بين متغيرين محددين في الترتيب الهيكلي لملف البيانات.
عند تضمين متغيرات تحليلية متعددة، يقوم الإجراء بحساب المقاييس المطلوبة لكل متغير بصورة متوازية ودقيقة. ويؤدي ذلك إلى تشكيل جدول مخرجات منظم يحتوي على أعمدة متخصصة لكل مقياس إحصائي مقترن بكل متغير تحليلي، مما يسمح بالحصول على نظرة بانورامية شاملة للمتغيرات المتعددة ومقارنة تبايناتها وتمركزاتها في جدول تلخيصي موحد يسهل قراءته وتصديره إلى التقارير التحليلية النهائية.
3.3 إدارة المتغيرات ذات القيم الشاذة والتوزيعات الملتوية
عند التعامل مع متغيرات تحليلية تتسم بالالتواء الشديد (Skewed Distributions) أو تحتوي على قيم شاذة ومتطرفة (Outliers)، يصبح الاعتماد الحصري على مقاييس النزعة المركزية التقليدية كالمتوسط الحسابي مضللاً من الناحية المنهجية. وفي مثل هذه البيئات البيانية، يُتيح إجراء PROC SUMMARY عبر خيارات عبارة VAR وعبارة OUTPUT طلب مقاييس مقاومة للتطرف (Robust Statistics)، مثل الوسيط (MEDIAN) والمدى الربيعي (IQR) والنسب المئينية المتقدمة، لتقديم تمثيل واقعي وأكثر صدقاً للمجتمع الإحصائي.
يوفر التحليل الاستكشافي عبر PROC SUMMARY أداة تشخيصية أولية حاسمة لعزل المتغيرات التي تعاني من تشوهات توزيعية حادة؛ حيث يمكن من خلال موازنة قيم المتوسط مع قيم الوسيط، وفحص المدى الكلي بين القيمتين الصغرى والعظمى (MIN و MAX)، الحكم المبدئي على مدى اعتدالية التوزيع (Normality). يُمكّن هذا الفحص الباحث من اتخاذ قرارات منهجية مبكرة، مثل تطبيق تحويلات لوغاريتمية أو استبعاد المشاهدات المشبوهة، قبل المضي قدماً في إجراء التحليلات المتقدمة.
4. توجيه وحفظ المخرجات باستخدام عبارة OUTPUT
4.1 بناء جملة OUTPUT OUT= لإنشاء مجموعات بيانات جديدة
تمثل عبارة OUTPUT القلب النابض لإجراء PROC SUMMARY والمحرك الأساسي لقوته البرمجية؛ فهي العبارة المسؤولة عن تحويل المؤشرات الإحصائية المحسوبة في الذاكرة الحسابية المؤقتة للنظام إلى جدول بيانات مهيكل ودائم أو مؤقت داخل بيئة SAS. يتم صياغة هذه العبارة باستخدام الكلمة المفتاحية OUTPUT متبوعة بالمعامل الحاسم OUT= متبوعاً بالاسم المختار لمجموعة البيانات الناتجة، مثل:
OUTPUT OUT=WORK.SummaryResults;
تسمح هذه الآلية بنقل نتائج التلخيص بسلاسة متناهية من طور الحساب المجرد إلى طور التخزين المنظم؛ حيث يولد النظام جدولاً يحتوي على جميع المتغيرات التصنيفية المستخدمة، والمتغيرات الإحصائية المحسوبة، إضافة إلى المتغيرات التلقائية الهيكلية التي تعكس بنية التجميع. وتُعد مجموعة البيانات الناتجة هذه كائناً برمجياً مستقلاً يمكن استدعاؤه لاحقاً بواسطة أي إجراء إحصائي أو رسومي آخر في بيئة SAS لإجراء معالجات إضافية أو تصديرها لأنظمة قواعد البيانات الخارجية.
4.2 تخصيص الإحصاءات المستهدفة وإعادة تسمية المتغيرات
تمنح عبارة OUTPUT الباحث تحكماً دقيقاً ومطلقاً في نوعية المؤشرات الإحصائية المراد تخزينها داخل الجدول الناتج وتسمية الأعمدة المخصصة لها. فبدلاً من حفظ المقاييس الافتراضية فحسب، يمكن للمبرمج تحديد الكلمات المفتاحية للإحصاءات المستهدفة متبوعة بإشارة المساواة والاسم الجديد للمتغير المراد إنشاؤه، مثل كتابة (MEAN=AverageValue STD=StdDeviation MEDIAN=MedianScore).
كما يوفر إجراء PROC SUMMARY ميزة التسمية التلقائية عبر خيار AUTONAME الملحق بعبارة OUTPUT. عند تفعيل هذا الخيار، يقوم النظام تلقائياً بتوليد أسماء أعمدة فريدة تجمع بين اسم المتغير الأصلي واسم المقياس الإحصائي المحسوب (مثل Weight_Mean و Weight_StdDev و Height_Mean)، وهو ما يوفر وقتاً كبيراً ويمنع تداخل الأسماء والالتباس البرمجي عند تحليل مصفوفات واسعة النطاق تحتوي على العشرات من المتغيرات في آن واحد.
4.3 هندسة جدول المخرجات واستخدامه في المراحل التحليلية اللاحقة
إن المخرجات الناتجة عن عبارة OUTPUT ليست مجرد جداول نصية نهائية، بل هي هياكل بيانية مهندسة وقابلة لإعادة التوظيف في سلاسل العمل الإحصائية المعقدة (Downstream Analytical Pipelines). فعلى سبيل المثال، تُستخدم هذه الجداول الملخصة كمدخلات مباشرة لتغذية النماذج الخطية المعممة، أو إجراءات التحليل العاملي، أو حساب الدرجات المعيارية (Z-Scores) عبر دمج المتوسطات والانحرافات المعيارية المحسوبة مع ملف البيانات الأصلي من خلال عبارة MERGE في خطوة DATA Step.
بالإضافة إلى ذلك، يمكن التحكم في هندسة وتجريد ملف الإخراج من خلال استخدام خيارات عبارة OUTPUT المتقدمة لتقليص حجم البيانات، مثل استبعاد المتغيرات التلقائية غير المرغوبة باستخدام خيار DROP=، أو قصر الحفظ على أعلى المستويات الفئوية تفصيلاً. هذا التخصيص البنيوي يضمن بقاء خطوط المعالجة خفيفة وسريعة وخالية من الحقول الزائدة التي قد تؤثر سلباً على أداء التطبيقات الكبرى.
5. فهم المتغيرات التلقائية: المتغير _TYPE_ والمتغير _FREQ_
5.1 الدلالة الرياضية والتركيبية لمتغير _TYPE_
عند توليد أي جدول مخرجات باستخدام إجراء PROC SUMMARY عبر عبارة CLASS، يقوم نظام SAS تلقائياً بإنشاء متغير نظامي رقمي بالغ الأهمية يُعرف بالمتغير _TYPE_. يمثل هذا المتغير ترميزاً رياضياً ثنائياً (Binary) يتم تحويله إلى قيمة عشرية، ويُعبر بدقة متناهية عن المستوى الهرمي للتجميع وتوليفة المتغيرات الفئوية المساهمة في حساب كل صف من صفوف جدول المخرجات.
تأخذ القيمة _TYPE_ = 0 دلالة خاصة وثابتة في الإجراء؛ إذ تُشير دائماً إلى التحليل الإجمالي الكلي الشامل (Grand Total) المحسوب عبر جميع مشاهدات العينة دون أي تقسيم فئوي. ومع زيادة تعقيد التحليل وتداخل المتغيرات التصنيفية، تتصاعد قيمة _TYPE_ لتشير إلى التجميعات الجزئية لكل متغير على حدة، وصولاً إلى أعلى قيمة عددية لـ _TYPE_ والتي تُمثل التفاعل الكامل والتقاطع الشامل لجميع المتغيرات التصنيفية المدرجة. كما يمكن استخدام الخيار CHARTYPE في عبارة الإجراء لعرض _TYPE_ في صورة سلسلة نصية من الأصفار والآحاد (مثل “01” و “11”)، مما يسهل قراءتها برمجياً وفهم الأبعاد الداخلة في كل مستوى تجميع.
5.2 دور متغير التكرار _FREQ_ في التحقق من صحة العينات
يُمثل المتغير التلقائي الثاني _FREQ_ العمود الفقري لمراقبة الجودة الإحصائية داخل جداول مخرجات PROC SUMMARY. يُسجل هذا المتغير العددي التكرار الفعلي لعدد المشاهدات أو السجلات المستمدة من مجموعة البيانات الأصلية والتي ساهمت فعلياً في تكوين وحساب المؤشرات الإحصائية الموضحة في الصف المعني من جدول النتائج.
تكمن الأهمية التحليلية الفائقة لمتغير _FREQ_ في تمكين الباحث من الكشف الفوري عن الفئات غير الممثلة تمثيلاً كافياً (Underrepresented Groups) أو الخلايا التجريبية ذات الأحجام الصغيرة جداً، والتي قد تؤدي إلى تقديرات إحصائية غير مستقرة أو تباينات مفرطة. علاوة على ذلك، يُستخدم _FREQ_ كمعامل أوزان أساسي عند إجراء اختبارات إحصائية تجميعية أو عند مراجعة توازن التصاميم التجريبية المعقدة لضمان صدق النتائج وقابليتها للتعميم.

5.3 تصفية المخرجات بناءً على قيم _TYPE_ باستخدام شروط WHERE
نظراً لأن جدول المخرجات الافتراضي لإجراء PROC SUMMARY يشتمل على كافة مستويات التجميع الهرمية بدءاً من الإجمالي العام (_TYPE_=0) وحتى المستويات الفرعية التفصيلية، فإن هذا الجدول قد يتضمن سجلات تفوق حاجة الباحث في مراحل التحليل اللاحقة. هنا تبرز أهمية تطبيق شروط التصفية المنطقية باستخدام عبارة WHERE للتحكم الدقيق في السجلات المحفوظة أو المقروءة.
يمكن للمبرمج كتابة شرط تصفية مباشر مثل (WHERE _TYPE_ = 3) للاحتفاظ حصراً بصفوف التقاطع التصنيفي الكامل وتجاهل المجاميع الفرعية والإجمالية. وكبديل برمجي أنيق ومباشر لكتابة شروط WHERE المتعددة، يوفر إجراء PROC SUMMARY الخيار الشهير NWAY في عبارة الإجراء الرئيسية؛ حيث يوجه هذا الخيار النظام تلقائياً للاحتفاظ فقط بالمشاهدات المقابلة لأعلى مستوى تجميع تفصيلي (أي أعلى قيمة لمتغير _TYPE_)، مما يؤدي إلى تقليص حجم ملف الإخراج وتبسيطه للتحليلات الإحصائية والرسومية المباشرة.
6. تطبيق عملي: تحليل متغير كمي أحادي باستخدام مجموعة بيانات Fish
6.1 استكشاف مجموعة بيانات sashelp.Fish وهيكلها الإحصائي
لتطبيق المفاهيم النظرية التي تم تناولها بصورة عملية ورصينة، سنعتمد على واحدة من أشهر مجموعات البيانات القياسية المدمجة في نظام SAS، وهي مجموعة بيانات sashelp.Fish المستمدة من أبحاث البيولوجيا البحرية والقياسات الحيوية. تشتمل هذه المجموعة على 159 مشاهدة حقيقية تُمثل سبعة أنواع مختلفة من الأسماك، وتتضمن متغيرات فيزيائية وقياسية متعددة مثل الوزن، والأطوال القياسية، والارتفاع، وعرض الجسم.
قبل الشروع في تطبيق إجراءات التلخيص، تقتضي المنهجية التحليلية فحص البنية الهيكلية لملف البيانات ومعاينة سجلاته الأولى للتأكد من مسميات المتغيرات وأنماطها القياسية. يمكن تحقيق ذلك عبر تشغيل إجراء PROC PRINT لعرض المشاهدات الأولى كما يلي:
PROC PRINT DATA=sashelp.Fish(OBS=10);
RUN;
يُظهر الفحص الأولي أن متغير الوزن (Weight) هو المتغير الكمي المستمر الرئيسي المعبر عن الكتلة الحيوية للأسماك المقاسة بالجرام، وهو متغير يتسم بتباين واسع واختلافات ملحوظة تستدعي حساب وتلخيص مؤشراته الإحصائية بدقة.
6.2 كتابة وتطبيق كود PROC SUMMARY لتحليل متغير الوزن (Weight)
سنقوم الآن ببناء شفرة برمجية متكاملة تستخدم إجراء PROC SUMMARY لحساب حزمة شاملة من المؤشرات الإحصائية الوصفية لمتغير الوزن (Weight)، تشمل عدد المشاهدات الفعلي (N)، والمتوسط الحسابي (Mean)، والانحراف المعياري (Std Dev)، والوسيط (Median)، وأدنى وزن (Min)، وأعلى وزن (Max). سيتم توجيه هذه النتائج وحفظها في جدول مخرجات مخصص باسم WORK.summaryWeight، ثم عرضه عبر PROC PRINT كما توضحه الشفرة التالية:
PROC SUMMARY DATA=sashelp.Fish;
VAR Weight;
OUTPUT OUT=WORK.summaryWeight
N=FishCount
MEAN=AvgWeight
STD=StdWeight
MEDIAN=MedWeight
MIN=MinWeight
MAX=MaxWeight;
RUN;
PROC PRINT DATA=WORK.summaryWeight NOOBS;
RUN;
تُبرز هذه الشفرة كيفية السيطرة الكاملة على هيكل جدول الإخراج، حيث تم استبعاد الأرقام التلقائية المربكة وتسمية كل مؤشر إحصائي باسم وصفي ذي دلالة واضحة ومباشرة تُسهل قراءته وتفسيره في التقارير الإحصائية اللاحقة.
6.3 قراءة وتفسير المخرجات الإحصائية وجدول التلخيص
عند فحص جدول النتائج الناتج من الشفرة السابقة، نجد أن متغير _FREQ_ يحمل القيمة 159 (وهو الحجم الكلي لعينات الأسماك في الملف)، بينما يُظهر المتغير المخصص FishCount القيمة 158. يشير هذا التباين البسيط والدقيق إلى وجود قيمة مفقودة واحدة (Missing Value) في متغير الوزن داخل مجموعة البيانات الأصلية، وهي معلومة تشخيصية بالغة الأهمية ما كان للباحث أن يلحظها بسهولة دون تدقيق مؤشرات التلخيص الإحصائي.
وبالانتقال إلى مؤشرات النزعة المركزية والتشتت، يُظهر الجدول أن متوسط وزن الأسماك يبلغ حوالي 398.33 جراماً بانحراف معياري قدره 359.03 جراماً، بينما يبلغ الوسيط 272.50 جراماً. إن الفارق الإحصائي الواضح بين المتوسط والوسيط (كون المتوسط أعلى بكثير من الوسيط)، إلى جانب المدى الشاسع بين أدنى وزن (0.00 جرام لأسماك صغيرة جداً) وأعلى وزن (1650.00 جرام)، يكشف بوضوح عن التواء إيجابي قوي (Right-Skewed Distribution) في توزيع الأوزان، مما يُنبه المحلل إلى ضرورة الحذر عند تطبيق الاختبارات المعلمية التي تفترض الاعتدالية التامة للتوزيع.
7. التحليل الفئوي والتصنيفي باستخدام عبارة CLASS
7.1 مبادئ استخدام عبارة CLASS لتقسيم العينات وتصنيفها
تُمثل عبارة CLASS إحدى أقوى الأدوات المنهجية المتاحة في إجراء PROC SUMMARY لإجراء التحليلات الإحصائية الوصفية المقسمة عبر المجموعات والشرائح الفئوية. تتيح هذه العبارة للباحث تحديد متغير أو أكثر من المتغيرات التصنيفية (سواء كانت رقمية أو نصية) لتقسيم العينة الإجمالية إلى مجموعات فرعية، واحتساب كافة المقاييس الإحصائية المطلوبة لكل مجموعة على حدة بشكل متزامن ومنظم.
بتطبيق هذا المفهوم على مجموعة بيانات الأسماك، يمكننا دراسة الخصائص الإحصائية لمتغير الوزن مقسماً حسب نوع السمكة عبر إدراج متغير Species داخل عبارة CLASS كما في الشفرة التالية:
PROC SUMMARY DATA=sashelp.Fish;
CLASS Species;
VAR Weight;
OUTPUT OUT=WORK.SpeciesSummary
MEAN=MeanWeight
STD=StdDevWeight
N=SampleN;
RUN;
يولد هذا التنفيذ جدولاً هرمياً متكاملاً يحتوي على صفوف مخصصة لكل نوع من أنواع الأسماك السبعة (مثل Bream, Perch, Pike, Roach, Smelt وغيرها) بمتوسطاتها وتشتتاتها المستقلة، متوجاً بصف إجمالي يمثل كامل العينة، مما يوفر رؤية مقارنة فورية للفروق الحيوية بين الأنواع.

7.2 التعامل مع مستويات المتغيرات التصنيفية المتعددة
لا تقتصر قدرات عبارة CLASS على التحليل أحادي البعد، بل تمتد لتشمل استيعاب متغيرات تصنيفية متعددة في آن واحد لدراسة التفاعلات المتقاطعة بين عدة عوامل تجريبية أو ديموغرافية (مثل تصنيف العينة حسب النوع وحسب الفئة العمرية وحسب المنطقة الجغرافية). عند إدراج أكثر من متغير في عبارة CLASS، يقوم إجراء PROC SUMMARY تلقائياً ببناء مصفوفة كاملة من التوليفات والتقاطعات التصنيفية الممكنة.
يقوم الإجراء بإنشاء مستويات التجميع الهرمية المتسلسلة؛ حيث يُنتج إحصاءات الإجمالي العام أولاً، ثم إحصاءات التجميع الأحادي لكل متغير تصنيفي بمفرده، وصولاً إلى إحصاءات الخلايا التفاعلية متعددة الأبعاد. وفي حال وجود خلايا فارغة (Empty Cells) أو فئات لا تحتوي على أي مشاهدات في البيانات الفعلية، فإن الإجراء يتجاوزها بكفاءة لضمان سلامة الهيكل الرياضي للنتائج وتجنب إنتاج مصفوفات غير معرفة حسابياً.
7.3 المزايا الحسابية وكفاءة الذاكرة عند استخدام عبارة CLASS
تتميز عبارة CLASS بميزة هندسية فائقة الأهمية في بنية SAS؛ وهي أنها لا تشترط الفرز المسبق لمجموعة البيانات المدخلة قبل تشغيل الإجراء. يعتمد الإجراء داخلياً على تقنيات الفهرسة وتداول الذاكرة المباشرة (RAM Hash Tables) لتجميع وتصنيف المشاهدات أثناء قراءتها المتتابعة لملف البيانات، مما يوفر وقتاً كبيراً ويختصر خطوات المعالجة البرمجية مقارنة بالإجراءات التي تتطلب ترتيباً صارماً للسجلات.
ومع ذلك، يجب على المبرمج الانتباه إلى أن هذه المعالجة الحسابية المعتمدة على الذاكرة تتطلب استهلاكاً متزايداً للذاكرة العشوائية كلما تضاعف عدد المتغيرات التصنيفية وتعددت مستوياتها الفئوية (High-Cardinality Dimensions). ولذلك، يوفر SAS خيارات متقدمة لإدارة الذاكرة مثل خيار QMARKERS وخيارات تجميع الشجرة لضمان استقرار الأداء ومنع استنزاف موارد النظام في بيئات العمل الضخمة.
8. استخدام عبارة BY للتحليل التكراري المقسم
8.1 متطلبات فرز البيانات المسبق باستخدام PROC SORT
تُعد عبارة BY البديل المنهجي الكلاسيكي لعبارة CLASS لإجراء التحليلات الإحصائية المقسمة حسب المجموعات. وتفرض قواعد نظام SAS البرمجية قاعدة صارمة وغير قابلة للاستثناء عند استخدام عبارة BY؛ وهي ضرورة أن تكون مجموعة البيانات المدخلة مرتبة ومفرزة مسبقاً بنفس الترتيب والمتغيرات المحددة في عبارة BY، أو أن تكون مفهرسة بفهرس مناسب (Indexed Dataset).
لذلك، يتطلب مسار العمل باستخدام عبارة BY تنفيذ إجراء الفرز الإحصائي PROC SORT أولاً قبل استدعاء PROC SUMMARY، كما يتضح في النموذج التالي:
PROC SORT DATA=sashelp.Fish OUT=WORK.SortedFish;
BY Species;
RUN;
PROC SUMMARY DATA=WORK.SortedFish;
BY Species;
VAR Weight;
OUTPUT OUT=WORK.BySpeciesSummary MEAN=MeanWeight;
RUN;
في حال محاولة تشغيل PROC SUMMARY مع عبارة BY على بيانات غير مفرزة، سيتوقف المترجم فوراً عن العمل مسجلاً خطأ خروج البيانات عن التسلسل (Data set is not sorted in ascending sequence error) في سجل النظام.
8.2 الفروق التقنية والإحصائية بين مخرجات عبارة CLASS وعبارة BY
تختلف فلسفة وطبيعة المخرجات الناتجة عن عبارة CLASS اختلافاً جذرياً عن نظيرتها الناتجة عن عبارة BY. عند استخدام عبارة CLASS، يقوم الإجراء بإنشاء جدول بيانات موحد ومتكامل يحتوي على كافة المستويات الهرمية من خلال متغير _TYPE_، متضمناً الإجمالي العام والمجاميع الجزئية لكل المتغيرات.
أما عند استخدام عبارة BY، فإن الإجراء يتعامل مع كل مجموعة فرعية كوحدة إحصائية منفصلة ومعزولة تماماً عن باقي المجموعات؛ حيث يُنتج جدول مخرجات يحتوي فقط على النتائج الخاصة بكل فئة من فئات المتغير BY دون توليد أي صف للإجمالي العام الشامل للبيانات (_TYPE_ لا يأخذ القيمة 0 إطلاقاً هنا بل يقتصر على مستوى التجميع المقابل لمجموعة BY). كما يختلف الجدول الناتج في خلوه من التعقيد الهرمي، مما يجعله شبيهاً بنمط الجداول المسطحة (Flat Tables).
8.3 حالات الاستخدام المثلى لعبارة BY في مجموعات البيانات الضخمة
على الرغم من اشتراط الفرز المسبق، تظل عبارة BY هي الخيار الذهبي والأكثر تفضيلاً عند معالجة مجموعات البيانات الهائلة والعملاقة (Big Data Streams) التي تتجاوز سعتها الحجم المتاح في الذاكرة العشوائية المباشرة للجهاز (RAM). يعود ذلك إلى أن معالجة عبارة BY تعتمد على خوارزمية المعالجة المتدفقة المقسمة (Out-of-Core Processing)؛ حيث يقرأ النظام بيانات كل مجموعة فئوية على حدة، ويجري حساباتها الإحصائية ويصدر نتائجها، ثم يُفرغ الذاكرة فوراً لاستقبال المجموعة التالية.
هذا النمط الحسابي الموفر للموارد يضمن عدم انهيار برامج التحليل بسبب امتلاء الذاكرة (Out-of-Memory Errors)، مما يجعل عبارة BY الخيار الأمثل للأنظمة المصرفية، وشركات الاتصالات، ومعالجة السجلات الطبية المليونية، وكذلك في بيئات معالجة الدفعات المؤتمتة (Batch Processing) على الخوادم المركزية.
9. التحكم في مستويات التجميع عبر عبارة WAYS و TYPES
9.1 دور عبارة WAYS في تحديد أبعاد التفاعل التصنيفي
عند تضمين عدة متغيرات تصنيفية في عبارة CLASS، يولد إجراء PROC SUMMARY افتراضياً كافة التباديل والأبعاد الممكنة للتجميع. للتحكم في هذا السلوك وتقييد عمق التحليل، توفر لغة SAS عبارة WAYS المتخصصة. تُعرّف عبارة WAYS أبعاد التفاعل العددي المراد الاحتفاظ بها في جدول المخرجات، بدءاً من البعد الصفري (0-way) الذي يُمثل الإجمالي العام، مروراً بالأبعاد الأحادية (1-way)، والثنائية (2-way)، وصولاً إلى البعد الكامل (n-way).
فعلى سبيل المثال، إذا كان لدينا ثلاثة متغيرات تصنيفية في عبارة CLASS، وأردنا استخراج الإحصاءات الأحادية لكل متغير بمفرده والإحصاءات الثنائية لتفاعلات الأزواج فقط دون الرغبة في رؤية التفاعل الثلاثي المعقد أو الإجمالي الكلي، يمكننا ببساطة صياغة العبارة كما يلي:
WAYS 1 2;
توفر هذه العبارة أداة قوية لتنقية المخرجات والحد من تضخم حجم الجداول التلخيصية بأسلوب برمجي موجز ومحكم رياضياً.
9.2 استخدام عبارة TYPES لاختيار توليفات تصنيفية محددة بدقة
بينما تعمل عبارة WAYS على تحديد مستويات التجميع بناءً على عدد المتغيرات المتفاعلة بشكل عام، تمنح عبارة TYPES الباحث جراحية برمجية متناهية في اختيار توليفات وتقاطعات تصنيفية عينية ومحددة بالاسم. تتيح عبارة TYPES للمحلل طلب تجميعات خاصة جداً، مثل طلب التفاعل بين المتغيرين (A*B) مع التجميع المنفصل للمتغير (C)، مع إسقاط وتجاهل كافة التوليفات الرياضية الأخرى المحتملة.
تتم كتابة عبارة TYPES بتحديد المتغيرات المطلوبة مفصولة بإشارة الضرب (*) للتقاطعات، أو بمسافات بسيطة للتجميعات المنفصلة، كما في النموذج التالي:
TYPES A*B C;
يؤدي استخدام هذه العبارة إلى توفير هائل في وقت المعالجة الحسابية؛ إذ يوجه النظام إلى عدم إهدار دورات المعالج في حساب التوليفات غير المستهدفة، وهو ما يُعد تطبيقاً مثالياً لمبادئ الكفاءة والتحسين في هندسة البيانات التحليلية المتقدمة.
9.3 تطبيق خيار NWAY لتحسين كفاءة التقارير وجداول المخرجات
يُمثل الخيار NWAY أحد أكثر الخيارات استخداماً وشهرة بين مبرمجي ومحللي SAS المحترفين. يتم إدراج هذا الخيار كمعامل مباشر في عبارة PROC SUMMARY الرئيسية (مثل PROC SUMMARY DATA=Dataset NWAY;). وتتمثل وظيفته الأساسية في توجيه الإجراء للاحتفاظ حصرياً بسجلات أعلى مستوى تفاعلي وتفصيلي للمتغيرات التصنيفية المدرجة في عبارة CLASS.
يؤدي تفعيل خيار NWAY إلى الإسقاط التلقائي لكافة المجاميع الفرعية الجزئية والمجموع الكلي العام من جدول المخرجات الناتج، مما يُنتج جدولاً نقياً ومسطحاً يُمثل خلايا التقاطع الفئوي الدقيقة فقط. هذا الخيار لا غنى عنه عند إعداد مجموعات البيانات المجهزة للرسم البياني وتوليد المخططات المقارنة، أو عند تحضير البيانات للدخول في نماذج الانحدار والتحليل التبايني (ANOVA)، حيث تكون الحاجة مقتصرة فقط على بيانات الخلايا التفصيلية دون مجاميعها الهرمية.
10. حساب المؤشرات الإحصائية المتقدمة والمخصصة
10.1 حساب مقاييس التشتت والنزعة المركزية المتقدمة
يتجاوز إجراء PROC SUMMARY حدود حساب المتوسط والانحراف المعياري ليوفر ترسانة متكاملة من المقاييس الإحصائية المتقدمة التي تلبي متطلبات التحليل الرياضي الصارم. يتيح الإجراء حساب مقاييس تشتت متقدمة مثل التباين (VAR)، والخطأ المعياري لمتوسط العينة (STDERR)، ومعامل الاختلاف النسبي (CV) الذي يقيس مقدار التشتت منسوباً إلى المتوسط كنسبة مئوية تفيد في مقارنة تشتت متغيرات ذات مقاييس قياس مختلفة.
وعلاوة على ذلك، يدعم الإجراء استخراج المؤشرات المتقدمة لشكل التوزيع الاحتمالي، كمعامل الالتواء (SKEWNESS) الذي يقيس درجة عدم التماثل حول المتوسط، ومعامل التفرطح (KURTOSIS) الذي يقيس مدى تدبب التوزيع وثقل أطرافه مقارنة بالتوزيع الطبيعي المعياري، كما هو موضح في الشفرة التالية:
PROC SUMMARY DATA=sashelp.Fish;
VAR Weight;
OUTPUT OUT=WORK.AdvancedStats
VAR=Weight_Var
STDERR=Weight_StdErr
CV=Weight_CV
SKEWNESS=Weight_Skew
KURTOSIS=Weight_Kurt;
RUN;
تُمكن هذه المؤشرات الباحثين من التحقق الدقيق من الفروض التوزيعية للنماذج الإحصائية وضمان توافق البيانات مع متطلبات الاختبارات البارامترية.

10.2 استخراج المئينيات والرتب المئوية (Percentiles & Quantiles)
تكتسب المئينيات والرتب المئوية أهمية استثنائية في التحليلات السلوكية، والاختبارات النفسية، والدراسات الاقتصادية لتحديد مستويات الدخل ومؤشرات التفاوت الطبقي. يمتلك إجراء PROC SUMMARY دعماً شاملاً ومباشراً لاستخراج كافة الرتب المئينية بدقة متناهية عبر مجموعة واسعة من الكلمات المفتاحية المدمجة.
يتيح الإجراء استدعاء الربيعيات الأساسية مثل الربيع الأدنى (Q1 أو P25)، والوسيط (MEDIAN أو P50)، والربيع الأعلى (Q3 أو P75)، والمدى الربيعي (QRANGE)، إضافة إلى المئينيات الطرفية والحساسة مثل (P1, P5, P10, P90, P95, P99). تُعد هذه المقاييس الأساس الرياضي المتين لإنشاء المخططات الصندوقية (Box Plots)، وتحديد درجات القطع المعيارية (Cut-off Scores)، واستبعاد الحالات الشاذة والمتطرفة في الدراسات السريرية والميدانية المتقدمة.
10.3 حساب فترات الثقة الإحصائية (Confidence Limits)
في سياق الاستدلال الإحصائي وتعميم نتائج العينات على المجتمعات الأصلية، يوفر إجراء PROC SUMMARY إمكانية الحساب التلقائي لحدود فترات الثقة للوسط الحسابي عبر الكلمات المفتاحية المخصصة: LCLM (الحد الأدنى لفترة الثقة للوسط الحسابي) و UCLM (الحد الأعلى لفترة الثقة للوسط الحسابي). وتستند هذه الحسابات إلى توزيع t-Student لتقدير المدى الذي يقع ضمنه متوسط المجتمع الحقيقي بدرجة يقين إحصائي محددة.
كما يتيح الإجراء للمحلل التحكم الكامل في مستوى الدلالة الإحصائية من خلال معامل ALPHA= في عبارة الإجراء الرئيسية. فبتحديد الخيار (ALPHA=0.05)، يقوم النظام باحتساب حدود فترة الثقة بمستوى ثقة 95%، بينما يؤدي تحديد (ALPHA=0.01) إلى رفع مستوى الثقة إلى 99%. يوفر هذا التكامل وسيلة سريعة وموثوقة لتقدير معالم المجتمعات وتوثيق فترات عدم اليقين القياسي في التقارير والأبحاث العلمية المنشورة.
11. أفضل الممارسات واستكشاف الأخطاء وإصلاحها (Troubleshooting & Best Practices)
11.1 معالجة مشكلات القيم المفقودة وتأثيرها على حساب الإحصاءات
تتطلب الإدارة الاحترافية لإجراء PROC SUMMARY إدراكاً عميقاً للفروق الجوهرية بين آليات التعامل مع القيم المفقودة. يُطبق الإجراء افتراضياً مبدأ الحذف الزوجي (Pairwise Deletion) عند حساب المقاييس الإحصائية للمتغيرات الكمية في عبارة VAR؛ حيث يتم استبعاد القيمة المفقودة فقط من حسابات المتغير الخاص بها دون التأثير على حسابات المتغيرات الأخرى لنفس المشاهدة، وهو ما قد يؤدي إلى اختلاف قيمة N الفعالة من متغير لآخر داخل نفس جدول النتائج.
أما في المتغيرات الفئوية (عبارة CLASS)، فإن وجود قيمة مفقودة واحدة في أي متغير يؤدي تلقائياً إلى الحذف الشامل (Listwise Deletion) لتلك المشاهدة من جميع التجميعات الفئوية. ولتجنب هذا الفقد غير المقصود في حجم العينة وضمان الشفافية الإحصائية، يُنصح دائماً بتفعيل خيار MISSING لتوثيق فئات القيم المفقودة صراحةً، ومراجعة متغير NMISS دورياً للتحقق من نسب الاكتمال في قواعد البيانات قبل اعتماد النتائج النهائية.
11.2 تحسين سرعة التنفيذ وإدارة الذاكرة في قواعد البيانات الضخمة
عند التعامل مع قواعد بيانات ضخمة تحتوي على عشرات الملايين من السجلات ومئات الحقول، يصبح ترشيد استهلاك الموارد عاملاً حاسماً لنجاح التحليل. تتضمن أفضل الممارسات الهندسية في هذا الصدد استخدام معلمات KEEP= أو DROP= في عبارة DATA= لقصر تدفق البيانات على المتغيرات الضرورية للتحليل فقط، مما يقلل بشكل كبير من عمليات القراءة والكتابة على القرص الصلب (I/O Operations).
بالإضافة إلى ذلك، يُنصح بضبط خيارات النظام الحسابية مثل THREADS لتمكين المعالجة المتوازية متعددة الأنوية (Multithreading)، والتي تتيح لإجراء PROC SUMMARY توزيع العمليات الحسابية وتلخيص البيانات عبر عدة معالجات في وقت واحد. كما يمكن ضبط معامل SUMSIZE= لتخصيص مساحة ذاكرة كافية لجداول التجميع المؤقتة، مما يمنع بطء التنفيذ الناتج عن تبادل البيانات مع وحدات التخزين المؤقتة على القرص.
11.3 الأخطاء البرمجية الشائعة وطرق تصحيحها في سجل SAS Log
يُمثل سجل النظام (SAS Log) النافذة التشخيصية الأولى لأي مبرمج لاكتشاف وتصحيح الأخطاء البرمجية والمنطقية. ومن أكثر الأخطاء الشائعة عند استخدام PROC SUMMARY محاولة إدراج متغير نصي داخل عبارة VAR، حيث يُسجل النظام فوراً رسالة خطأ صريحة تنص على وجود متغير غير متوافق (Variable is character, should be numeric). يتم تصحيح ذلك إما بنقل المتغير إلى عبارة CLASS أو تحويله لمتغير رقمي عبر دالة INPUT في خطوة DATA Step مسبقة.
ومن الأخطاء المتكررة أيضاً نسيان تشغيل PROC SORT قبل استخدام عبارة BY، مما يولد رسالة خطأ الترتيب؛ ويكون حلها بتطبيق الفرز الفوري. كما يتعين على المحلل الانتباه لرسائل التنبيه والتحذير (NOTES & WARNINGS) المتعلقة بوجود قيم صفرية للتباين أو وجود خلايا ذات تكرار مساوٍ للواحد (N=1)، حيث يتعذر في هذه الحالات حساب الانحراف المعياري وفترات الثقة، مما يستدعي مراجعة توزيع العينة وتصميم التحليل.
12. التطبيقات المتقدمة والدمج في خطوط معالجة البيانات (Data Pipelines)
12.1 دمج مخرجات PROC SUMMARY مع PROC SGPLOT للتمثيل البياني
يُشكل التكامل الوثيق بين إجراءات التلخيص الإحصائي وإجراءات التصور البياني المتقدم في SAS مساراً فائق الفعالية لإنتاج أشكال ورسوم بيانية عالية الجودة للنشر العلمي. من خلال توجيه مخرجات PROC SUMMARY المنقحة عبر خيار NWAY إلى جدول وسيط، يمكن استدعاء إجراء الرسم الإحصائي PROC SGPLOT مباشرة لتمثيل المتوسطات وفترات الثقة وأشرطة الأخطاء المعيارية عبر الفئات المختلفة بدقة واحترافية.
يوضح النموذج التالي كيفية ربط جدول التلخيص المحسوب لبيانات الأسماك لإنشاء رسم بياني شريطي يحتوي على حدود فترات الثقة 95% لكل نوع من أنواع الأسماك:
PROC SUMMARY DATA=sashelp.Fish NWAY;
CLASS Species;
VAR Weight;
OUTPUT OUT=WORK.PlotData
MEAN=AvgWeight
LCLM=LowerCL
UCLM=UpperCL;
RUN;
PROC SGPLOT DATA=WORK.PlotData;
HBAR Species / RESPONSE=AvgWeight
LIMITSLOWER=LowerCL
LIMITSUPPER=UpperCL
LIMITSTAT=CL;
YAXIS LABEL=”نوع السمكة (Species)”;
XAXIS LABEL=”متوسط الوزن بالجرام مع فترات الثقة 95%”;
RUN;
يضمن هذا التكامل أتمتة إنتاج المخططات العلمية ونقل القيم المحسوبة بدقة رياضية متناهية إلى وسائط العرض البصري دون الحاجة إلى إدخال يدوي للبيانات.
12.2 استخدام PROC SUMMARY ضمن لغة الماكرو (SAS Macro Language)
تصل قوة إجراء PROC SUMMARY إلى ذروتها عند دمجه ضمن بيئة SAS Macro Language لبناء تطبيقات وحلول معالجة مؤتمتة وقابلة لإعادة الاستخدام عبر مصفوفات واسعة من المتغيرات ومجموعات البيانات الديناميكية. تتيح لغة الماكرو صياغة دوال تكرارية تُطبق الإجراء على قوائم متغيرة، ثم تستخرج النتائج الإحصائية وتخزنها مباشرة في متغيرات ماكرو عامة (Macro Variables) باستخدام روتين CALL SYMPUTX في خطوة معالجة تالية.
تُستخدم هذه التقنية المتقدمة في بناء نظم الرقابة الإحصائية على العمليات (Statistical Process Control)، وأتمتة فحوصات تدقيق جودة البيانات اليومية، وتوليد عتبات المعايرة الديناميكية التي تُغذي نماذج التعلم الآلي والتنبؤ الإحصائي في المنظومات المؤسسية الكبرى دون تدخل بشري يدوي مستمر.
12.3 إعداد وتصدير جداول المخرجات للنشر العلمي والتقارير الأكاديمية
يمثل تصدير النتائج الإحصائية بصيغ مهنية متوافقة مع معايير النشر الدولية الخطوة الختامية لأي مشروع تحليلي ناجح. عبر الاستعانة بنظام تسليم المخرجات ODS (Output Delivery System) في SAS، يمكن تحويل مخرجات PROC SUMMARY وجداولها التجميعية إلى تقارير منسقة بجودة النشر بصيغ متعددة مثل PDF، و RTF (المتوافقة مع برامج تحرير النصوص كالـ Word)، وجداول Excel التفاعلية.
يتيح نظام ODS تطبيق قوالب التنسيق المخصصة، وتطبيق التنسيقات الشرطية (Conditional Formatting) لتمييز المؤشرات الحرجة، وإعادة تسمية الترويسات وضبط الهوامش لتتطابق كلياً مع أدلة النشر العلمي المعتمدة، مثل دليل الجمعية الأمريكية لعلم النفس (APA Style Guide) المعمول به في الدراسات النفسية والتربوية والاجتماعية، مما يوفر للباحث مساراً متكاملاً ينتقل بالبيانات من طور التجميع الأولي إلى طور النشر الأكاديمي الرصين بأعلى مستويات الدقة والاحترافية.
خاتمة
يمثل إجراء PROC SUMMARY أداة محورية وحجر زاوية لا غنى عنه في ترسانة البرمجة الإحصائية لنظام SAS. فمن خلال بنيته النحوية الرصينة، ومرونته الفائقة في التعامل مع المتغيرات المستمرة والتصنيفية عبر عبارات VAR و CLASS و BY، يوفر هذا الإجراء حلاً متكاملاً وشديد الكفاءة لمعالجة وتلخيص وضغط البيانات الضخمة والمعقدة. وتتيح قدرته الفريدة على هندسة جداول المخرجات، والتحكم في أبعاد التجميع عبر WAYS و TYPES و NWAY، وتوليد المقاييس الوصفية والمتقدمة وفترات الثقة، بناء خطوط معالجة بيانات مؤتمتة وموثوقة تدعم التحليلات المتقدمة والتمثيل البياني الاحترافي.
إن إتقان آليات عمل هذا الإجراء وفهم دلالات متغيراته التلقائية مثل _TYPE_ و _FREQ_ يُمكّن الباحثين ومحللي البيانات من استكشاف الأنماط الكامنة في البيانات بدقة متناهية، والتحقق من افتراضات النماذج الرياضية، وضمان تطبيق أرقى المعايير المنهجية في دراساتهم وأبحاثهم الكمية، مما يعزز صدق الاستنتاجات وقيمتها التطبيقية والأكاديمية في مختلف ميادين المعرفة.
References
- Cody, R. (2018). Learning SAS by Example: A Programmer’s Guide (2nd ed.). SAS Institute Inc. https://www.sas.com/store/books/categories/usage-and-reference/learning-sas-by-example-a-programmer-s-guide-second-edition/prodBK_69042_en.html
- Delwiche, L. D., & Slaughter, S. J. (2019). The Little SAS Book: A Primer (6th ed.). SAS Institute Inc. https://www.sas.com/store/books/categories/getting-started-with-sas/the-little-sas-book-a-primer-sixth-edition/prodBK_69145_en.html
- SAS Institute Inc. (2023). Base SAS 9.4 Procedures Guide: Statistical Procedures (7th ed.). SAS Institute Inc. https://documentation.sas.com/doc/en/pgmsascdc/9.4_3.5/proc/p02d3345h88e6wn1n5z54z81kfq7.htm
- SAS Institute Inc. (2023). SAS/STAT 15.3 User’s Guide. SAS Institute Inc. https://support.sas.com/documentation/onlinedoc/stat/index.html
- Tukey, J. W. (1977). Exploratory Data Analysis. Addison-Wesley Publishing Company. https://www.pearson.com
- American Psychological Association. (2020). Publication Manual of the American Psychological Association (7th ed.). American Psychological Association. https://doi.org/10.1037/0000165-000