يحتل التحسين الرياضي والعددي مكانة محورية في صميم الإحصاء التطبيقي وعلوم البيانات المعاصرة؛ إذ يعتمد استخلاص الاستدلالات الدقيقة وتدريب النماذج المعقدة على خوارزميات رصينة قادرة على استكشاف الفضاءات البارامترية متعددة الأبعاد. ففي معظم الأحيان، تعجز الحلول التحليلية الجبرية المباشرة (Closed-form Solutions) عن تقديم تقديرات لمعلمات النماذج غير الخطية أو النماذج المعقدة ذات القيود المكانية، مما يفرض اللجوء إلى تقنيات التقريب التكراري والخوارزميات العددية للوصول إلى القيم التي تقلل دوال الخسارة أو تعظم دوال الإمكان.
تُعد لغة R الإحصائية إحدى أقوى البيئات البرمجية المجهزة بأدوات حسابية متطورة لإجراء التحسين العددي، وتبرز دالة optim كأداة معيارية ومرنة لا غنى عنها للباحثين والإحصائيين. توفر هذه الدالة واجهة موحدة تجمع بين طيف واسع من الخوارزميات الكلاسيكية والحديثة، بدءاً من أساليب البحث المباشر غير المعتمدة على المشتقات مثل طريقة نيلدر-ميد، وصولاً إلى خوارزميات شبه نيوتن والأساليب المقيدة مثل L-BFGS-B والتلدين المحاكى.
يهدف هذا الدليل المرجعي الشامل إلى تفكيك البنية البرمجية والنظرية لدالة optim، واستعراض آليات عمل خوارزمياتها المتعددة، مع تقديم تحليل تطبيقي مفصل خطوة بخطوة من خلال مثالين عمليين: تقدير معاملات الانحدار الخطي البسيط، وتقدير معاملات نموذج الانحدار التربيعي غير الخطي. كما يتطرق المقال إلى سبل تشخيص مشكلات التقارب الحسابي، وإدارة مصفوفة هيسيان لاستخراج الأخطاء المعيارية، مما يمكّن الممارسين من تطويع الدالة باحترافية في أبحاثهم ومشاريعهم الإحصائية المتقدمة.
- 1. مقدمة عامة حول التحسين العددي ودالة optim في R
- 2. البنية التركيبية العامة وصيغة دالة optim
- 3. خوارزميات وطرق التحسين المتاحة في دالة optim
- 4. فهم وتفسير مخرجات دالة optim
- 5. المثال الأول: تقدير معاملات الانحدار الخطي البسيط
- 6. التنفيذ العملي وتحليل مخرجات الانحدار الخطي بواسطة optim
- 7. المثال الثاني: تقدير معاملات نموذج الانحدار التربيعي
- 8. التحليل التطبيقي ومقارنة أداء النموذج التربيعي
- 9. معالجة مشكلات التقارب وحساسية القيم الابتدائية
- 10. التحكم المتقدم في دالة optim عبر خيار control
- 11. مقارنة دالة optim مع أدوات التحسين الأخرى في R
- 12. أفضل الممارسات والتوجيهات المنهجية لتطبيق دالة optim
- خاتمة
- المراجع (References)
1. مقدمة عامة حول التحسين العددي ودالة optim في R
1.1 مفهوم التحسين الرياضي والعددي في التحليل الإحصائي
يُعرَّف التحسين الرياضي والعددي (Numerical Optimization) بأنه العملية المنهجية التي تهدف إلى إيجاد القيم المدخلة (المعلمات البارامترية) التي تجعل دالة رياضية معينة تبلغ قيمتها القصوى أو الدنيا ضمن مجال محدد. في سياق النمذجة الإحصائية، تتجسد هذه العملية في البحث عن متجهات المعلمات التي تقلل دوال التكلفة أو الخسارة (Loss Functions)، أو تعظم دوال الإمكان (Likelihood Functions) للبيانات المرصودة. إن هذه المقاييس تمثل المعيار الأساسي لجودة مطابقة النموذج الرياضي للظاهرة الواقعية قيد الدراسة.
تكمن الأهمية الجوهرية للتحسين العددي في سد الفجوة التي تعجز الرياضيات التحليلية الصرفة عن معالجتها. فبينما تتيح النماذج الخطية البسيطة اشتقاق صيغ جبرية صريحة مغلقة (Closed-form Solutions)—مثل معادلات المربعات الصغرى العادية (OLS) حيث يتم حل المعادلة عبر ضرب المصفوفات—فإن التعقيد يتصاعد بصورة حادة عند التعامل مع النماذج غير الخطية، أو النماذج المعممة، أو الدوال التي تتضمن دوالاً مركبة وكسوراً وتراكيب متقطعة. في هذه السيناريوهات، تصبح المعادلات المشتقة غير قابلة للحل الجبري المباشر، وتغدو الطرق العددية التقريبية التكرارية (Iterative Numerical Methods) هي الوسيلة العلمية الوحيدة لإيجاد الحلول المثلى بأعلى درجات الدقة الممكنة.
تعتمد الطرق التقريبية على توليد سلسلة من التقديرات المتتالية التي تبدأ من نقطة انطلاق أولية، وتتحرك تدريجياً عبر الفضاء البارامتري بالاستناد إلى معلومات الانحدار أو التدرج أو تقييمات الدالة المباشرة، حتى يستقر البحث عند نقطة التقارب (Convergence) التي تحقق أدنى خطأ إحصائي ممكن، وهو ما يؤسس لمنطق التحليل الإحصائي الحسابي الحديث.
1.2 موقع دالة optim ضمن بيئة R الإحصائية
تتمتع دالة optim بمكانة تاريخية ومعيارية رائدة داخل النواة الأساسية لحزمة stats في لغة R. صُممت الدالة لتكون منصة عامة وشاملة (General-purpose Optimization Wrapper) تجمع أشهر خوارزميات التحسين العددي متعدد الأبعاد تحت مظلة برمجية ذات مدخلات ومخرجات موحدة ومحددة بوضوح، مما يغني الباحث عن استخدام دوال متفرقة لكل خوارزمية على حدة.
تتجلى مرونة دالة optim في قدرتها الفائقة على معالجة المسائل غير الخطية المعقدة ذات الأبعاد المتعددة، سواء كانت تلك الدوال ملساء وقابلة للاشتقاق أو تتضمن انحناءات حادة وتعرجات وعرة في فضاء المعلمات. تتيح الدالة للمستخدم حرية الاختيار بين أساليب التحسين الخالية من المشتقات (Derivative-free Methods) والأساليب المعتمدة على التدرج التحليلي (Gradient-based Methods)، مما يوفر توازناً عملياً بين البساطة الحسابية والكفاءة التنفيذية العالية.
علاوة على ذلك، تعمل دالة optim كمحرك حسابي باطني تعتمد عليه العديد من الدوال والحزم الإحصائية المتقدمة في R؛ فالعديد من دوال النمذجة الاقتصادية القياسية، وتحليل البقاء (Survival Analysis)، والنماذج الخطية المعممة المختلطة (GLMM)، وحزم السلاسل الزمنية تعتمد في بنيتها التحتية على استدعاءات مهيأة لدالة optim لتقدير معلمات نماذجها، مما يجعل إتقان التعامل المباشر مع هذه الدالة خطوة بالغة الأهمية لأي ممارس يسعى لفهم ما يدور خلف كواليس النمذجة الإحصائية المتقدمة.
1.3 أهمية التحسين المخصص في النمذجة المتقدمة
على الرغم من وفرة الدوال الجاهزة في R مثل lm() لنماذج الانحدار الخطي وglm() للنماذج المعممة، إلا أن التطبيقات الإحصائية والبحثية المتطورة تصطدم دوماً بحدود هذه الدوال المعدة مسبقاً. تبرز الحاجة الماسة للتحسين المخصص (Custom Optimization) عندما يقوم الباحث ببناء دوال احتمالية معقدة، أو عند اشتقاق توزيعات احتمالية مخصصة لا تنتمي إلى العائلة الأسية القياسية، أو عند صياغة دوال خسارة تفرض عقوبات غير متماثلة على الأخطاء التنبؤية.
تظهر هذه الأهمية جلياً في مجالات متقدمة مثل القياس النفسي (Psychometrics) ونظرية الاستجابة للمفردة (Item Response Theory)، حيث تُصاغ نماذج متعددة المعلمات لوصف سلوك الأفراد، وكذلك في النمذجة السلوكية والمالية التي تفرض قيوداً اقتصادية صارمة على قيم المعلمات الرياضية، مثل فرض حدود دنيا وعليا لمعدلات المخاطرة أو تفضيلات الوقت. إن استخدام دوال التحسين العامة يتيح مرونة مطلقة في صياغة الفرضيات دون التقيد بالافتراضات المسبقة للحزم الإحصائية المغلقة.
بالإضافة إلى ذلك، يسهم التحسين المخصص في رفع دقة التقدير الإحصائي وتجاوز مشكلات التقدير التي تنشأ عن البيانات غير المتوازنة أو ظواهر الانفصال التام (Complete Separation)، حيث يتيح للباحث التحكم الكامل في مسار التقارب، وضبط شروط التسامح العددي، وتطبيق قيود النطاق البارامتري، مما يضمن الحصول على نتائج متسقة وقابلة للتفسير العلمي الرصين.
2. البنية التركيبية العامة وصيغة دالة optim
2.1 المعامل par: تحديد القيم الابتدائية للمعلمات
يمثل المعامل par (Parameters) المتجه الأولي لقيم المعلمات التي تبدأ منها خوارزمية التحسين رحلتها الاستكشافية في الفضاء العددي. يُعد هذا المتجه نقطة الانطلاق الحيوية التي تحدد المسار الحسابي للبحث؛ حيث تتأثر الخوارزميات التكرارية بدرجة كبيرة بموضع البداية، وتستخدمه لتقييم الدالة وحساب الخطوات اللاحقة للتحديث.
يشترط في صياغة المتجه par أن يكون متجهاً عددياً رقمياً (Numeric Vector) يتطابق طوله تماماً مع عدد المعلمات المجهولة المراد تقديرها داخل دالة الهدف. يجب تجنب إدخال قيم فارغة (NA) أو قيم غير معرفة (NaN) أو سلاسل نصية ضمن هذا المتجه؛ إذ يتسبب ذلك في توقف الخوارزمية فوراً وإصدار أخطاء في التنفيذ البرمجي.
تزداد حساسية نقطة البداية كلما تعقدت دالة الهدف وارتفعت أبعادها الهندسية. ففي الفضاءات البارامترية الوعرة التي تحتوي على عدة قمم وقيعان، قد يؤدي اختيار قيم ابتدائية بعيدة جداً عن النطاق المنطقي إلى بطء شديد في التقارب، أو حدوث طفو حسابي (Numerical Overflow)، أو استقرار الخوارزمية في نقاط صغرى محلية غير مرغوبة، مما يستوجب توظيف المعرفة النظرية المسبقة لتحديد قيم ابتدائية معقولة وقريبة من الحل الحقيقي المتوقع.
2.2 المعامل fn: صياغة دالة الهدف المراد تصغيرها أو تعظيمها
يُعد المعامل fn (Function) ركيزة عملية التحسين برمتها، حيث يمثل الدالة البرمجية التي تصف العلاقة الرياضية المراد تصغير قيمتها (أو تعظيمها). تشترط دالة optim أن تقبل هذه الدالة كمدخل أول متجهاً رقمياً يمثل المعلمات (المناظرة للمتجه par)، بحيث تقوم بحساب العمليات الرياضية بناءً على هذه القيم وإرجاع قيمة عددية قياسية مفردة (Single Scalar Value).
إن الشرط الجوهري المتمثل في إرجاع قيمة قياسية واحدة هو الضابط الرياضي الذي تعتمد عليه خوارزميات التحسين للمقارنة بين جودة النقاط المختلفة في الفضاء البارامتري. إذا قامت الدالة بإرجاع متجه أو مصفوفة، ستفشل عملية التحسين وتتوقف لعدم إمكانية إجراء المقارنة الترتيبية الأحادية بين التكرارات المتتالية.
تتنوع دوال الهدف وفقاً للهدف الإحصائي؛ ففي مسائل تقدير الانحدار، تُصاغ fn عادة كدالة لمجموع مربعات البواقي (Residual Sum of Squares) أو متوسط الخطأ المطلق (Mean Absolute Error). أما في تطبيقات التقدير الاحتمالي، فتُصاغ الدالة لتكون دالة اللوغاريتم السالب للإمكان (Negative Log-Likelihood)، حيث يؤدي تصغير هذه القيمة السالبة حسابياً إلى تعظيم دالة الإمكان الأصلية للبيانات.
2.3 تمرير البيانات والمعاملات الإضافية عبر data و …
نادراً ما تعمل دوال الهدف الإحصائية على المعلمات البارامترية بمعزل عن الملاحظات الواقعية؛ إذ تتطلب عملية الحساب توفير مجموعات البيانات التي تشمل المتغيرات التابعة والمستقلة. تتيح دالة optim آلية مرنة وأنيقة لتمرير هذه البيانات والوسائط الإضافية من خلال معامل النقاط الثلاث ... (Ellipsis).
يسمح المعامل ... للمستخدم بتمرير أي كائنات إضافية—مثل إطارات البيانات (Data Frames)، أو المتجهات المنفصلة، أو مصفوفات الأوزان، أو الثوابت الرياضية—مباشرة إلى دالة optim، والتي تقوم بدورها بتمريرها تلقائياً وبكل شفافية كمدخلات إضافية إلى دالة الهدف fn أثناء كل استدعاء تكراري للتقييم.
لتعزيز مقروءة الكود الحسابي وتنظيمه داخل دالة الهدف، يُوصى باستخدام دالة with() عند التعامل مع إطارات البيانات الممررة. يتيح استخدام with(data, ...) الإشارة المباشرة إلى أسماء الأعمدة والمتغيرات داخل إطار البيانات دون الحاجة إلى التكرار الممل لرمز الدولار data$variable، مما يقلل من الأخطاء البرمجية ويجعل بنية المعادلات الرياضية داخل الدالة واضحة ونظيفة ومتطابقة مع الصياغة النظرية.
3. خوارزميات وطرق التحسين المتاحة في دالة optim
3.1 طريقة Nelder-Mead الافتراضية للتحسين البسيط
تُعد خوارزمية نيلدر-ميد (Nelder-Mead) الطريقة الافتراضية المعتمدة في دالة optim عند عدم تحديد معامل الطريقة method صراحة. تنتمي هذه الطريقة إلى فئة أساليب البحث المباشر (Direct Search Methods)، وتعتمد في تشغيلها على مفهوم هندسي يُعرف باسم “السيمبلكس” (Simplex)، وهو مجسم هندسي متعدد السطوح يتألف من $N + 1$ من النقاط في فضاء المعلمات ذي الأبعاد $N$.
تتحرك الخوارزمية عبر الفضاء البارامتري من خلال تطبيق سلسلة من العمليات الهندسية التكرارية تشمل: الانعكاس (Reflection)، والتمدد (Expansion)، والانكماش الخارجي والداخلي (Contraction)، والتقليص (Shrinkage). يتم تقييم قيمة الدالة عند كل رأس من رؤوس السيمبلكس، ثم يتم استبدال الرأس الأسوأ بنقطة جديدة محسنة، مما يسمح للمجسم بالتدحرج والانزلاق والتكيف مع تضاريس الدالة نحو القاع المستهدف دون الحاجة لحساب أي مشتقات تفاضلية.
تتميز طريقة Nelder-Mead بمتانتها الفائقة وقدرتها على العمل بكفاءة مع الدوال المتقطعة أو المشوشة (Noisy Functions) أو تلك التي تحتوي على انقطاعات طفيفة حيث يتعذر حساب المشتقات. ومع ذلك، فإن نقطة ضعفها الأساسية تتجسد في بطئها النسبي مقارنة بالطرق المعتمدة على التدرج، وتراجع كفاءتها الحسابية بصورة ملحوظة في المسائل ذات الأبعاد العالية (أكثر من 10 إلى 20 معلمة)، فضلاً عن إمكانية توقفها المبكر عند نقاط غير مثلى في بعض التضاريس المعقدة.
3.2 طريقة BFGS والأساليب المعتمدة على المشتقات
سُميت طريقة BFGS نسبة إلى واضعيها الأربعة (Broyden, Fletcher, Goldfarb, Shanno)، وتُعد واحدة من أرقى وأقوى خوارزميات التحسين العددي المنتمية إلى عائلة أساليب “شبه نيوتن” (Quasi-Newton Methods). تستهدف هذه الطريقة الدوال الرياضية الملساء والمستمرة القابلة للاشتقاق، وتتميز بسرعتها الفائقة في التقارب مقارنة بطرق البحث المباشر.
تعتمد فلسفة خوارزمية BFGS على الاستفادة من معلومات التدرج (Gradient) لتحديد اتجاه الانحدار الأكثر حدة، وفي الوقت نفسه تقوم ببناء تقريب تكراري تدريجي لمعكوس مصفوفة هيسيان (Hessian Matrix)—التي تمثل المشتقات الجزئية من الدرجة الثانية—دون الحاجة إلى حساب تلك المصفوفة الضخمة مباشرة في كل خطوة، مما يوفر تكلفة حاسوبية هائلة مع الاحتفاظ بخصائص تقارب نيوتن التربيعية السريعة.
في دالة optim، تستطيع خوارزمية BFGS تقريب التدرج عددياً باستخدام الفروق المنتهية (Finite Differences)، ولكن لتحقيق أعلى مستويات الدقة والسرعة الحسابية، يمكن للمستخدم تزويد الدالة بالتدرج التحليلي الصريح عبر المعامل gr. يؤدي توفير دالة التدرج التحليلي إلى تقليل عدد التقييمات الحسابية بصورة جذرية وتفادي أخطاء التقريب الرقمي الناتجة عن الفروق المحدودة.
3.3 طريقة L-BFGS-B للتحسين مع القيود المكانية
تمثل خوارزمية L-BFGS-B امتداداً هندسياً متخصصاً لخوارزمية BFGS، حيث يشير الحرف “L” إلى استخدام الذاكرة المحدودة (Limited-memory) بينما يشير الحرف “B” إلى معالجة القيود الصندوقية (Box Constraints). تتيح هذه الطريقة للباحث فرض حدود دنيا وعليا صارمة على قيم المعلمات الرياضية المراد تقديرها عبر المعاملين lower وupper.
تتجلى الأهمية الإحصائية لفرض القيود الصندوقية في ضمان بقاء التقديرات البارامترية ضمن النطاقات المنطقية المقبولة نظرياً وفيزيائياً. فعلى سبيل المثال، تتطلب معلمات مثل التباين (Variance)، والانحراف المعياري، والاحتمالات، ومعاملات التباطؤ في نماذج السلاسل الزمنية أن تظل موجبة دوماً ($> 0$) أو محصورة بين الصفر والواحد الصحيح $[0, 1]$؛ وتكفل هذه الطريقة عدم انجراف الخوارزمية نحو قيم سالبة أو غير منطقية تؤدي إلى انهيار الحسابات الرياضية كاللوغاريتمات والجذور التربيعية.
من الناحية الحسابية، تتعامل نسخة الذاكرة المحدودة مع التحديات الحسابية للمسائل واسعة النطاق من خلال تخزين عدد محدود من متجهات التحديث السابقة فقط لتوليد تقريب مصفوفة هيسيان، بدلاً من تخزين مصفوفة التغاير كاملة، مما يجعلها خياراً فائق الكفاءة ومقتصداً في استهلاك الذاكرة العشوائية للحاسوب عند التعامل مع نماذج ضخمة تحتوي على مئات أو آلاف المعلمات.
3.4 خوارزميات التلدين المحاكى (SANN) وتدرج الاقتران (CG)
توفر دالة optim خوارزميتين متقدمتين للتعامل مع سيناريوهات التحسين المعقدة والخاصة؛ الأولى هي طريقة التلدين المحاكى (Simulated Annealing – SANN)، وهي خوارزمية احتمالية عشوائية مستوحاة من العمليات الفيزيائية لتبريد وتصليد المعادن وتُعد أداة فعالة للتحسين الشامل (Global Optimization).
تتميز طريقة SANN بقدرتها الفريدة على الهروب من النقاط الصغرى المحلية (Local Minima)؛ إذ تقبل الخوارزمية في مراحلها الأولى وبشكل احتمالي خطوات تؤدي إلى تدهور قيمة دالة الهدف مؤقتاً، وتتناقص هذه الاحتمالية تدريجياً مع انخفاض “درجة الحرارة” الافتراضية للنظام. يجعل هذا السلوك من SANN خياراً استثنائياً عند التعامل مع دوال غير ملساء ومليئة بالتضاريس الوعرة والمتعرجة، على الرغم من أنها تتطلب عدداً هائلاً من التكرارات وتعد بطيئة حسابياً.
أما الطريقة الثانية فهي طريقة تدرج الاقتران (Conjugate Gradients – CG)، وتحديداً خوارزمية Fletcher-Reeves أو Polak-Ribiere المخصصة للمسائل غير الخطية واسعة النطاق. تعتمد هذه الطريقة على التحرك على طول اتجاهات مترافقة تضمن عدم إلغاء التقدم المحرز في الخطوات السابقة، وتتميز باستهلاك ضئيل جداً للذاكرة مقارنة بـ BFGS، مما يجعلها ملائمة للمشكلات الرياضية العملاقة التي تتجاوز قدرة مصفوفات التغاير التقليدية.
4. فهم وتفسير مخرجات دالة optim
4.1 تفسير قيم المعلمات المثلى ($par)
يُمثل العنصر $par النتيجة الجوهرية والنهائية لعملية التحسين؛ إذ يحتوي على المتجه الرقمي للمعلمات التي استقرت عندها الخوارزمية بعد استيفاء شروط التقارب. تُعد هذه القيم هي التقديرات النقطية المثلى (Point Estimates) التي تجعل دالة الخسارة عند أدنى مستوى ممكن أو تجعل دالة الإمكان في أعلى ذروة لها.
عند فحص المتجه $par، يجب على المحلل التأكد من مطابقة ترتيب القيم المسترجعة مع الترتيب الأصلي الذي صيغت به المعلمات داخل دالة الهدف fn والمتجه الابتدائي par. فأي خلط في ترتيب المدخلات سينعكس مباشرة على تفسير المعلمات الإحصائية المستخرجة.
من الناحية التقييمية، تتم مقارنة هذه التقديرات البارامترية بالقيم الحقيقية للمجتمع في الدراسات المحاكاة (Simulation Studies)، أو بالنتائج المستخلصة من نماذج معيارية موازية. تعكس دقة هذه القيم قدرة الخوارزمية على النفاذ عبر تضاريس الفضاء البارامتري وتجاوز التشويش الإحصائي الكامن في البيانات للوصول إلى البنية الحقيقية للعلاقة الرياضية.
4.2 فهم القيمة الدنيا لدالة الهدف ($value)
يحتوي العنصر $value على القيمة العددية القياسية التي حققتها دالة الهدف fn عند تقييمها باستخدام المعلمات المثلى الموجودة في $par. تمثل هذه القيمة القاع الرياضي الذي نجحت الخوارزمية في بلوغه، وتُعد مقياساً كمياً مباشراً لمدى جودة الحل النهائي.
في سياق نماذج الانحدار وتقدير المربعات الصغرى، تتطابق قيمة $value مباشرة مع مجموع مربعات البواقي (Residual Sum of Squares – RSS). وكلما انخفضت هذه القيمة، دل ذلك على قدرة النموذج على تفسير التباين في المتغير التابع وتقليص الفروق بين القيم المرصودة والقيم المتنبأ بها.
علاوة على ذلك، تُستخدم القيمة المستخرجة في $value كأداة مقارنة أساسية بين نماذج إحصائية متنافسة؛ ففي اختبارات نسبة الإمكان (Likelihood Ratio Tests) وحساب معايير الاختيار مثل معيار أكايكي للمعلومات (AIC) ومعيار بيز للمعلومات (BIC)، تشكل هذه القيمة المدخل الرياضي الرئيس لتقييم جودة النماذج والمفاضلة بينها بناءً على مقاييس الإمكان النهائي المعظم.
4.3 تقييم عدد مرات تكرار الخوارزمية ($counts)
يوفر العنصر $counts متجهاً تشخيصياً يتكون من عنصرين أساسيين: عدد مرات استدعاء وتقييم دالة الهدف (function)، وعدد مرات استدعاء وتقييم دالة التدرج (gradient). يقدم هذا المتجه رؤية معمقة حول الجهد الحسابي والكفاءة التنفيذية التي بذلتها الخوارزمية للوصول إلى الحل.
يعكس الارتفاع المفرط في عدد استدعاءات دالة الهدف صعوبة التضاريس الرياضية التي واجهتها الخوارزمية، مثل وجود أودية ضيقة ذات انحدارات بطيئة أو ارتباطات خطية شديدة بين المعلمات (Multicollinearity). يشير هذا السلوك إلى أن الخوارزمية اضطرت لتنفيذ خطوات استكشافية متكررة ودقيقة للتأكد من اتجاه الهبوط.
يساعد تحليل $counts المطورين في المفاضلة بين الخوارزميات المختلفة من حيث استهلاك الوقت والموارد الحاسوبية؛ فالخوارزمية التي تصل إلى نفس قيمة $value بعدد أقل بكثير من الاستدعاءات تُعد أكثر كفاءة وملاءمة للتعامل مع البيانات الضخمة أو عند تكرار التحسين آلاف المرات ضمن محاكاة مونت كارلو (Monte Carlo Simulations) أو أساليب إعادة العينات (Bootstrapping).
4.4 مؤشرات التقارب والرسائل التشخيصية ($convergence و$message)
يُعد العنصر $convergence المؤشر الحاسم لسلامة العملية الحسابية؛ إذ يرجع قيمة عددية صحيحة ترمز إلى الحالة النهائية للتحسين. تُشير القيمة 0 إلى النجاح التام للتحسين وتحقق شروط التقارب الإحصائي والعددي وفقاً لمستويات التسامح المحددة مسبقاً، مما يعني إمكانية الوثوق بالنتائج المستخرجة.
في المقابل، تشير أي قيمة غير صفرية إلى وجود خلل في مسار التقارب؛ فالرمز 1 يعني أن الخوارزمية استنفدت الحد الأقصى المسموح به لعدد التكرارات (Iteration Limit) دون الوصول إلى التقارب، وهو ما يستدعي زيادة المعامل maxit. كما تشير الرموز الأخرى (مثل 10 في طريقة Nelder-Mead) إلى فشل انحلال السيمبلكس الحسابي أو حدوث سلوك غير نمطي أثناء البحث.
أما العنصر $message، فيحتوي على نصوص ورسائل تشخيصية إضافية صادرة عن الخوارزمية (وتظهر بشكل رئيس مع طريقتي L-BFGS-B و CG). توضح هذه الرسائل الأسباب التفصيلية للتوقف، مثل الوصول إلى حدود الآلة العددية أو تطابق شروط التسامح الخطي، مما يوفر للباحث دليلاً إضافياً لتقييم مصداقية الحل العددي المحقق.
5. المثال الأول: تقدير معاملات الانحدار الخطي البسيط
5.1 صياغة مسألة الانحدار الخطي كمشكلة تحسين رياضي
يُعرف الانحدار الخطي البسيط كنموذج إحصائي يصف العلاقة بين متغير تابع $y$ ومتغير مفسر $x$ عبر معادلة خط مستقيم تأخذ الصورة الرياضية التالية:
$$y_i = \beta_0 + \beta_1 x_i + \varepsilon_i$$
حيث تمثل $\beta_0$ حد المقطع (Intercept)، و$\beta_1$ معامل الميل (Slope)، بينما تمثل $\varepsilon_i$ الأخطاء العشوائية أو البواقي المستقلة والمتماثلة التوزيع بمتوسط صفري وتباين ثابت.
لتحويل هذه الصياغة الإحصائية إلى مسألة تحسين رياضي عددي، يتم استخدام معيار المربعات الصغرى العادية (Ordinary Least Squares – OLS)، حيث تُعرف دالة الهدف بأنها مجموع مربعات البواقي (Residual Sum of Squares – RSS). وتأخذ هذه الدالة الشكل التالي:
$$RSS(\beta_0, \beta_1) = \sum_{i=1}^n \left( y_i – (\beta_0 + \beta_1 x_i) \right)^2$$
يتمثل الهدف الرياضي في العثور على المتجه البارامتري $\mathbf{\beta}^* = (\beta_0^*, \beta_1^*)^T$ الذي يُحقق أدنى قيمة ممكنة لدالة الخسارة $RSS$، أي:
$$\mathbf{\beta}^* = arg\min_{\beta_0, \beta_1} RSS(\beta_0, \beta_1)$$
يتحول الانحدار الخطي بهذا المفهوم من مجرد مسألة إحصائية إلى مسألة بحث عددي عن إحداثيات القاع في سطح مكافئ إهليلجي ثنائي الأبعاد.
5.2 إعداد وتجهيز مجموعة البيانات التجريبية في R
لتطبيق عملية التحسين عملياً، نقوم ببناء مجموعة بيانات محاكاة نتحكم في معلماتها الحقيقية، مما يتيح لنا مقارنة نتائج التحسين بالقيم الحقيقية بدقة متناهية. نحدد المعلمات الحقيقية لتكون $\beta_0 = 5$ للمقطع، و $\beta_1 = 3$ للميل، مع إضافة تشويش عشوائي يتبع التوزيع الطبيعي المعياري.
يتم توليد إطار البيانات df في بيئة R عبر الكود التالي:
set.seed(123)
x_vals <- seq(1, 20, length.out = 100)
noise <- rnorm(100, mean = 0, sd = 2)
y_vals <- 5 + 3 * x_vals + noise
df <- data.frame(x = x_vals, y = y_vals)
يُظهر فحص بنية البيانات أن لدينا 100 مشاهدة لمتغيرين مستمرين. يكشف التمثيل البياني لنقاط البيانات عبر مخطط التشتت (Scatter Plot) عن وجود علاقة خطية موجبة قوية وواضحة جداً بين المتغير المستقل $x$ والمتغير التابع $y$، تتخللها بعض التغيرات العشوائية الطفيفة الناتجة عن حد الخطأ، وهي بنية مثالية لاختبار قدرة دالة optim على تقدير المعلمات الأصلية بدقة.
5.3 بناء دالة تصغير مجموع مربعات البواقي برمجياً
تتمثل الخطوة المحورية في كتابة دالة برمجية بلغة R تقوم بحساب مجموع مربعات البواقي بناءً على مدخلات المعلمات والبيانات. نطلق على هذه الدالة اسم min_residuals، وتُصاغ بحيث تستقبل المتجه par وإطار البيانات data كمدخلات أساسية.
يتم بناء الدالة على النحو التالي:
min_residuals <- function(par, data) {
with(data, {
b0 <- par[1]
b1 <- par[2]
y_pred <- b0 + b1 * x
residuals <- y - y_pred
return(sum(residuals^2))
})
}
تتميز هذه الدالة بالمتانة والبساطة الحسابية؛ حيث يُستخرج المقطع من العنصر الأول par[1] والميل من العنصر الثاني par[2]. وباستخدام بيئة with()، يتم حساب القيم التنبؤية y_pred ثم طرحها من القيم الفعلية y، وتربيع الفروق وجمعها لإرجاع قيمة قياسية واحدة تمثل مجموع مربعات الأخطاء. تضمن العمليات المتجهة (Vectorized Operations) المضمنة في R سرعة حسابية فائقة وتجنب التكرار الحلقي البطيء.
6. التنفيذ العملي وتحليل مخرجات الانحدار الخطي بواسطة optim
6.1 تطبيق دالة optim بالقيم الابتدائية المحددة
بعد تجهيز البيانات ودالة الهدف، يتم استدعاء دالة optim من خلال تزويدها بمتجه القيم الابتدائية ودالة الهدف والبيانات المساعدة. نختار متجهاً ابتدائياً بسيطاً وبعيداً نسبياً عن القيم الحقيقية لاختبار قدرة الخوارزمية على التقارب، وليكن $\mathbf{par}_0 = (0, 1)^T$.
يتم تنفيذ الاستدعاء البرمجي في R كالتالي:
opt_linear <- optim(
par = c(0, 1),
fn = min_residuals,
data = df
)
يقوم هذا الأمر بتشغيل خوارزمية Nelder-Mead الافتراضية للبحث في الفضاء ثنائي الأبعاد. عند انتهاء التنفيذ، يُرجع R كائناً قائماً بذاته من نوع القائمة (List) يخزن كافة النتائج التشخيصية والبارامترية تحت المتغير opt_linear.
6.2 استخراج معاملات الميل والمقطع وتفسيرها إحصائياً
عند طباعة محتويات الكائن opt_linear، نحصل على المخرجات التحليلية التالية:
$par
[1] 5.093414 2.991207
$value
[1] 364.5273
$counts
function gradient
73 NA
$convergence
[1] 0
يُظهر استعراض المعلمات في $par أن التقدير العددي للمقطع $\hat{\beta}_0$ بلغ $5.0934$، بينما بلغ تقدير معامل الميل $\hat{\beta}_1$ القيمة $2.9912$. تُعد هذه النتائج قريبة جداً من المعلمات الحقيقية للمجتمع ($\beta_0 = 5$ و $\beta_1 = 3$)، مما يؤكد نجاح عملية التحسين.
إحصائياً، يُفسر المقطع $5.0934$ بأنه القيمة المتوقعة للمتغير التابع $y$ عندما تنعدم قيمة المتغير المستقل ($x = 0$). أما معامل الميل $2.9912$ فيشير إلى أنه مع زيادة المتغير المستقل بمقدار وحدة واحدة، يرتفع المتغير التابع في المتوسط بمقدار $2.9912$ وحدة. وتدل القيمة $convergence = 0 على أن الخوارزمية بلغت حالة التقارب المستقر بنجاح تام بعد 73 تقييماً لدالة الهدف.
6.3 مطابقة نتائج optim مع دالة lm() القياسية في R
للتحقق الأكاديمي من كفاءة التحسين العددي، نقوم بمقارنة هذه المخرجات التقديرية بالحل التحليلي الدقيق المشتق جبرياً باستخدام الدالة القياسية lm() في R عبر الكود التالي:
fit_lm <- lm(y ~ x, data = df)
coef(fit_lm)
تُظهر مخرجات دالة lm() المعاملات التحليلية التالية:
(Intercept) x
5.093018 2.991225
تكشف المقارنة الرياضية الدقيقة بين معاملات optim ومعاملات lm عن تطابق شبه تام حتى المرتبة العشرية الثالثة والرابعة. إن الفروق الطفيفة جداً في المراتب العشرية المتقدمة (أقل من $0.0004$) هي ظاهرة طبيعية ومتوقعة تماماً في التحليل العددي؛ إذ تعتمد خوارزمية Nelder-Mead على إيقاف البحث عندما يصبح حجم السيمبلكس أصغر من حد التسامح المعياري (Tolerance Threshold)، بينما تعتمد lm() على التفكيك المصفوفي المباشر عبر تحليل QR، مما يثبت صحة وسلامة تطبيق دالة optim في حل مسائل الانحدار.
7. المثال الثاني: تقدير معاملات نموذج الانحدار التربيعي
7.1 الأساس النظري للنمذجة غير الخطية والتربيعية
تتميز العديد من الظواهر الطبيعية والاقتصادية والبيولوجية بسلوكيات غير خطية لا يمكن تمثيلها بخط مستقيم؛ مثل قوانين العائد المتناقص في الاقتصاد، أو منحنيات النمو والاستجابة للجرعات الدوائية. يمثل الانحدار متعدد الحدود من الدرجة الثانية (الانحدار التربيعي) أبسط وأقوى هذه النماذج المنحنية، ويأخذ الصيغة الرياضية التالية:
$$y_i = \beta_0 + \beta_1 x_i + \beta_2 x_i^2 + \varepsilon_i$$
يتضمن النموذج ثلاثة معلمات مجهولة: المقطع $\beta_0$، والمعامل الخطي $\beta_1$، والمعامل التربيعي $\beta_2$ الذي يتحكم في اتجاه ودرجة تقوس المنحنى (Curvature). إذا كانت $\beta_2 > 0$، يكون المنحنى مقعراً لأعلى، بينما إذا كانت $\beta_2 < 0$، يكون المنحنى محدباً لأسفل وتتولد نقطة انعطاف قصوى.
يمثل الانتقال من تقدير معلمين إلى ثلاثة معلمات توسعاً في الفضاء البارامتري إلى ثلاثة أبعاد، مما يزيد من تعقيد سطح دالة الهدف ويتطلب من خوارزمية التحسين التنقل بكفاءة للوصول إلى النقطة الدنيا الشاملة في الفضاء ثلاثي الأبعاد.
7.2 صياغة دالة الهدف للانحدار التربيعي برمجياً
نقوم أولاً بتوليد مجموعة بيانات غير خطية جديدة تحتوي على علاقة منحنية وفق المعلمات الحقيقية: $\beta_0 = 10$، و $\beta_1 = -2$، و $\beta_2 = 0.5$ مع إضافة تشويش عشوائي:
set.seed(456)
x2 <- seq(-10, 10, length.out = 150)
noise2 <- rnorm(150, mean = 0, sd = 3)
y2 <- 10 - 2 * x2 + 0.5 * (x2^2) + noise2
df_quad <- data.frame(x = x2, y = y2)
بعد ذلك، نقوم بصياغة دالة مجموع مربعات البواقي للنموذج التربيعي min_residuals_quad، بحيث تستقبل متجهاً ثلاثي الأبعاد للمعلمات par:
min_residuals_quad <- function(par, data) {
with(data, {
b0 <- par[1]
b1 <- par[2]
b2 <- par[3]
y_pred <- b0 + b1 * x + b2 * (x^2)
residuals <- y - y_pred
return(sum(residuals^2))
})
}
يتم اختبار الدالة يدوياً بتمرير قيم أولية للتأكد من أنها تعيد قيمة عددية موجبة واحدة بصورة صحيحة ودون أي أخطاء حسابية قبل الدخول في عملية التحسين.
7.3 ضبط القيم الأولية لمعلمات الدرجة الثانية
يتطلب التحسين ثلاثي الأبعاد ضبط متجه القيم الأولية par بعناية لتجنب بطء التقارب أو الانحراف الحسابي. نحدد متجراً أولياً محايداً مثل $\mathbf{par}_0 = (1, 1, 1)^T$ أو المتجه الصفري $\mathbf{par}_0 = (0, 0, 0)^T$.
تعتبر النماذج متعددة الحدود حساسة لتباعد المقاييس بين المعلمات؛ فالحد $x^2$ ينمو بمعدل أسرع بكثير من الحد الخطي $x$، مما يجعل معامل $\beta_2$ عادة أصغر بكثير في قيمته المطلقة من $\beta_0$. إن اختيار قيم ابتدائية متقاربة ومنطقية يمنع حدوث تشوهات كبيرة في الخطوات الأولى لحركة السيمبلكس، ويسهل توجيهه نحو قاع الدالة بكفاءة واستقرار.
8. التحليل التطبيقي ومقارنة أداء النموذج التربيعي
8.1 تشغيل optim للنموذج التربيعي وفحص التقارب
نقوم بتشغيل عملية التحسين للنموذج التربيعي باستخدام دالة optim مع المتجه الابتدائي $\mathbf{par}_0 = (0, 0, 0)^T$ على النحو التالي:
opt_quad <- optim(
par = c(0, 0, 0),
fn = min_residuals_quad,
data = df_quad
)
عند فحص المخرجات المخزنة في opt_quad، نحصل على النتائج الآتية:
$par
[1] 10.354182 -1.996417 0.493892
$value
[1] 1279.412
$counts
function gradient
185 NA
$convergence
[1] 0
تؤكد النتائج نجاح الخوارزمية في تحقيق التقارب التام ($convergence = 0) بعد 185 استدعاءً للدالة. وتُظهر المعلمات المقدرة تطابقاً ممتازاً مع المعلمات الحقيقية:
- المقطع المقدر $\hat{\beta}_0 = 10.3542$ (القيمة الحقيقية: $10$)
- المعامل الخطي $\hat{\beta}_1 = -1.9964$ (القيمة الحقيقية: $-2$)
- المعامل التربيعي $\hat{\beta}_2 = 0.4939$ (القيمة الحقيقية: $0.5$)
8.2 تقييم جودة المطابقة وخفض مجموع مربعات الخطأ
لتقييم التفوق الرياضي للنموذج التربيعي في تمثيل هذه البيانات مقارنة بالنموذج الخطي البسيط، يمكننا حساب مجموع مربعات البواقي للنموذج الخطي على نفس البيانات غير الخطية؛ حيث نجد أن قيمة $RSS$ للنموذج الخطي تتجاوز $14,000$، بينما استقرت قيمة $value في النموذج التربيعي عند $1279.412$.
يمثل هذا الانخفاض الهائل في مجموع مربعات الأخطاء (بنسبة تتجاوز $90%$) دليلاً إحصائياً قاطعاً على أن إضافة المعلمة التربيعية قد استوعبت الانحناء الحقيقي الكامن في البيانات وحولته من أخطاء متبقية غير مفسرة إلى تباين مفسر داخل النموذج.
عند رسم منحنى الانحدار التربيعي المستخرج بالاعتماد على المعلمات المحسوبة من opt_quad$par وتمريره فوق نقاط البيانات الفعلية، يتطابق المنحنى بانسيابية فائقة مع مسار النقاط المنحنية، مما يؤكد بصرياً وإحصائياً نجاح عملية التحسين في إعادة بناء الظاهرة الرياضية بدقة متناهية.
8.3 التحقق من النموذج التربيعي بواسطة دالة lm() و poly()
نُجري التحقق النهائي من دقة معاملات النموذج التربيعي بمقارنتها مع الدالة التحليلية lm() باستخدام التعبير الصريح للحد التربيعي عبر دالة العزل I(x^2):
fit_quad_lm <- lm(y ~ x + I(x^2), data = df_quad)
coef(fit_quad_lm)
تُسفر دالة lm() عن النتائج التالية:
(Intercept) x I(x^2)
10.354519 -1.996384 0.493881
يظهر التطابق التام حتى أدق المراتب العشرية بين تقديرات دالة optim والحل التحليلي لدالة lm. يبرهن هذا التطابق القاطع على أن التحسين العددي المخصص قادر على حل النماذج الإحصائية المعقدة بنفس الكفاءة والموثوقية التي توفرها الحلول المصفوفية التحليلية المغلقة، مما يفتح الباب بثقة لاستخدام optim في النماذج غير الخطية الأكثر تعقيداً التي لا تتوفر لها دوال جاهزة.
9. معالجة مشكلات التقارب وحساسية القيم الابتدائية
9.1 تأثير اختيار القيم الابتدائية (Initial Values) على الحل
تُعد مسألة اختيار القيم الابتدائية إحدى أكثر القضايا حساسية في التحسين العددي، حيث تعتمد مسارات الخوارزميات التكرارية بشكل كلي على نقطة الانطلاق في الفضاء البارامتري. إذا كانت نقطة البداية تقع في منطقة تتميز بانحدارات شبه معدومة (Plateaus) أو تقع بعيداً في مناطق غير مستقرة عددياً، فقد تفشل الخوارزمية في التحرك أو تستغرق وقتاً طويلاً جداً للوصول إلى الحل.
لمواجهة هذه الحساسية، تُستخدم استراتيجية “البدايات المتعددة” (Multistart Strategy)، والتي تقوم على تشغيل دالة optim لعدة مرات متتالية باستخدام متجهات قيم ابتدائية يتم توليدها عشوائياً عبر فضاء البحث البارامتري، ثم مقارنة قيم $value الناتجة من كافة المحاولات واختيار الحل الذي يحقق أدنى قيمة دنيا بينها.
بالإضافة إلى ذلك، يُنصح دوماً بالاعتماد على الاستدلال الاستكشافي للبيانات لتقدير قيم بداية منطقية؛ مثل استخدام المتوسطات أو الوسيط الحسابي أو معاملات الارتباط البسيطة لتحديد رتبة وحجم القيم الابتدائية، مما يمنح الخوارزمية دفعة أولية قوية نحو منطقة الحل الصحيح.
9.2 الوقوع في النقاط الصغرى المحلية (Local Minima)
في فضاءات الدوال المعقدة وغير المحدبة (Non-convex Optimization)، تبرز معضلة التمييز بين النقطة الصغرى المحلية (Local Minimum) والنقطة الصغرى الشاملة (Global Minimum). إن النقطة الصغرى المحلية هي نقطة تكون فيها قيمة الدالة أقل من جميع النقاط المجاورة لها مباشرة، لكنها لا تمثل أدنى قيمة ممكنة للدالة عبر كامل الفضاء البارامتري.
تعتمد الطرق القائمة على التدرج وطرق البحث المباشر الكلاسيكية مثل Nelder-Mead و BFGS على منطق البحث المحلي الهابط، مما يجعلها عرضة للوقوع والاستقرار داخل أول حفرة محلية تصادفها، متوهمة أنها بلغت الحل الأمثل نظراً لتلاشي التدرج في تلك النقطة.
لتجاوز مصيدة النقاط المحلية، يُفضل استخدام خوارزمية التلدين المحاكى method = "SANN" أو اللجوء إلى خوارزميات الاستمثال الشامل وخوارزميات التطور الجيني (Genetic Algorithms). تتيح هذه الطرق القفز العشوائي وتجاوز الحواجز المحلية لاستكشاف تضاريس الدالة بصورة أوسع قبل الاستقرار في القاع الشامل الحقيقي.
9.3 معالجة أخطاء عدم التقارب ورموز التحذير
عند تشغيل دالة optim، قد يواجه المستخدم رسائل تحذيرية أو رموز عدم تقارب؛ وأشهرها الحصول على $convergence = 1، والذي يشير صراحة إلى أن الخوارزمية بلغت سقف التكرارات المسموح به دون تلبية معايير التوقف الدقيقة. يكون الإجراء الفوري في هذه الحالة هو رفع الحد الأقصى للتكرارات عبر وسيط التحكم control = list(maxit = 5000).
تنشأ مشكلة شائعة أخرى عند ظهور قيم غير معرفة مثل NaN أو Inf أثناء تقييم الدالة، وهو ما يحدث غالباً عندما تقود الخطوات الاستكشافية المعلمات إلى مناطق غير مسموحة رياضياً (مثل حساب لوغاريتم عدد سالب أو قسمة على الصفر). يمكن معالجة هذا الخلل بإضافة شروط تحقق منطقية داخل دالة الهدف تقوم بإرجاع قيمة عقابية ضخمة جداً (مثل 1e20) عند محاولة الدخول في تلك المناطق المحظورة، مما يجبر الخوارزمية على الارتداد والبحث في النطاق السليم.
كما تلعب إعادة معايرة وتوحيد مقاييس المتغيرات (Variable Scaling) دوراً جوهرياً في القضاء على مشاكل المصفوفات الشاذة أو غير القابلة للقلب، حيث تسهم المقاييس المتقاربة في جعل تضاريس سطح الدالة أكثر تناسقاً وتماثلاً دائرياً، مما يسهل على الخوارزمية الانزلاق نحو الحل دون تعثر.
10. التحكم المتقدم في دالة optim عبر خيار control
10.1 ضبط الحد الأقصى للتكرارات ومستوى التسامح
توفر دالة optim مرونة تحكم متناهية الدقة عبر تمرير قائمة من الإعدادات داخل المعامل control. يُعد المعامل maxit أحد أهم هذه الإعدادات، حيث يحدد السقف الأعلى لعدد التكرارات المسموح بها للخوارزمية (تبلغ قيمته الافتراضية 500 تكرار لطريقة Nelder-Mead و 100 لطريقة BFGS)، ويمكن زيادته للمسائل الصعبة والمعقدة عبر control = list(maxit = 2000).
بالإضافة إلى ذلك، يمكن التحكم في دقة التوقف عبر معاملي التسامح النسبي reltol والتسامح المطلق abstol. يمثل reltol مقدار التحسن النسبي الأدنى المطلوب بين خطوتين متتاليتين للاستمرار في التحسين؛ فإذا أصبح التغير النسبي في قيمة الدالة أصغر من هذا الرقم (تبلغ قيمته الافتراضية حوالي $10^{-8}$)، تعتبر الخوارزمية أنها بلغت القاع وتوقف البحث بنجاح.
يتيح تعديل هذه المعايير للمحلل الموازنة الدقيقة بين السرعة الحسابية واستهلاك الموارد من جهة، والدقة الرقمية المتناهية من جهة أخرى، وهو أمر بالغ الأهمية عند التعامل مع بيئات حوسبة مقيدة أو مجموعات بيانات ضخمة تتطلب آلاف التكرارات.
10.2 التحويل بين التصغير والتعظيم باستخدام fnscale
صُممت دالة optim افتراضياً لتقوم بتصغير دالة الهدف (Minimization). ومع ذلك، تتطلب العديد من التطبيقات الإحصائية تعظيم الدوال (Maximization)، وعلى رأسها طريقة تقدير الإمكان الأعظم (Maximum Likelihood Estimation – MLE)، حيث يسعى الإحصائي إلى تعظيم دالة لوغاريتم الإمكان للبيانات.
بدلاً من إعادة كتابة الدالة الرياضية بضربها يدوياً في سالب واحد، توفر دالة optim خياراً مدمجاً وأنيقاً من خلال المعامل fnscale داخل قائمة control. عند تعيين control = list(fnscale = -1)، تقوم الدالة داخلياً بعكس إشارة دالة الهدف وتحويل عملية التحسين برمتها إلى عملية تعظيم رياضية مباشرة.
عند استخدام هذا الخيار، يتم البحث عن القمة العليا للدالة، وتُرجع $value القيمة القصوى المعظمة بإشارتها الموجبة الحقيقية، مما يسهل قراءة وتفسير نتائج دوال الإمكان دون أي تشويش رياضي.
10.3 حساب مصفوفة هيسيان (Hessian Matrix) لتقدير الأخطاء المعيارية
يُعد المعامل المنطقي hessian = TRUE أحد أقوى وأهم الأدوات التشخيصية والإحصائية في دالة optim. عند تفعيل هذا الخيار، تقوم الدالة بحساب مصفوفة هيسيان (Hessian Matrix) عند نقطة الحل النهائي، وهي مصفوفة مربعة تحتوي على جميع المشتقات الجزئية من الدرجة الثانية لدالة الهدف بالنسبة لجميع أزواج المعلمات.
في النظرية الإحصائية لتقدير الإمكان الأعظم ومسائل المربعات الصغرى، ترتبط مصفوفة هيسيان مباشرة بـ “مصفوفة معلومات فيشر الملاحظة” (Observed Fisher Information Matrix). تمثل هذه المصفوفة انحناء دالة الهدف عند القاع؛ حيث يشير الانحناء الحاد إلى دقة وثبات عاليين في التقدير، بينما يشير الانحناء المنبسط إلى عدم يقين وتباين واسع في تقدير المعلمة.
من خلال حساب معكوس مصفوفة هيسيان (Matrix Inversion) باستخدام الدالة solve(opt$hessian)، نحصل مباشرة على “مصفوفة التباين والتباين المشترك التقريبية” (Asymptotic Variance-Covariance Matrix) للمعلمات المقدرة. وبأخذ الجذر التربيعي للعناصر القطرية في هذه المصفوفة المعكوسة، يستخرج الباحث الأخطاء المعيارية (Standard Errors) للمعلمات المقدرة، ومن ثم يمكنه بناء فترات الثقة (Confidence Intervals) وإجراء اختبارات الفرضيات الإحصائية (مثل اختبارات $t$ و $z$) بدقة متناهية.
11. مقارنة دالة optim مع أدوات التحسين الأخرى في R
11.1 مقارنة optim مع optimize للدوال أحادية البعد
تُعد دالة optimize() (أو رديفها optimise()) الدالة القياسية المتخصصة في لغة R للتعامل حصرياً مع مسائل التحسين أحادية البعد (One-dimensional Optimization)، أي عندما تكون دالة الهدف تعتمد على معلمة رياضية مجهولة واحدة فقط ($k = 1$).
تعتمد دالة optimize على خوارزمية هندسية مدمجة تجمع بين “البحث بالقسم الذهبي” (Golden Section Search) والتقريب المكافئ المتتالي لبرنت (Brent’s Method). تتطلب الدالة من المستخدم تحديد فترة بحث محصورة محددة وصريحة interval = c(lower, upper) بدلاً من تحديد قيمة ابتدائية مفردة، وتتميز بسرعة خارقة ودقة حسابية متناهية تتفوق على optim في الفضاء أحادي البعد.
ومع ذلك، يقتصر استخدام optimize على المسائل أحادية البعد فقط؛ فعندما يحتوي النموذج الإحصائي على معلمتين أو أكثر (مثل المقطع والميل معاً)، يصبح الانتقال إلى دالة optim خياراً حتمياً وإلزامياً للتعامل مع الفضاءات متعددة الأبعاد.
11.2 مقارنة optim مع الدوال nlm و nls
توفر بيئة R الأساسية دوال تحسين متخصصة أخرى بجانب optim، من أبرزها دالتا nlm() و nls(). تُعد دالة nlm() (Non-Linear Minimization) أداة تحسين عامة تعتمد حصرياً على خوارزميات نيوتن المعدلة (Modified Newton Algorithms)، وهي تتطلب أن تكون الدوال ملساء وقابلة للاشتقاق المستمر، وتتميز بكفاءتها العالية إذا توفرت معلومات المشتقات الأولى والثانية بدقة.
من جانب آخر، خُصصت دالة nls() (Nonlinear Least Squares) بصورة حصرية لتقدير نماذج المربعات الصغرى غير الخطية؛ حيث تقبل صياغة النماذج الإحصائية باستخدام الصيغ القياسية (Formulas) مثل y ~ a * exp(b * x) وتستخدم خوارزمية جاوس-نيوتن (Gauss-Newton) أو خوارزمية ماركواردت (Levenberg-Marquardt).
تكمن الميزة التنافسية الكبرى لدالة optim مقارنة بـ nls في مرونتها المطلقة؛ إذ تفشل دالة nls وتتوقف عن العمل فوراً إذا لم تكن المسألة مصاغة بصورة مجموع مربعات مباشرة أو عند حدوث شذوذ في مصفوفة الجاكوبي، في حين تستطيع optim معالجة أي دالة هدف احتمالية أو مخصصة أو ذات قيود مكانية دون التقيد بالبنية الصلبة لنماذج المربعات الصغرى.
11.3 متى يفضل الانتقال إلى حزم متخصصة مثل optimx
على الرغم من القدرات الشاملة لدالة optim، إلا أن الأبحاث الإحصائية الحديثة والمسائل الحسابية المعقدة جداً قد تستدعي الانتقال إلى حزم خارجية متقدمة، وتأتي في مقدمتها حزمة optimx المطورة بواسطة جون ناش (John C. Nash).
تقدم حزمة optimx توسعة جذرية لدالة optim الأساسية؛ حيث تتيح للمستخدم تشغيل عشرات الخوارزميات العددية الحديثة في وقت واحد وبأمر برمجي واحد (مثل خوارزميات Rvmmin و Rcgmin و bobyqa و nlminb)، وإرجاع جدول مقارنة شامل وموحد يوضح أداء كل خوارزمية وسرعتها وقيم تقاربها، مما يسهل اختيار الخوارزمية الفضلى للمسألة قيد التحليل.
كما يُنصح بالانتقال إلى حزم متخصصة مثل nloptr عند وجود قيود غير خطية معقدة وغير متساوية (Nonlinear Inequality Constraints)، أو استخدام حزم الخوارزميات التطورية مثل GA و DEoptim عند التعامل مع دوال متقطعة للغاية تتضمن آلاف القمم والقيعان المحلية التي تعجز الطرق الكلاسيكية عن حلها.
12. أفضل الممارسات والتوجيهات المنهجية لتطبيق دالة optim
12.1 المعايرة القياسية للبيانات وتحسين الاستقرار العددي
يُمثل التفاوت الصارخ في مقاييس المتغيرات المدخلة أحد أكبر التحديات التي تؤدي إلى فشل أو بطء التحسين العددي. فعندما يكون أحد المتغيرات مقاساً بملايين الوحدات بينما المتغير الآخر مقاساً بأجزاء من الألف، تصبح خطوط الكنتور لدالة الهدف مفرطة الاستطالة والضيق (Elliptical Canyons)، مما يجعل حركة الخوارزمية تتأرجح ببطء شديد وبشكل متعرج وغير فعال عبر الأودية الضيقة.
يُعد توحيد ومعايرة مقاييس البيانات (Standardization / Scaling)—عبر طرح المتوسط الحسابي والقسمة على الانحراف المعياري باستخدام دالة scale() في R—ممارسة منهجية حاسمة تضمن جعل تباينات المتغيرات متقاربة وتجعل سطح دالة الهدف متناسقاً دائرياً، مما يسرع من وصول خوارزميات التدرج إلى الحل في خطوات معدودة.
علاوة على ذلك، يمكن استخدام وسائط التحكم parscale و ndeps داخل المعامل control في دالة optim لتحديد أوزان نسبية ومقاييس خاصة لكل معلمة على حدة، مما يساعد الدالة على موازنة خطوات البحث في كل بُعد وفقاً لحجمه الرياضي المتوقع.
12.2 كتابة دوال هدف متينة حسابياً وفعالة برمجياً
تعتمد كفاءة وسرعة عملية التحسين بالكامل على سرعة ودقة تنفيذ دالة الهدف fn؛ نظراً لأن هذه الدالة سيتم استدعاؤها مئات أو آلاف المرات أثناء البحث التكراري. لذلك، يجب استغلال قدرات المعالجة الموجهة (Vectorization) المتأصلة في لغة R وتجنب استخدام الحلقات التكرارية البطيئة (مثل for loops) داخل جسم الدالة نهائياً.
يجب كذلك تحصين الدالة حسابياً ضد القيم الرياضية الشاذة وغير المعرفة؛ مثل التأكد من عدم حدوث قسمة على صفر، واستخدام الدوال اللوغاريتمية المستقرة عددياً مثل log1p(x) لحساب $log(1 + x)$ و lfactorial() لحساب لوغاريتم المضروب مباشرة دون تفجير الذاكرة بالأرقام الضخمة.
كما يُنصح بإجراء اختبارات فحص وحدوية (Unit Tests) للدالة البرمجية قبل تمريرها إلى optim، من خلال تجربتها على متجهات إدخال متطرفة والتأكد من أنها تعيد دائماً أرقاماً حقيقية مفردة (Finite Real Scalars) ولا تنهار تحت أي ظرف حسابي مفاجئ.
12.3 التحقق والتوثيق المنهجي للنتائج المحسنة
لا تنتهي عملية التحسين العددي بمجرد الحصول على المخرجات؛ إذ يجب على الباحث المنهجي تطبيق بروتوكول تحقق صارم لضمان مصداقية الحل. يشمل هذا البروتوكول إعادة تشغيل التحسين من نقاط بداية عشوائية متعددة للتأكد من استقرار الحل عند نفس القيمة الدنيا، وفحص مصفوفة هيسيان للتأكد من أنها مصفوفة موجبة المعرفة وموجبة التحديد (Positive Definite Matrix)، وهو الشرط الرياضي اللازم لضمان أن النقطة المحققة هي نقطة نهاية صغرى حقيقية وليست نقطة سرجية (Saddle Point).
يقتضي التوثيق العلمي الدقيق تسجيل وتوثيق كافة تفاصيل التحسين المستخدمة، بما يشمل: الإصدار البرمجي لحزمة stats، والخوارزمية المحددة في method، ومتجه القيم الابتدائية، ومعايير التسامح في control، والقيمة النهائية لمجموع الأخطاء أو الإمكان في $value، وحالة رمز التقارب $convergence.
يسهم هذا التوثيق الشفاف في تعزيز موثوقية البحث العلمي وقابليته لإعادة الإنتاج (Reproducibility)، ويتيح للباحثين الآخرين محاكاة النتائج ومراجعتها واختبار متانتها الإحصائية بكل دقة وموثوقية.
خاتمة
استعرض هذا الدليل الموسع الأسس النظرية والمنهجية التطبيقية لاستخدام دالة optim في لغة R كأداة متقدمة وشاملة للتحسين العددي وتقدير النماذج الإحصائية. ومن خلال تتبع البنية البرمجية للدالة وتفصيل خوارزمياتها المتنوعة—مثل Nelder-Mead و BFGS و L-BFGS-B—يتضح أن التحسين العددي يمثل الجسر الحسابي الذي يتيح للإحصائيين ومحللي البيانات بناء واختبار نماذج مخصصة تتجاوز بكثير حدود الأساليب التحليلية والدوال الخطية المغلقة.
وقد برهن التطبيق العملي على نموذجي الانحدار الخطي والانحدار التربيعي عن قدرة دالة optim على الوصول إلى تقديرات بارامترية فائقة الدقة تتطابق تماماً مع الحلول التحليلية القياسية. إن التمكن من أدوات التحكم المتقدمة، وإدارة مصفوفة هيسيان لاستخراج الأخطاء المعيارية، والوعي بكيفية معالجة مشكلات التقارب وحساسية القيم الابتدائية، يمنح الممارس الأساس المتين لبناء دوال هدف احتمالية متطورة والتعامل باحترافية وثقة مع أحدث التطبيقات الإحصائية والبحثية في مختلف مجالات علوم البيانات المعاصرة.
المراجع (References)
- Avriel, M. (2003). Nonlinear Programming: Analysis and Methods. Dover Publications.
- Brent, R. P. (2013). Algorithms for Minimization Without Derivatives. Dover Publications.
- Fletcher, R. (1987). Practical Methods of Optimization (2nd ed.). John Wiley & Sons. https://doi.org/10.1002/9781118723203
- Nash, J. C. (1990). Compact Numerical Methods for Computers: Linear Algebra and Function Minimisation (2nd ed.). CRC Press. https://doi.org/10.1201/9781315139784
- Nash, J. C. (2014). Nonlinear Parameter Optimization Using R Tools. John Wiley & Sons. https://doi.org/10.1002/9781118884003
- Nelder, J. A., & Mead, R. (1965). A Simplex Method for Function Minimization. The Computer Journal, 7(4), 308–313. https://doi.org/10.1093/comjnl/7.4.308
- Nocedal, J., & Wright, S. J. (2006). Numerical Optimization (2nd ed.). Springer. https://doi.org/10.1007/978-0-387-40065-5
- R Core Team. (2023). R: A Language and Environment for Statistical Computing. R Foundation for Statistical Computing, Vienna, Austria. https://www.R-project.org/
- Venables, W. N., & Ripley, B. D. (2002). Modern Applied Statistics with S (4th ed.). Springer. https://doi.org/10.1007/978-0-387-21706-2
- Zhu, C., Byrd, R. H., Lu, P., & Nocedal, J. (1997). Algorithm 778: L-BFGS-B: Fortran subroutines for large-scale bound-constrained optimization. ACM Transactions on Mathematical Software, 23(4), 550–560. https://doi.org/10.1145/279232.279236