يمثل التحليل الإحصائي متعدد المتغيرات حجر الزاوية في فهم الظواهر المعقدة وتصنيف البيانات في مختلف مجالات المعرفة الإنسانية، بدءاً من القياسات النفسية والسلوكية المتقدمة وصولاً إلى النمذجة البيولوجية والتنبؤات الاقتصادية. وفي خضم التطور المتسارع للتعلم الآلي والإحصاء التطبيقي، تبرز خوارزميات التصنيف المعلمية الموجهة (Supervised Parametric Classification) كأدوات تجمع بين المتانة النظرية والقدرة التفسيرية الفائقة. ومن بين هذه الخوارزميات، يحتل التحليل التمييزي مكانة مركزية، حيث يوفر إطاراً رياضياً دقيقاً لفرز المشاهدات وإسنادها إلى فئات متمايزة بالاعتماد على مجموعة من المتغيرات التنبؤية الكمية.
وعلى الرغم من الشهرة الواسعة التي يحظى بها التحليل التمييزي الخطي (Linear Discriminant Analysis – LDA)، إلا أن افتراضه الصارم بوجود مصفوفة تباين وتغاير متجانسة ومشتركة بين جميع الفئات يقف عائقاً أمام تمثيل الواقع العملي في كثير من التطبيقات التجريبية والميدانية. وهنا تتجلى قوة ومرونة التحليل التمييزي التربيعي (Quadratic Discriminant Analysis – QDA)، الذي يتجاوز هذا القيد الهيكلي عبر السماح لكل فئة بامتلاك مصفوفة تغاير فريدة وخاصة بها. يتيح هذا التحرر الرياضي للنموذج رسم حدود قرار غير خطية ومنحنية (Non-linear Quadratic Decision Boundaries)، مما يجعله قادراً على التقاط التفاعلات المعقدة والفروق في تشتت البيانات بين المجموعات بدقة متناهية.
يهدف هذا الدليل الشامل والمفصل إلى تقديم مرجع أكاديمي وتطبيقي متكامل للباحثين والمحللين حول كيفية تطبيق التحليل التمييزي التربيعي خطوة بخطوة باستخدام بيئة البرمجة الإحصائية R. سنتناول في هذا المقال الخلفية الرياضية العميقة التي يقوم عليها النموذج، والافتراضات المنهجية الصارمة الواجب استيفاؤها، مروراً بالمعالجة البرمجية الكاملة عبر حزمة MASS والحزم المساعدة، وصولاً إلى التفسير الدقيق للمخرجات، وتقييم جودة التصنيف، وبناء الرسوم البيانية التوضيحية المتقدمة، مع تقديم دراسة حالة سلوكية ونفسية توضح القيمة المضافة لهذا الأسلوب الإحصائي الرفيع.
- 1. مقدمة شاملة حول التحليل التمييزي التربيعي (QDA) وأهميته الإحصائية
- 2. الأسس الرياضية والنظرية للتحليل التمييزي التربيعي مقابل الخطي
- 3. الافتراضات الإحصائية الأساسية لتطبيق QDA وشروط التحقق منها
- 4. الخطوة 1: إعداد بيئة العمل وتثبيت وتحميل الحزم اللازمة في R
- 5. الخطوة 2: استكشاف وفحص البيانات وتجهيزها للتحليل
- 6. الخطوة 3: تقسيم البيانات إلى مجموعات التدريب والاختبار والتحقق المتقاطع
- 7. الخطوة 4: بناء وتدريب نموذج التحليل التمييزي التربيعي باستخدام دالة qda()
- 8. الخطوة 5: تفسير مخرجات النموذج والمعاملات الإحصائية
- 9. الخطوة 6: إجراء التنبؤات وتوليد مصفوفة الارتباك
- 10. الخطوة 7: تقييم أداء النموذج ومقاييس الدقة الإحصائية
- 11. الخطوة 8: التصور البياني لحدود القرار التربيعية في R
- 12. مقارنة متقدمة ودراسة حالات نفسية وإحصائية وتطبيقات عملية
- خاتمة واستنتاجات ختامية
- المراجع الأكاديمية (References)
1. مقدمة شاملة حول التحليل التمييزي التربيعي (QDA) وأهميته الإحصائية
1.1 مفهوم التحليل التمييزي التربيعي والهدف منه
يُعرَّف التحليل التمييزي التربيعي (QDA) بأنه أحد أساليب التعلم الآلي الإشرافي (Supervised Learning) والتصنيف الإحصائي المعلمي متعدد المتغيرات، والذي يهدف إلى تصنيف وحدة المعاينة (فرد، حالة سريرية، عينة بيولوجية) إلى إحدى المجموعات أو الفئات المتمايزة وغير المتداخلة للمتغير التابع النوعي، بناءً على قيم متجهة من المتغيرات المستقلة الكمية المستمرة. يتأسس هذا الأسلوب على نظرية اتخاذ القرار البايزية (Bayesian Decision Theory)، حيث يعمل النموذج على تعظيم الاحتمال اللاحق لانتماء المشاهدة إلى فئة معينة بالاعتماد على دالة الكثافة الاحتمالية للمتغيرات التنبؤية والاحتمالات القبلية لكل فئة.
تتمثل الغاية الجوهرية من تطبيق QDA في إيجاد دوال تربيعية تفصل الفضاء الهندسي للمتغيرات إلى مناطق قرار منفصلة (Decision Regions). وعلى النقيض من النماذج الخطية التي تفترض أن الفواصل بين الفئات مستقيمة أو مستوية، فإن التحليل التمييزي التربيعي يولد أسطح فصل منحنية تأخذ أشكال القطوع المكافئة، أو القطوع الناقصة، أو القطوع الزائدة. وتكتسب هذه الخاصية أهمية بالغة في العلوم السلوكية والإحصائية، حيث نادراً ما تتطابق درجات التباين والارتباط بين السمات النفسية والقدرات العقلية عبر المجموعات السريرية أو الفئات السكانية المختلفة.
من الناحية المنهجية، يقع التحليل التمييزي التربيعي في موقع متميز يجمع بين النماذج المعلمية الصلبة مثل الانحدار اللوجستي والتحليل التمييزي الخطي، وبين النماذج اللامعلمية عالية المرونة مثل خوارزمية الجيران الأقرب (k-NN) والغابات العشوائية (Random Forests). يتميز QDA باحتفاظه ببنية احتمالية مغلقة وواضحة تتيح للباحثين استنتاج الخصائص التوزيعية لكل فئة بدقة، مع توفير مرونة كافية لنمذجة البيانات غير المتجانسة دون الوقوع التلقائي في فخ التعقيد الحسابي الشديد أو غموض الصندوق الأسود.
1.2 متى نلجأ إلى استخدام QDA بدلاً من النماذج الأخرى
يتحدد القرار المنهجي باختيار التحليل التمييزي التربيعي بديلاً عن النماذج التصنيفية الأخرى بناءً على الخصائص البنيوية لمصفوفات البيانات. المبرر الأساسي والأكثر إلحاحاً لاستخدام QDA هو انتهاك افتراض تجانس مصفوفات التباين والتغاير (Homoscedasticity) بين المجموعات. ففي حال أظهرت الاختبارات الإحصائية أن لكل مجموعة نمطاً مختلفاً من التشتت والارتباط المتبادل بين المتغيرات، يفقد التحليل التمييزي الخطي كفاءته المثلى، وتصبح حدوده الخطية متحيزة وتفتقر إلى الدقة، مما يجعل الانتقال إلى QDA ضرورة حتمية لضمان صحة الاستدلال.
بالإضافة إلى ذلك، يُفضل استخدام QDA عندما تكون العلاقات بين المتغيرات التنبؤية داخل الفئات محكومة بتأثيرات غير خطية وانحناءات تفاعلية واضحة. وفي سياق معضلة الانحياز والتباين (Bias-Variance Tradeoff)، يتمتع QDA بانحياز منخفض مقارنة بـ LDA نظراً لقدرته على تمثيل أشكال حدودية أكثر تعقيداً، ولكنه في المقابل يتطلب تبايناً أعلى في التقدير. لذلك، يكون QDA خياراً مثالياً ومستقراً إحصائياً عندما يتوفر لدى الباحث حجم عينة تدريب كبير بما يكفي لتقدير المعلمات الإضافية لكل فئة بشكل دقيق وموثوق دون المخاطرة بفرط المطابقة.
وعند المقارنة مع الانحدار اللوجستي متعدد الحدود (Multinomial Logistic Regression)، يتفوق QDA في الحالات التي تستوفي فيها البيانات التوزيع الطبيعي المتعدد بدقة، حيث يكون أكثر كفاءة إحصائياً (Asymptotically Efficient) من الانحدار اللوجستي في استخدام المعلومات التوزيعية، مما يؤدي إلى نسب خطأ تصنيف أقل، لا سيما في العينات المتوسطة والكبيرة المستقرة.
1.3 تطبيقات التحليل التمييزي في العلوم السلوكية والنفسية
تحظى العلوم السلوكية والنفسية ببيئة بيانات ثرية تتطابق فيها الفروض النظرية لـ QDA بشكل ملحوظ. أحد التطبيقات المركزية يتمثل في التشخيص النفسي السريري المبني على البطاريات السيكومترية؛ حيث تختلف التباينات والارتباطات بين أبعاد مثل العصابية، والانبساط، واليقظة الذهنية اختلافاً جذرياً بين الأفراد الأصحاء والمرضى المصابين باضطرابات المزاج أو اضطرابات القلق الحادة. استخدام نموذج يفترض تباينات متساوية في هذه الحالات يؤدي إلى أخطاء تصنيفية قد تؤثر سلباً على قرارات العلاج والتدخل النفسي.
كما يُستخدم QDA على نطاق واسع في التمييز الدقيق بين مستويات التوتر المهني ونوبات الاحتراق النفسي بناءً على مؤشرات متكاملة تجمع بين الاستجابات الفسيولوجية (مثل تقلب معدل ضربات القلب HRV ومستويات الكورتيزول اللعابي) والمقاييس النفسية الذاتية. وتظهر هذه المؤشرات عادةً سلوكاً غير خطي وتشتتاً مرتفعاً لدى الفئات الأكثر عرضة للضغوط، مما يجعل النمذجة التربيعية الأداة المثلى لاكتشاف هذه التمايزات الدقيقة داخل الفضاء متعدد الأبعاد.
وفي مجالات علم النفس التنظيمي وإدارة الموارد البشرية، يسهم التحليل التمييزي التربيعي في تصنيف الكفاءات الوظيفية والتنبؤ بالنجاح القيادي عبر تحليل مصفوفات الأداء المعرفي، والذكاء العاطفي، والقدرة على حل المشكلات تحت الضغط. إن قدرة النموذج على التعامل مع تباينات الأداء المتباينة بين مستويات الإدارة العليا والإدارة التنفيذية تجعله أداة استراتيجية في بناء نماذج الجدارة والترشيح المهني المتقدم.
2. الأسس الرياضية والنظرية للتحليل التمييزي التربيعي مقابل الخطي
2.1 البنية الرياضية ودالة الكثافة الاحتمالية متعددة المتغيرات
ينطلق التحليل التمييزي التربيعي من قاعدة بايز للاحتمالات لحساب الاحتمال البعدي (Posterior Probability) لانتماء متجه المشاهدة $\mathbf{x} = (x_1, x_2, dots, x_p)^T$ المكون من $p$ من المتغيرات إلى الفئة $k$ من أصل $K$ من الفئات الكلية. تُصاغ معادلة الاحتمال البعدي على النحو التالي:
$$P(Y = k mid \mathbf{X} = \mathbf{x}) = \frac{\pi_k f_k(\mathbf{x})}{\sum_{l=1}^{K} \pi_l f_l(\mathbf{x})}$$
حيث تمثل $\pi_k$ الاحتمال القبلي (Prior Probability) للفئة $k$، بينما تعبر $f_k(\mathbf{x})$ عن دالة الكثافة الاحتمالية المشتركة للمتغيرات التنبؤية مشروطة بانتمائها إلى الفئة $k$. يفترض النموذج أن البيانات تتبع التوزيع الطبيعي متعدد المتغيرات (Multivariate Normal Distribution)، والذي تُعطى دالته الاحتمالية بالمعادلة الرياضية الدقيقة:
$$f_k(\mathbf{x}) = \frac{1}{(2\pi)^{p/2} |\mathbf{\Sigma}_k|^{1/2}} \exp\left( -\frac{1}{2} (\mathbf{x} – boldsymbol{\mu}_k)^T \mathbf{\Sigma}_k^{-1} (\mathbf{x} – boldsymbol{\mu}_k) \right)$$
في هذه المعادلة، يمثل $boldsymbol{\mu}_k$ متجه المتوسطات الحسابية للفئة $k$ بأبعاد $(p \times 1)$، بينما تمثل $\mathbf{\Sigma}_k$ مصفوفة التباين والتغاير الخاصة بالفئة $k$ بأبعاد $(p \times p)$، ويمثل $|\mathbf{\Sigma}_k|$ محدد هذه المصفوفة (Determinant)، في حين تمثل $\mathbf{\Sigma}_k^{-1}$ مقلوب مصفوفة التغاير. يكمن الفارق الحاسم هنا في أن مصفوفة التغاير مرتبطة بالمؤشر السفلي $k$، مما يعني أنها تُحسب بشكل مستقل تماماً لكل فئة من الفئات.
للوصول إلى دالة التمييز التربيعية $\delta_k(\mathbf{x})$، نأخذ اللوغاريتم الطبيعي للبسط في قاعدة بايز بعد حذف الحدود الثابتة التي لا تعتمد على $k$، لنحصل على الصيغة النهائية لدالة التمييز الخاصة بـ QDA:
$$\delta_k(\mathbf{x}) = -\frac{1}{2} \ln |\mathbf{\Sigma}_k| – \frac{1}{2} (\mathbf{x} – boldsymbol{\mu}_k)^T \mathbf{\Sigma}_k^{-1} (\mathbf{x} – boldsymbol{\mu}_k) + \ln(\pi_k)$$
يظهر في هذا التعبير الرياضي الحد التربيعي $(\mathbf{x} – boldsymbol{\mu}_k)^T \mathbf{\Sigma}_k^{-1} (\mathbf{x} – boldsymbol{\mu}_k)$، والمعروف باسم مربع مسافة ماهالانوبيس (Mahalanobis Distance)، والذي يزن المسافة الإقليدية بين المشاهدة ومتوسط الفئة باستخدام مصفوفة التغاير الفريدة لتلك الفئة، مما ينتج عنه سلوك غير خطي تماماً عند رسم الحدود الفاصلة.
2.2 الفروق الجوهرية بين LDA و QDA من المنظور الرياضي
تتمحور الفروق الجوهرية بين التحليل التمييزي الخطي (LDA) والتحليل التمييزي التربيعي (QDA) حول الفرضية الهيكلية المتعلقة بمصفوفة التغاير. في نموذج LDA، يُفترض أن $\mathbf{\Sigma}_k = \mathbf{\Sigma}$ لجميع الفئات $k = 1, 2, dots, K$. هذا التوحيد الرياضي يؤدي إلى إلغاء الحدود التربيعية $\mathbf{x}^T \mathbf{\Sigma}^{-1} \mathbf{x}$ ومحدد المصفوفة $\ln |\mathbf{\Sigma}|$ عند المفاضلة بين دالتي تمييز لأي فئتين، مما يختزل دالة القرار إلى تركيبة خطية بحتة من المتغيرات، وتكون النتيجة حدود قرار مستوية (Hyperplanes).
على النقيض من ذلك، في نموذج QDA، حيث تختلف $\mathbf{\Sigma}_k$ من فئة إلى أخرى، يظل الحد التربيعي $\mathbf{x}^T \mathbf{\Sigma}_k^{-1} \mathbf{x}$ قائماً ولا يمكن حذفه جبرياً. هذا التباين ينتج حدود قرار متعددة الحدود من الدرجة الثانية، مما يمكن النموذج من فصل البيانات المعقدة التي تتوزع فيها الفئات داخل دوائر متداخلة، أو أشكال بيضاوية متباينة الاتجاه والانفراج، أو قطوع مكافئة.
ومع ذلك، تترتب على هذه المرونة تكلفة رياضية وإحصائية باهظة تتعلق بعدد المعلمات المقدرة (Number of Estimated Parameters). يوضح الجدول التالي مقارنة دقيقة بين النموذجين فيما يخص التعقيد البارامتري والأبعاد الرياضية:
- نموذج LDA: يقدر متجه متوسطات واحد لكل فئة ($K \times p$) بالإضافة إلى مصفوفة تغاير موحدة ومشتركة واحدة فقط تحتوي على $\frac{p(p + 1)}{2}$ من المعلمات المستقلة.
- نموذج QDA: يقدر متجهات المتوسطات ($K \times p$) بالإضافة إلى مصفوفة تغاير منفصلة لكل فئة من الفئات، مما يتطلب تقدير $K \times \frac{p(p + 1)}{2}$ من معلمات التباين والتغاير.
توضح هذه الحسبة البارامترية سبب ميل QDA السريع نحو فرط المطابقة (Overfitting) عند تطبيقه على مجموعات بيانات ذات أبعاد تنبؤية عالية ($p$ كبير) وأحجام عينات تدريب محدودة داخل كل فئة ($n_k$ صغير). فعندما يقترب عدد المتغيرات من حجم العينة، تصبح مصفوفات التغاير الفردية غير مستقرة عددياً، وقد تقترب محدداتها من الصفر، مما يجعل مقلوب المصفوفة غير معرف ويؤدي إلى انهيار النموذج الرياضي بالكامل ما لم يتم تطبيق تقنيات الانتظام الإحصائي.
2.3 حساب الاحتمالات البعدية وقواعد اتخاذ القرار
يرتكز قرار التصنيف في التحليل التمييزي التربيعي على قاعدة القرار البايزية لتعظيم الاحتمال البعدي الأقصى (Maximum A Posteriori – MAP Decision Rule). تنص هذه القاعدة على إسناد المشاهدة الجديدة $\mathbf{x}$ إلى الفئة $k^*$ التي تحقق أعلى قيمة لدالة التمييز التربيعية بين جميع الفئات الممكنة:
$$k^* = arg\max_{k in {1, dots, K}} \delta_k(\mathbf{x})$$
ولا يقتصر النموذج على إصدار تصنيف حتمي صلب، بل يحسب الاحتمال البعدي الدقيق لكل فئة باستخدام دالة سوفت ماكس (Softmax Transformation) على دوال التمييز، مما يمنح الباحث تقييماً كمياً لدرجة اليقين الإحصائي (Uncertainty) المصاحبة لكل عملية تصنيف:
$$P(Y = k mid \mathbf{X} = \mathbf{x}) = \frac{\exp(\delta_k(\mathbf{x}))}{\sum_{l=1}^{K} \exp(\delta_l(\mathbf{x}))}$$
تلعب الاحتمالات القبلية $\pi_k$ دوراً جوهرياً في توجيه حدود الفصل؛ حيث يتم تقديرها عادةً كنسبة المشاهدات في كل فئة ضمن عينة التدريب $\pi_k = \frac{n_k}{N}$، أو يتم تحديدها مسبقاً بناءً على معرفة قطعية مستمدة من المسوح السكانية الوطنية (مثل معدل انتشار اضطراب نفسي معين في المجتمع). تؤدي الاحتمالات القبلية المرتفعة لفئة ما إلى إزاحة حدود القرار لتوسيع منطقة النفوذ التصنيفي لتلك الفئة، مما يعالج بكفاءة إحصائية مسألة عدم توازن البيانات (Imbalanced Datasets) ويقلل من معدلات الخطأ الإجمالية المتوقعة في المجتمع الأصلي.
3. الافتراضات الإحصائية الأساسية لتطبيق QDA وشروط التحقق منها
3.1 افتراض التوزيع الطبيعي متعدد المتغيرات (Multivariate Normality)
يعد افتراض التوزيع الطبيعي متعدد المتغيرات للمتغيرات التنبؤية داخل كل فئة من الفئات ركيزة أساسية لا يمكن الاستغناء عنها في التحليل التمييزي التربيعي. لا يكفي في هذا السياق أن يكون كل متغير مستقلاً يتبع التوزيع الطبيعي الأحادي (Univariate Normality)، بل يجب أن تتوزع التراكيب الخطية لجميع المتغيرات توزيعاً طبيعياً مشتركاً في الفضاء متعدد الأبعاد، مما يعني أن الأسطح الكنتورية للاحتمالات تشكل أشكالاً إهليلجية متناسقة حول مراكز المجموعات.
للتحقق من هذا الافتراض في بيئة التحليل، يبدأ الباحث بإجراء الفحوصات الاستكشافية البصرية. تشمل هذه الأدوات فحص مخططات كوانتايل-كوانتايل لمسافة ماهالانوبيس (Chi-Square Q-Q Plot of Mahalanobis Distances) لكل مجموعة على حدة؛ حيث يُرسم مربع مسافة ماهالانوبيس لكل نقطة مقابل القيم المرجعية لتوزيع مربع كاي ($\chi^2$) بدرجات حرية مساوية لعدد المتغيرات $p$. ويشير اصطفاف النقاط على الخط القطري إلى استيفاء شرط التوزيع الطبيعي المتعدد.
وعلى صعيد الاختبارات الدلالية الرسمية، يُعتمد بشكل رئيسي على اختبار مارديا (Mardia’s Test) لحساب الالتواء والتفرطح متعدد المتغيرات (Multivariate Skewness and Kurtosis)، بالإضافة إلى اختبار شابيرو-ويلك متعدد المتغيرات (Multivariate Shapiro-Wilk Test) واختبار روستون وروزنتال. وفي حال ثبوت انتهاك افتراض التوزيع الطبيعي نتيجة الالتواء الشديد أو الذيل الثقيل للبيانات، يتعين على الباحث تطبيق تحويلات رياضية لتثبيت التوزيع، مثل تحويل بوكس-كوكس (Box-Cox Transformation) أو التحويل اللوغاريتمي، لإعادة المتغيرات إلى نطاق التوزيع الطبيعي المقبول قبل الانتقال لتدريب النموذج.
3.2 افتراض عدم تجانس مصفوفات التغاير (Heteroscedasticity)
يمثل التباين وعدم التطابق في مصفوفات التباين والتغاير بين المجموعات المختلفة ($\mathbf{\Sigma}_i \neq \mathbf{\Sigma}_j$ لأي $i \neq j$) الشرط التشغيلي والمبرر العلمي الأساسي لتفضيل QDA على التحليل التمييزي الخطي. إذا كانت المصفوفات متطابقة إحصائياً، فإن استخدام QDA يعد إسرافاً في استهلاك درجات الحرية ويزيد من تباين التقدير دون داعٍ. أما إذا كانت غير متجانسة، فإن التحليل الخطي يصبح مضللاً ويفشل في تمثيل الانفصال الحقيقي بين المجموعات.
يُستخدم اختبار بوكس لإم (Box’s M Test) كمعيار إحصائي صارم لفحص فرضية العدم القائلة بتساوي وتجانس مصفوفات التغاير عبر جميع الفئات ($H_0: \mathbf{\Sigma}_1 = \mathbf{\Sigma}_2 = dots = \mathbf{\Sigma}_K$). يستند هذا الاختبار إلى نسبة مقادير محددات المصفوفات الفردية إلى محدد مصفوفة التغاير المجمعة (Pooled Covariance Matrix). تُحسب إحصائية الاختبار عبر المعادلة:
$$M = (N – K) \ln |\mathbf{\Sigma}_{\text{pooled}}| – \sum_{k=1}^K (n_k – 1) \ln |\mathbf{\Sigma}_k|$$
تجدر الإشارة المنهجية إلى أن اختبار بوكس لإم يتسم بحساسية مفرطة وشديدة جداً لأي انحراف طفيف عن التوزيع الطبيعي متعدد المتغيرات، كما أنه يميل إلى رفض فرضية العدم بسهولة في العينات الكبيرة حتى عندما تكون الفروق في التباينات غير مؤثرة عملياً. لذلك، يوصي المنهجيون باعتماد مستوى دلالة صارم (مثل $\alpha = 0.001$) عند تفسير نتائج اختبار بوكس، ودمج النتائج مع الفحص البصري لمصفوفات التشتت قبل اتخاذ القرار النهائي باعتماد QDA.
3.3 معالجة التعدد الخطي العالي والقيم المتطرفة
يشكل التعدد الخطي الشديد (Multicollinearity) بين المتغيرات المستقلة تهديداً مباشراً لاستقرار نموذج التحليل التمييزي التربيعي. عندما يكون هناك ارتباط خطي شبه تام بين متغيرين أو أكثر داخل فئة معينة، تقترب مصفوفة التغاير لتلك الفئة $\mathbf{\Sigma}_k$ من حالة الشذوذ أو الانحدار الخطي (Singularity)، مما يجعل محددها قريباً من الصفر ($|\mathbf{\Sigma}_k| \approx 0$). يؤدي هذا إلى تعذر حساب مقلوب المصفوفة $\mathbf{\Sigma}_k^{-1}$ رياضياً وتوليد أخطاء برمجية كارثية (Rank Deficiency Error).
لتشخيص هذه المشكلة وتفاديها، يجب فحص مصفوفات الارتباط البيني واستخدام معامل تضخم التباين (Variance Inflation Factor – VIF) لكل متغير، والتخلص من المتغيرات المتطابقة أو دمجها باستخدام تقنيات تقليل الأبعاد مثل تحليل المكونات الأساسية (Principal Component Analysis – PCA) قبل تنفيذ QDA.
من جانب آخر، تؤثر القيم المتطرفة متعددة المتغيرات (Multivariate Outliers) تأثيراً هداماً على نموذج QDA، لأنها تشوه تقدير متجهات المتوسطات وتضاعف التباينات في مصفوفة التغاير بصورة مفرطة، مما يؤدي إلى انحراف حدود القرار التربيعية بعيداً عن بنيتها الحقيقية. يتم اكتشاف هذه القيم الشاذة عبر حساب مسافة ماهالانوبيس لكل حالة مقارنة بتوزيع مربع كاي واستبعاد أو تعديل المشاهدات التي تتجاوز القيم الحرجة بدرجة دلالة قاطعة ($p < 0.001$).
4. الخطوة 1: إعداد بيئة العمل وتثبيت وتحميل الحزم اللازمة في R
4.1 تثبيت واستدعاء حزمة MASS الأساسية
تعد حزمة MASS (Modern Applied Statistics with S)، المطورة بواسطة فينبلز وريبلي (Venables & Ripley)، البيئة البرمجية الأساسية والأكثر رسوخاً لتنفيذ التحليل التمييزي بأنواعه في لغة R. تأتي هذه الحزمة افتراضياً مع التثبيت القياسي للغة R، ولكن استدعاءها الصريح في جلسة العمل أمر ضروري للوصول إلى دالة qda() ومحركاتها الرياضية المصممة بعناية فائقة.
لتثبيت الحزم واستدعاء مكتبة MASS، ننفذ الأوامر التالية داخل واجهة أو سكريبت R:
يتم تنفيذ أمر التثبيت عبر استدعاء الدالة القياسية:
install.packages("MASS")
ثم تحميل الحزمة في مساحة العمل النشطة عبر الأمر:
library(MASS)
توفر دالة qda() واجهة برمجية فائقة السرعة والاستقرار العددي، حيث تعتمد داخلياً على تفكيك القيمة المفردة (Singular Value Decomposition – SVD) بدلاً من الحساب المباشر لمقلوب المصفوفة، مما يقلل من تراكم أخطاء التقريب الحسابي. يجب الانتباه إلى أن تحميل حزمة MASS قد يحدث تعارضاً في بعض الدوال الشائعة (مثل دالة select() عند العمل المتزامن مع حزمة dplyr)، ولتجنب هذا التعارض يُنصح بتحديد اسم الحزمة بوضوح عند استدعاء الدوال المتشابهة (مثل dplyr::select()).
4.2 تحميل الحزم المساعدة للتصور وتحليل الأداء
لبناء بيئة عمل إحصائية وتحليلية متكاملة تتجاوز مجرد التدريب الرياضي البسيط وتغطي مراحل الفحص البصري المتقدم، وتقسيم العينات، والتقييم التشخيصي، نحتاج إلى تثبيت واستدعاء باقة من الحزم التكميلية ذات الكفاءة العالية في مجتمع R. تشمل هذه الحزم:
- حزمة ggplot2: الحزمة القياسية في مجتمع R لبناء الرسوم البيانية الاستكشافية والطبقات المرئية الجمالية عالية الدقة والجاهزة للنشر العلمي.
- حزمة caret (Classification And REgression Training): الإطار المتكامل لإدارة تجارب التعلم الآلي، والتقسيم الطبقي للبيانات، وتنفيذ التحقق المتقاطع، وتوليد مصفوفات الارتباك التفصيلية.
- حزمة klaR: حزمة متخصصة في التحليل التمييزي والتصنيف، وتوفر دالة
partimat()الاستثنائية لرسم حدود القرار المنحنية ثنائية الأبعاد. - حزمة MVN: الحزمة الرائدة لإجراء كافة الاختبارات التشخيصية للتوزيع الطبيعي متعدد المتغيرات، واختبار مارديا، واكتشاف القيم الشاذة.
- حزمة pROC: الحزمة المتخصصة في حساب ورسم منحنيات الخصائص التشغيلية للمستقبل (ROC Curves) وحساب المساحة تحت المنحنى (AUC) للتصنيفات الثنائية والمتعددة.
لتثبيت وتحميل هذه المنظومة المتكاملة، نستخدم الكود المنسق التالي:
required_packages <- c("MASS", "caret", "ggplot2", "klaR", "MVN", "pROC", "biotools")
install.packages(setdiff(required_packages, rownames(installed.packages())))
lapply(required_packages, library, character.only = TRUE)
كما يُعد تثبيت البذرة العشوائية خطوة منهجية بالغة الأهمية لضمان قابلية تكرار النتائج (Reproducibility) بدقة مطابقة عبر مختلف بيئات التشغيل، ويتم ذلك عبر تمرير قيمة رقمية ثابتة للأمر: set.seed(12345) في مستهل التحليل.
5. الخطوة 2: استكشاف وفحص البيانات وتجهيزها للتحليل
5.1 استيراد واستعراض بنية مجموعة البيانات (Dataset Inspection)
لتطبيق النموذج التمييزي التربيعي خطوة بخطوة على مثال كلاسيكي معياري ومعترف به عالمياً في الأدبيات الإحصائية، سنستخدم مجموعة بيانات زهرة السوسن (Iris Dataset) المدمجة في بيئة R الأساسية، والتي قدمها عالم الإحصاء الشهير رونالد فيشر (Ronald Fisher). تتألف هذه المجموعة من 150 مشاهدة موزعة بالتساوي (50 مشاهدة لكل صنف) عبر ثلاثة أصناف نباتية: (Setosa, Versicolor, Virginica)، مقاسة عبر أربعة متغيرات تنبؤية مستمرة: طول السبلة (Sepal.Length)، وعرض السبلة (Sepal.Width)، وطول البتلة (Petal.Length)، وعرض البتلة (Petal.Width).
نبدأ باستيراد وفحص الهيكل العام للمصفوفة والتأكد من توافق الأنواع التخزينية للمتغيرات:
data(iris)
str(iris)
summary(iris)
head(iris, 5)
يتعين التأكد القطعي من أن المتغير التابع Species معرف كعامل فئوي (Factor) في R عبر استخدام is.factor(iris$Species)، حيث تعتمد خوارزمية qda() على التعرف التلقائي على مستويات الفئات (Factor Levels) لتحديد عدد المجموعات $K$. كما يجب التحقق من خلو المصفوفة تماماً من أي قيم مفقودة (Missing Values) باستخدام الأمر التلخيصي:
sum(is.na(iris))
حيث يؤدي وجود القيم المفقودة إلى استبعاد الصفوف قسرياً مما قد يخل بتوازن العينة ما لم تتم معالجتها بالتعويض الإحصائي (Imputation).
5.2 التحليل الاستكشافي البصري للمتغيرات (Exploratory Data Analysis)
يمثل التحليل البصري الاستكشافي خطوة محورية لفهم سلوك التشتت والفصل بين المجموعات. يوفر رسم المخططات الصندوقية الملونة (Grouped Boxplots) لكل متغير مقسماً حسب الأصناف نظرة أولية ثاقبة حول تباين كل فئة وتمايز متوسطاتها الحسابية. يوضح الكود التالي كيفية إنشاء شبكة من المخططات الصندوقية الأنيقة:
par(mfrow = c(2, 2))
boxplot(Sepal.Length ~ Species, data = iris, col = c("#FF9999", "#99FF99", "#9999FF"), main = "Sepal Length by Species")
boxplot(Sepal.Width ~ Species, data = iris, col = c("#FF9999", "#99FF99", "#9999FF"), main = "Sepal Width by Species")
boxplot(Petal.Length ~ Species, data = iris, col = c("#FF9999", "#99FF99", "#9999FF"), main = "Petal Length by Species")
boxplot(Petal.Width ~ Species, data = iris, col = c("#FF9999", "#99FF99", "#9999FF"), main = "Petal Width by Species")
par(mfrow = c(1, 1))
ولفحص التفاعلات الثنائية بين المتغيرات وملاحظة التباين في أشكال السحب النقطية، نستخدم مصفوفة التشتت متعددة الأبعاد عبر دالة pairs():
pairs(iris[1:4], main = "Iris Data - Scatterplot Matrix", pch = 21, bg = c("red", "green3", "blue")[unclass(iris$Species)])
تكشف هذه المصفوفة بوضوح أن صنف Setosa ينفصل بسهولة وخطياً عن الصنفين الآخرين، في حين يتداخل صنفا Versicolor و Virginica جزئياً مع وجود انحناء واضح في العلاقات البيانية، واختلاف بيّن في حجم وانتشار السحب النقطية لكل مجموعة، مما يعطي مؤشراً بصرياً قوياً على عدم تجانس مصفوفات التغاير وملاءمة التحليل التمييزي التربيعي.
5.3 تجهيز وتقييس البيانات (Data Preprocessing & Scaling)
من الناحية النظرية الصرفة، يتميز التحليل التمييزي التربيعي بكونه ثابتاً من حيث المبدأ أمام التحويلات الخطية الأحادية؛ إذ إن تقييس المتغيرات (Standardization) عبر طرح المتوسط والقسمة على الانحراف المعياري لا يغير من قيم الاحتمالات البعدية أو دقة تصنيف النموذج، لأن مصفوفة التغاير ومقلوبها تعيد موازنة الفروق في وحدات القياس تلقائياً داخل مسافة ماهالانوبيس.
ومع ذلك، من منظور تطبيقي وبرمجي، يُنصح بشدة بإجراء تقييس البيانات عندما تتفاوت مقاييس القياس تفاوتاً هائلاً (على سبيل المثال: قياس الدخل بالآلاف مقابل قياس العمر بالعشرات أو المؤشرات الفسيولوجية بأجزاء من الملي ثانية). يسهم التقييس في تحسين الاستقرار العددي للحسابات، وتفادي الشذوذ في محددات المصفوفات، وتسهيل المقارنة المباشرة لقيم المتوسطات الجماعية.
يتم تنفيذ تقييس البيانات في R باستخدام دالة scale()، مع ضرورة الانتباه إلى حفظ معلمات التقييس (المتوسط والانحراف المعياري) الخاصة ببيانات التدريب لتطبيقها حرفياً على بيانات الاختبار، منعاً لحدوث تسريب للمعلومات (Data Leakage):
preproc_values <- caret::preProcess(iris[, 1:4], method = c("center", "scale"))
iris_scaled <- predict(preproc_values, iris[, 1:4])
iris_scaled$Species <- iris$Species
6. الخطوة 3: تقسيم البيانات إلى مجموعات التدريب والاختبار والتحقق المتقاطع
6.1 استراتيجيات تقسيم البيانات (Train/Test Split)
يعد تقييم أداء نموذج التصنيف على نفس البيانات التي استُخدمت في تدريبه خطأً منهجياً فادحاً يؤدي إلى تقدير متفائل بصورة زائفة للدقة، نظراً لظاهرة فرط المطابقة. لتقييم قدرة النموذج الحقيقية على التعميم (Generalizability) والتنبؤ بحالات جديدة غير مشاهدة، يتعين فصل البيانات إلى مجموعتين مستقلتين: مجموعة تدريب (Training Set) لتقدير معلمات النموذج، ومجموعة اختبار (Testing Set) لتقييم الأداء النهائي.
نظراً لطبيعة المتغير التابع الفئوي، يجب استخدام التقسيم الطبقي (Stratified Partitioning)، والذي يضمن الحفاظ على نفس النسب المئوية لكل فئة من الفئات عبر مجموعتي التدريب والاختبار، وهو أمر فائق الأهمية لا سيما في حالات الفئات غير المتوازنة. ننفذ هذا التقسيم بنسبة شائعة ومثالية (80% للتدريب و 20% للاختبار) باستخدام حزمة caret:
set.seed(42)
train_index <- caret::createDataPartition(iris$Species, p = 0.80, list = FALSE)
train_data <- iris[train_index, ]
test_data <- iris[-train_index, ]
يمكن التحقق من التوزيع المتساوي للأصناف عبر المجموعتين باستخدام دالة الجداول التكرارية:
prop.table(table(train_data$Species))
prop.table(table(test_data$Species))
6.2 إعداد التحقق المتقاطع (k-Fold Cross-Validation)
عندما تكون العينات المتاحة متوسطة أو صغيرة الحجم، قد يتأثر تقييم النموذج بالتقسيم العشوائي المفرد لمجموعة الاختبار. ولمعالجة هذا القيد ورفع مستوى الدقة الإحصائية لتقدير معدل خطأ التعميم، يُلجأ إلى تقنية التحقق المتقاطع ذي الـ k طيات (k-Fold Cross-Validation)، حيث يتم تقسيم بيانات التدريب إلى $k$ أجزاء متساوية، وتدريب النموذج $k$ مرات بحيث يُستخدم كل جزء كمجموعة تحقق لمرة واحدة بينما تدرب الأجزاء المتبقية النموذج.
توفر حزمة caret إطاراً منهجياً موحداً لضبط عمليات التحقق المتقاطع المكرر (Repeated k-Fold Cross-Validation)، والذي يعيد تكرار العملية بأكملها عدة مرات لتقليل تباين التقدير إلى أدنى حد ممكن. نعد هذا الإجراء في R عبر الكود التالي:
fit_control <- caret::trainControl(
method = "repeatedcv",
number = 10,
repeats = 5,
classProbs = TRUE,
savePredictions = "final"
)
يضمن هذا الإعداد الدقيق تقييماً صارماً وموضوعياً لكفاءة خوارزمية QDA قبل تعميمها النهائي على المشاهدات المستقلة.
7. الخطوة 4: بناء وتدريب نموذج التحليل التمييزي التربيعي باستخدام دالة qda()
7.1 صياغة واستدعاء دالة qda() في R
بعد إعداد وتجهيز البيانات وتقسيمها، نصل إلى المرحلة المحورية وهي تدريب نموذج التحليل التمييزي التربيعي باستخدام الدالة الأساسية qda() من حزمة MASS. تتيح الدالة استخدام صيغة المعادلات الرمزية (Formula Interface) المألوفة في R، حيث يوضع المتغير التابع على يسار المعامل التوجيهي (~)، متبوعاً بجميع المتغيرات التنبؤية، أو باستخدام النقطة (.) للإشارة إلى تضمين كافة الأعمدة الأخرى في مصفوفة البيانات.
ندرب النموذج على بيانات التدريب عبر الأمر المباشر التالي:
qda_model <- MASS::qda(Species ~ Sepal.Length + Sepal.Width + Petal.Length + Petal.Width, data = train_data)
بدلاً من ذلك، يمكن استخدام الصيغة المصفوفية المباشرة التي تفصل مصفوفة السمات $X$ عن متجه الفئات $Y$، وهي مفيدة جداً عند التعامل مع عدد هائل من المتغيرات:
qda_model_matrix <- MASS::qda(x = train_data[, 1:4], grouping = train_data$Species)
كما تتيح وسيطة prior تخصيص الاحتمالات القبلية للفئات يدوياً في حال رغب الباحث في تعديل الأوزان التناسبية بناءً على دراسات وبائية أو سكانية خارجية، كأن نحدد مثلاً: prior = c(0.2, 0.4, 0.4)، وفي حال عدم تحديدها، تقوم الدالة بحسابها تلقائياً كنسبة تكرار كل فئة في عينة التدريب.
7.2 معالجة الخيارات المتقدمة أثناء التدريب
تتضمن دالة qda() خيارات تشغيلية متقدمة تعزز من مرونة التطبيق الإحصائي. أحد أبرز هذه الخيارات هو وسيط التحقق التبادلي الفردي المدمج (Leave-One-Out Cross-Validation)، والذي يتم تفعيله عبر تمرير المعامل CV = TRUE أثناء استدعاء الدالة:
qda_loocv <- MASS::qda(Species ~ ., data = train_data, CV = TRUE)
عند استخدام هذا الخيار، لا ترجع الدالة كائن نموذج تقليدي، بل تعيد قائمة تحتوي مباشرة على التنبؤات الناتجة عن استبعاد كل حالة وتدريب النموذج على بقية الحالات ($n-1$)، مما يوفر تقييماً سريعاً ودقيقاً لأداء النموذج دون الحاجة لكتابة حلقات تكرارية معقدة.
كما يجب التعامل الحذر مع التحذيرات البرمجية الشائعة أثناء التدريب؛ ومن أشهرها تحذير “group is empty or has rank deficiency”، والذي يظهر عندما يكون عدد المشاهدات داخل إحدى الفئات أقل من أو مساوياً لعدد المتغيرات التنبؤية ($n_k le p$). في هذه الحالة، تصبح مصفوفة التغاير لتلك الفئة غير قابلة للعكس، ويجب على الباحث إما تقليل عدد المتغيرات التنبؤية أو تجميع بيانات إضافية لتلك الفئة المحددة لضمان اكتمال الرتبة الرياضية للمصفوفة.
8. الخطوة 5: تفسير مخرجات النموذج والمعاملات الإحصائية
8.1 تحليل الاحتمالات القبلية والمتوسطات الجماعية
لاستعراض المخرجات الإحصائية المفصلة للنموذج المدرب، نقوم بطباعة كائن النموذج مباشرة في بيئة R:
print(qda_model)
تحتوي المخرجات على قسمين رئيسيين بالغي الأهمية:
- الاحتمالات القبلية للمجموعات (Prior probabilities of groups): توضح النسب الاحتمالية المخصصة لكل فئة قبل معاينة قيم المتغيرات، وتكون في مثالنا متساوية ($1/3 \approx 0.333$) نتيجة التوزيع المتوازن لبيانات التدريب.
- متوسطات المجموعات (Group means): يمثل جدولاً تفصيلياً يوضح متجه المتوسط الحسابي ($boldsymbol{\mu}_k$) لكل متغير من المتغيرات الأربعة داخل كل فئة من الفئات الثلاث.
يوفر فحص جدول المتوسطات رؤية استدلالية مباشرة حول السمات المميزة لكل فئة؛ حيث نلاحظ مثلاً أن صنف Setosa يتميز بمتوسطات منخفضة جداً لطول وعرض البتلة (Petal.Length و Petal.Width) مقارنة بصنفي Versicolor و Virginica، ولكنه في المقابل يمتلك أعلى متوسط لعرض السبلة (Sepal.Width). تعبر هذه المتوسطات عن مراكز الثقل الهندسي (Centroids) لكل توزيع احتمالي في الفضاء متعدد الأبعاد.
8.2 فهم الاختلاف عن مخرجات LDA
عند مقارنة مخرجات كائن qda() بمخرجات كائن lda()، يلاحظ الباحث غياباً تاماً لجدول “معاملات التمييز الخطي” (Coefficients of linear discriminants) المعروف باسم أوزان كانونيكال (Canonical Weights). يرجع هذا الغياب الهيكلي إلى الطبيعة الرياضية لـ QDA؛ ففي التحليل الخطي، توجد مصفوفة تغاير موحدة تتيح إسقاط البيانات على محاور خطية جديدة تميز بين الفئات إلى أقصى حد ممكن. أما في التحليل التربيعي، فإن حدود القرار تتكون من تراكيب غير خطية تتضمن تفاعلات وتربيعات لا يمكن اختزالها في مجموعة معاملات ترجيحية خطية وحيدة.
بدلاً من ذلك، يتم الفصل في QDA عبر حساب مسافة ماهالانوبيس التربيعية المنفصلة لكل مشاهدة مقارنة بمركز كل فئة مع ترجيحها بمصفوفة التغاير الخاصة بتلك الفئة. يمكن للباحث استخراج وتقدير مصفوفات التباين والتغاير الفردية لكل فئة برمجياً للتحقق من بنيتها الداخلية وتفسير أسباب الانحناء في حدود القرار:
cov_setosa <- cov(train_data[train_data$Species == "setosa", 1:4])
cov_versicolor <- cov(train_data[train_data$Species == "versicolor", 1:4])
cov_virginica <- cov(train_data[train_data$Species == "virginica", 1:4])
print(cov_setosa)
print(cov_versicolor)
print(cov_virginica)
يكشف فحص هذه المصفوفات عن اختلافات جوهرية في قيم التباين وعلاقات التغاير المشتركة بين الأصناف، مما يؤكد صحة الفرضية النظرية لـ QDA ويبرر عدم إمكانية تمثيل النموذج بمعادلات خطية مبسطة.
9. الخطوة 6: إجراء التنبؤات وتوليد مصفوفة الارتباك
9.1 تطبيق دالة predict() على بيانات الاختبار المستقلة
تتمثل الخطوة التالية في تطبيق النموذج المدرب لتصنيف مشاهدات جديدة بالكامل من خلال تمرير مجموعة الاختبار المستقلة test_data إلى دالة التنبؤ العامة predict():
qda_predictions <- predict(qda_model, newdata = test_data)
يعيد هذا الاستدعاء البرمجي كائناً من نوع قائمة (List) غنياً بالمعلومات التحليلية يتألف من عنصرين أساسيين:
qda_predictions$class: متجه يحتوي على الفئات التنبؤية النهائية المسندة لكل مشاهدة بناءً على قاعدة تعظيم الاحتمال البعدي.qda_predictions$posterior: مصفوفة ذات أبعاد ($N_{test} \times K$) تحتوي على الاحتمال البعدي الدقيق لكل عينة لانتمائها إلى كل صنف من الأصناف الثلاثة، حيث يتراوح كل احتمال بين 0 و 1، ومجموع الاحتمالات في كل صف يساوي 1 تماماً.
يمكننا دمج البيانات الأصلية مع الفئات المتنبأ بها والاحتمالات البعدية في إطار بيانات موحد لفحص الحالات وتحديد درجة اليقين الإحصائي للتصنيف:
results_df <- data.frame(
Actual = test_data$Species,
Predicted = qda_predictions$class,
Prob_Setosa = round(qda_predictions$posterior[, "setosa"], 4),
Prob_Versicolor = round(qda_predictions$posterior[, "versicolor"], 4),
Prob_Virginica = round(qda_predictions$posterior[, "virginica"], 4)
)
head(results_df, 10)
9.2 بناء وتحليل مصفوفة الارتباك (Confusion Matrix)
تعد مصفوفة الارتباك (Confusion Matrix) الأداة التشخيصية الأولى لتقييم كفاءة النموذج وتحديد أنماط النجاح والخطأ في التصنيف عبر مطابقة الفئات الحقيقية الفعلية بالفئات التنبؤية الصادرة عن النموذج. يمكن إنشاء المصفوفة البسيطة عبر دالة الجداول التكرارية المتقاطعة:
conf_table <- table(Predicted = qda_predictions$class, Actual = test_data$Species)
print(conf_table)
وللحصول على تقرير إحصائي وتحليلي شامل يتضمن فترات الثقة والاختبارات الدلالية ومقاييس الأداء الفئوية، نستخدم دالة confusionMatrix() المتقدمة من حزمة caret:
conf_matrix_detailed <- caret::confusionMatrix(qda_predictions$class, test_data$Species)
print(conf_matrix_detailed)
يقدم هذا التقرير تفصيلاً دقيقاً للحالات المصنفة تصنيفاً صحيحاً (القيم الواقعة على القطر الرئيسي للمصفوفة) والحالات المصنفة تصنيفاً خاطئاً (خارج القطر الرئيسي). يتيح هذا التوزيع للباحث رصد تداخل الفئات بدقة؛ كأن يتبين مثلاً أن صنف Setosa صُنف بدقة متناهية دون أي خطأ (حساسية 100%)، في حين قد يحدث خطأ تصنيفي طفيف ومتبادل بين صنفي Versicolor و Virginica نتيجة التقارب المورفولوجي والتدافع في مناطق الحدود غير الخطية.
10. الخطوة 7: تقييم أداء النموذج ومقاييس الدقة الإحصائية
10.1 حساب مقاييس الأداء العامة والتفصيلية
يتطلب التقييم الإحصائي الرصين لنموذج QDA حساب منظومة متكاملة من المقاييس الرقمية التي تعكس كفاءته الشاملة وتوازن أدائه عبر مختلف الفئات. تشمل هذه المقاييس:
- الدقة الكلية (Overall Accuracy): نسبة المشاهدات المصنفة تصنيفاً صحيحاً إلى إجمالي عدد المشاهدات، وتُحسب بالمعادلة: $\text{Accuracy} = \frac{\sum \text{True Classifications}}{N_{test}}$.
- نسبة الخطأ الإجمالي (Misclassification Rate): وتساوي المتمم الحسابي للدقة ($1 – \text{Accuracy}$).
- معامل كابا لكوهين (Cohen’s Kappa): مقياس دقيق يقيس التوافق بين التصنيف الفعلي والتنبؤي بعد استبعاد أثر التوافق الناشئ عن الصدفة المحضة، وتدل قيمه الأعلى من 0.85 على توافق شبه تام وممتاز.
- معدل عدم التدخل (No Information Rate – NIR): يمثل نسبة تكرار الفئة الأكثر شيوعاً في العينة، ويُقارن بالدقة الكلية لاختبار ما إذا كان النموذج يقدم أداءً ذا دلالة إحصائية متفوقة على التخمين الساذج ($p\text{-value} < 0.05$).
- الحساسية (Sensitivity / Recall) والنوعية (Specificity): تُحسب لكل فئة على حدة وفق استراتيجية (One-vs-All) لتقييم قدرة النموذج على اكتشاف الإيجابيات الحقيقية واستبعاد السلبيات الكاذبة.
- مقياس F1 المتوازن (Balanced F1-Score): يمثل الوسط التوافقي بين الدقة الإيجابية (Precision) والحساسية، ويعد معياراً مثالياً للحكم على جودة التصنيف في البيئات غير المتوازنة.
يمكن استخراج هذه المؤشرات الفئوية المتقدمة برمجياً من كائن الارتباك عبر الكود:
print(conf_matrix_detailed$byClass[, c("Sensitivity", "Specificity", "Pos Pred Value", "Balanced Accuracy")])
10.2 تحليل منحنيات الخصائص التشغيلية للمستقبل (ROC & AUC)
يوفر تحليل منحنى الخصائص التشغيلية للمستقبل (Receiver Operating Characteristic – ROC) تقييماً ديناميكياً لقدرة النموذج التمييزية عبر جميع عتبات الاحتمال الممكنة، دون التقيد بعتبة القطع الافتراضية (0.5). وتمثل المساحة تحت المنحنى (Area Under the Curve – AUC) معياراً كلياً يحدد احتمالية أن يقوم النموذج بترتيب حالة إيجابية عشوائية في مرتبة أعلى من حالة سلبية عشوائية.
في حالات التصنيف متعدد الفئات (Multiclass Classification)، يُطبق تحليل ROC باستخدام منهجية هاند وتيل (Hand & Till, 2001) القائمة على حساب متوسط المساحات تحت المنحنى لجميع الأزواج الثنائية الممكنة بين الفئات. نستخدم حزمة pROC المتقدمة لتنفيذ هذا الحساب ورسم المنحنيات:
roc_multiclass <- pROC::multiclass.roc(response = test_data$Species, predictor = qda_predictions$posterior)
print(roc_multiclass$auc)
ولرسم منحنيات ROC المنفصلة لكل فئة مقابل الفئات الأخرى بنسق متعدد الطبقات، نستخدم الأوامر التالية:
roc_setosa <- pROC::roc(test_data$Species == "setosa", qda_predictions$posterior[, "setosa"])
roc_versicolor <- pROC::roc(test_data$Species == "versicolor", qda_predictions$posterior[, "versicolor"])
roc_virginica <- pROC::roc(test_data$Species == "virginica", qda_predictions$posterior[, "virginica"])
plot(roc_setosa, col = "red", main = "Multiclass ROC Curves (QDA)", lwd = 2)
lines(roc_versicolor, col = "green3", lwd = 2)
lines(roc_virginica, col = "blue", lwd = 2)
legend("bottomright", legend = c("Setosa (AUC = 1.00)", "Versicolor", "Virginica"), col = c("red", "green3", "blue"), lwd = 2)
تشير قيم AUC القريبة من 1.00 إلى قوة فصل استثنائية للنموذج، وتعكس قدرة الحدود التربيعية على فرز التوزيعات الاحتمالية للمجموعات بكفاءة بالغة.
11. الخطوة 8: التصور البياني لحدود القرار التربيعية في R
11.1 رسم حدود الفصل باستخدام حزمة klaR ودالة partimat()
يعد التصور البياني للحدود الفاصلة بين المجموعات من أبلغ الوسائل التعليمية والتحليلية لفهم السلوك الهندسي للتحليل التمييزي التربيعي. توفر حزمة klaR دالة استثنائية تسمى partimat() (Partition Matrix)، والتي تقوم بتدريب نموذج QDA على كل زوج ممكن من المتغيرات التنبؤية ورسم مصفوفة من المخططات ثنائية الأبعاد التي تعرض أسطح القرار التربيعية المنحنية ومناطق النفوذ اللوني المصاحبة لكل فئة، مع إسقاط نقاط البيانات الفعلية وتظليل الحالات المصنفة تصنيفاً خاطئاً.
ننفذ هذا الرسم التوضيحي الرائع باستخدام الكود التالي:
klaR::partimat(Species ~ Sepal.Length + Sepal.Width + Petal.Length + Petal.Width, data = train_data, method = "qda",
imageplot = TRUE, col.correct = "black", col.wrong = "red",
main = "QDA Partition Matrix & Quadratic Boundaries")
عند تأمل هذه المصفوفة البيانية، يظهر الفارق الجوهري والواضح بين QDA و LDA؛ حيث لا تكون الخطوط الفاصلة مستقيمة على الإطلاق، بل تظهر على هيئة منحنيات مكافئة وإهليلجية تحيط بمناطق تركز كل فئة وتتكيف مع درجة اتساع وتشتت السحب النقطية، وتوفر الدالة أيضاً معدل الخطأ التجريبي المدون أعلى كل لوحة فرعية لتقييم قدرة كل زوج من المتغيرات على الفصل الفئوي.
11.2 بناء شبكة حدود مخصصة باستخدام ggplot2
لتوليد رسم بياني احترافي عالي التخصيص يصلح للنشر الأكاديمي، يمكننا استخدام حزمة ggplot2 عبر بناء شبكة نقطية متناهية الصغر (Dense Grid) تغطي فضاء متغيرين رئيسيين (مثل Petal.Length و Petal.Width)، والتنبؤ بالفئة الاحتمالية لكل نقطة داخل هذه الشبكة، ثم رسم المساحات الكنتورية الملونة.
يوضح الكود التالي البناء الكامل لهذا التصور المتقدم:
# تدريب نموذج ثنائي الأبعاد للتوضيح البصري
qda_2d <- MASS::qda(Species ~ Petal.Length + Petal.Width, data = train_data)
# إنشاء شبكة كثيفة من النقاط
x_range <- seq(min(train_data$Petal.Length) - 0.5, \max(train_data$Petal.Length) + 0.5, length.out = 300)
y_range <- seq(min(train_data$Petal.Width) - 0.5, \max(train_data$Petal.Width) + 0.5, length.out = 300)
grid <- expand.grid(Petal.Length = x_range, Petal.Width = y_range)
# التنبؤ بالفئات على كامل مساحة الشبكة
grid$Species <- predict(qda_2d, newdata = grid)$class
# رسم مناطق القرار والنقاط الفعلية باستخدام ggplot2
ggplot2::ggplot() +
ggplot2::geom_raster(data = grid, ggplot2::aes(x = Petal.Length, y = Petal.Width, fill = Species), alpha = 0.25) +
ggplot2::geom_point(data = train_data, ggplot2::aes(x = Petal.Length, y = Petal.Width, color = Species, shape = Species), size = 2.5) +
ggplot2::labs(title = "Quadratic Decision Boundaries (QDA) via ggplot2",
subtitle = "Curved boundaries reflecting class-specific covariance structures",
x = "Petal Length (cm)", y = "Petal Width (cm)") +
ggplot2::theme_minimal() +
ggplot2::scale_fill_brewer(palette = "Set1") +
ggplot2::scale_color_brewer(palette = "Set1")
يبرز هذا المخطط الأنيق كيف تنحني حدود القرار بسلاسة لتلتف حول فئة Setosa بنطاق ضيق، وتتسع تدريجياً لتعكس التشتت الأكبر والتباين الأوسع لفئتي Versicolor و Virginica.
12. مقارنة متقدمة ودراسة حالات نفسية وإحصائية وتطبيقات عملية
12.1 مقارنة عملية شاملة بين QDA و LDA والانحدار اللوجستي في R
لفهم الفروق التطبيقية بين النماذج التصنيفية الثلاثة الكبرى (QDA، LDA، والانحدار اللوجستي متعدد الحدود)، يمكن تدريب ومقارنة هذه النماذج على نفس بيانات التدريب واختبارها عبر التحقق المتقاطع الدقيق لتقييم الدقة والاستقرار الحسابي. ينفذ الكود التالي هذه المقارنة الشاملة باستخدام حزمة caret:
model_lda <- caret::train(Species ~ ., data = train_data, method = "lda", trControl = fit_control)
model_qda <- caret::train(Species ~ ., data = train_data, method = "qda", trControl = fit_control)
model_multinom <- caret::train(Species ~ ., data = train_data, method = "multinom", trControl = fit_control, trace = FALSE)
models_compare <- caret::resamples(list(LDA = model_lda, QDA = model_qda, Multinomial_Logit = model_multinom))
summary(models_compare)
caret::dotplot(models_compare, metric = "Accuracy", main = "Model Comparison: Accuracy Distribution")
تكشف المقارنة التجريبية عن معايير الاختيار المنهجي:
- التحليل التمييزي الخطي (LDA): نموذج منخفض التباين وسريع الحساب، ويتفوق عندما تكون أحجام العينات صغيرة ومصفوفات التغاير متجانسة تقريباً.
- التحليل التمييزي التربيعي (QDA): نموذج منخفض الانحياز وعالي المرونة، ويحقق أعلى معدلات دقة عندما تختلف مصفوفات التغاير اختلافاً حقيقياً وتتوفر عينات كافية داخل كل فئة.
- الانحدار اللوجستي متعدد الحدود: نموذج شبه معلمي قوي وأكثر متانة عند انتهاك افتراض التوزيع الطبيعي المتعدد، ولكنه قد يتطلب عينات ضخمة جداً لتحقيق نفس كفاءة QDA في البيانات الطبيعية.
12.2 دراسة حالة تطبيقية: تصنيف الاضطرابات السلوكية المعقدة
لتوضيح القوة التطبيقية للتحليل التمييزي التربيعي في سياق العلوم الإنسانية والنفسية، نفترض دراسة حالة سريرية تهدف إلى تصنيف 300 مريض إلى ثلاث مجموعات تشخيصية: (مجموعة ضابطة صحية Control، مجموعة اضطراب القلق العام GAD، ومجموعة نوبات الهلع Panic Disorder). تتألف مصفوفة القياسات من ثلاثة مؤشرات مستمرة: الاستجابة الجلدية الجلفانية (GSR)، وتقلب معدل ضربات القلب (HRV – RMSSD)، ودرجة القلق السلوكي على مقياس بيك للقلق (BAI).
في مثل هذه الحالات السريرية، يظهر الأفراد الأصحاء تبايناً فسيولوجياً ضيقاً ومستقراً، بينما يظهر مرضى نوبات الهلع تشتتاً فسيولوجياً واسعاً جداً وغير متجانس، مما يؤدي إلى رفض قاطع لفرضية تجانس مصفوفات التغاير عبر اختبار بوكس لإم ($p < 0.001$). في هذا السياق، يؤدي تطبيق LDA إلى تصنيف خاطئ لنسبة كبيرة من حالات القلق العام ونسبها إلى نوبات الهلع نتيجة فرض التشتت المتساوي.
عند تطبيق QDA عبر R، تنجح الحدود المنحنية في تشكيل نطاق إهليلجي محكم حول المجموعة الضابطة، ونطاق مقوس واسع يستوعب التذبذب الحاد في مؤشرات مرضى الهلع، مما يرفع الدقة التشخيصية الكلية من 78% في النموذج الخطي إلى 94% في النموذج التربيعي، ويوفر تقييماً احتمالياً دقيقاً لشدة الحالة السريرية يسهم في توجيه البروتوكولات العلاجية المعرفية والدوائية بدقة متناهية.
12.3 خلاصة الدليل وإرشادات الاستخدام المتقدم في R
لتنفيذ التحليل التمييزي التربيعي بأعلى معايير الرصانة العلمية والممارسات البرمجية السليمة في R، يُلخص هذا الدليل الإرشادات التنفيذية التالية:
- التحقق الصارم من الافتراضات: لا تبدأ بتدريب QDA قبل فحص التوزيع الطبيعي المتعدد واختبار بوكس لإم للتأكد من عدم تجانس مصفوفات التغاير.
- مراعاة كفاية حجم العينة: تأكد دائماً من أن حجم العينة داخل أصغر فئة ($n_k$) يفوق بشكل مريح عدد المتغيرات التنبؤية ($n_k gg p$) لتفادي مشكلات انحدار المصفوفات وتضخم التباين.
- استخدام التحليل التمييزي التربيعي المنتظم (Regularized QDA): في حال كانت أبعاد المتغيرات مرتفعة، يُنصح باللجوء إلى التحليل التمييزي المنتظم عبر حزمة
klaRودالةrda()، والتي تطبق معلمات انكماش (Shrinkage Parameters $\lambda, \gamma$) للمزج بين مصفوفات التغاير الفردية والمصفوفة المشتركة وتثبيت مقلوب المصفوفات. - التوثيق والتكرارية: احرص دائماً على توثيق بيئة العمل وحفظ نسخ الحزم المستخدمة عبر أمر
sessionInfo()وتثبيت البذور العشوائية لضمان إمكانية إعادة إنتاج النتائج في الأبحاث المنشورة.
خاتمة واستنتاجات ختامية
يمثل التحليل التمييزي التربيعي (Quadratic Discriminant Analysis) قمة التطور في نماذج التصنيف المعلمية متعددة المتغيرات، حيث يجمع بأناقة فريدة بين الصرامة الاحتمالية البايزية والمرونة الهندسية غير الخطية. ومن خلال كسر قيد تجانس مصفوفات التباين والتغاير الذي يفرضه التحليل الخطي، يقدم QDA حلاً نموذجياً للمشكلات التصنيفية المعقدة في العلوم السلوكية، والنفسية، والطبية الحيوية التي تتسم بالتباين الطبيعي غير المتكافئ بين المجموعات.
وقد وفرت لغة البرمجة الإحصائية R، عبر حزمة MASS والمنظومة الشاملة المحيطة بها، بيئة حوسبية استثنائية تمكن الباحثين من الانتقال بسلاسة من مرحلة الفحص الاستكشافي واختبار الفروض التوزيعية، إلى بناء النماذج، وضبط عتبات القرار، والتقييم المتقاطع متعدد المقاييس، والتصور البياني عالي الجودة. إن الاستخدام الواعي والمنهجي لهذا الأسلوب الإحصائي، المقترن بفهم عميق للمفاضلة بين الانحياز والتباين وشروط الاستقرار العددي، يعد إضافة نوعية لأي باحث أو محلل بيانات يسعى إلى استنطاق البيانات متعددة الأبعاد بدقة وموثوقية علمية رفيعة.
المراجع الأكاديمية (References)
Box, G. E. P. (1949). A general distribution theory for a class of likelihood criteria. Biometrika, 36(3/4), 317–346. https://doi.org/10.2307/2332671
Fisher, R. A. (1936). The use of multiple measurements in taxonomic problems. Annals of Eugenics, 7(2), 179–188. https://doi.org/10.1111/j.1469-1809.1936.tb02137.x
Friedman, J. H. (1989). Regularized discriminant analysis. Journal of the American Statistical Association, 84(405), 165–175. https://doi.org/10.1080/01621459.1989.10478752
Hand, D. J., & Till, R. J. (2001). A simple generalisation of the area under the ROC curve for multiple class classification problems. Machine Learning, 45(2), 171–186. https://doi.org/10.1023/A:1010920819831
Hastie, T., Tibshirani, R., & Friedman, J. (2009). The elements of statistical learning: Data mining, inference, and prediction (2nd ed.). Springer. https://doi.org/10.1007/978-0-387-84858-7
James, G., Witten, D., Hastie, T., & Tibshirani, R. (2021). An introduction to statistical learning: With applications in R (2nd ed.). Springer. https://doi.org/10.1007/978-1-0716-1418-1
Korkmaz, S., Goksuluk, D., & Zararsiz, G. (2014). MVN: An R package for assessing multivariate normality. The R Journal, 6(2), 151–162. https://doi.org/10.32614/RJ-2014-031
Kuhn, M. (2008). Building predictive models in R using the caret package. Journal of Statistical Software, 28(5), 1–26. https://doi.org/10.18637/jss.v028.i05
Mardia, K. V. (1970). Measures of multivariate skewness and kurtosis with applications. Biometrika, 57(3), 519–530. https://doi.org/10.1093/biomet/57.3.519
Robin, X., Turck, N., Hainard, A., Tiberti, N., Lisacek, F., Sanchez, J. C., & Müller, M. (2011). pROC: An open-source package for R and S+ to analyze and compare ROC curves. BMC Bioinformatics, 12(1), 77. https://doi.org/10.1186/1471-2105-12-77
Royston, J. P. (1983). Some techniques for assessing multivariable normality based on the Shapiro-Wilk W. Applied Statistics, 32(2), 121–133. https://doi.org/10.2307/2347291
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
Weihs, C., Ligges, U., Luebke, K., & Raabe, N. (2005). klaR analyzing German business cycles. In D. Baier, R. Decker, & T. Schmidt-Thieme (Eds.), Data analysis and decision support (pp. 335–343). Springer. https://doi.org/10.1007/3-540-28397-8_36
Wickham, H. (2016). ggplot2: Elegant graphics for data analysis. Springer-Verlag New York. https://ggplot2.tidyverse.org