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

كيفية حساب BIC في R

دليل أكاديمي شامل ومفصل حول كيفية حساب معيار المعلومات البايزي (BIC) في لغة R الإحصائية لمقارنة وتقييم النماذج الرياضية بدقة.

تاريخ النشر

يحتل اختيار النماذج الإحصائية (Model Selection) مكانة مركزية في الاستدلال الإحصائي الحديث وتحليل البيانات التجريبية والتطبيقية، حيث يواجه الباحث والمحلل باستمرار معضلة الموازنة الدقيقة بين قدرة النموذج على تمثيل البيانات المشاهدة وتفسيرها بدقة من جهة، ومخاطر الوقوع في فخ التعقيد المفرط والإفراط في التخصيص (Overfitting) من جهة أخرى. وفي هذا السياق، برز معيار المعلومات البايزي (Bayesian Information Criterion)، المعروف اختصاراً بـ BIC، كواحد من أقوى الأدوات الاستدلالية وأكثرها رسوخاً في الأدبيات المنهجية لمقارنة النماذج المتنافسة والمفاضلة بينها بناءً على مبدأ التقتير البارامتري (Parsimony).

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

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

1. مقدمة شاملة حول معيار المعلومات البايزي (BIC) وأهميته الإحصائية

1.1 التعريف النظري لمعيار المعلومات البايزي (Bayesian Information Criterion)

يرجع التأسيس التاريخي لمعيار المعلومات البايزي إلى الورقة العلمية المفصلية التي نشرها عالم الإحصاء الرياضي جدعون شوارتز (Gideon Schwarz) عام 1978 تحت عنوان “تقدير بُعد النموذج” (Estimating the Dimension of a Model). وانطلق شوارتز في صياغته لهذا المعيار من المنظور البايزي الصرف، ساعياً إلى ابتكار مقياس تقريبي لحساب الاحتمالية البعدية (Posterior Probability) للنماذج الإحصائية المرشحة دون الحاجة إلى الخوض في تعقيدات التكامل الرقمي المجهد لحساب عوامل بايز (Bayes Factors) واختيار التوزيعات القبلية غير الإخبارية (Non-informative Priors).

يقوم المفهوم الجوهري للمعيار على تقييم جودة توافق النموذج (Goodness of Fit) مع البيانات التجريبية المرصودة، ولكن مع إخضاع هذا التوافق لمبدأ التقتير وحفظ المعالم المعروف بنصل أوكام (Occam’s Razor). ويعني ذلك أن النموذج لا يُكافأ بمجرد قدرته على تقليل أخطاء القياس أو رفع قيمة دالة الإمكان، بل يُحاسب بصرامة على كل معلمة حرة أو متغير إضافي يتم إقحامه في البنية الرياضية، وذلك لمنع استنزاف درجات الحرية وتجنب التقاط الضوضاء العشوائية كعلاقات هيكلية حقيقية.

يتجلى الفارق الجوهري بين المعايير القائمة على نظرية المعلومات والمقاربة البايزية كمعيار BIC، وبين اختبارات الفرضيات التقليدية القائمة على القيمة الاحتمالية (p-value) واختبار نسبة الإمكان (Likelihood Ratio Test)، في أن المعايير الأولى لا تفترض وجود “فرضية صفرية” يتعين رفضها أو قبولها ضمن عتبات تعسفية مثل مستوى الدلالة 0.05. بل تقدم تقييماً نسبياً وترتيباً تفاضلياً لجميع النماذج المتنافسة في آن واحد، سواء كانت تلك النماذج متداخلة داخلياً (Nested) أو غير متداخلة، مما يحرر الباحث من قيود التوزيع الشكلي لاختبارات الفروق التقليدية.

1.2 دور معيار BIC في الاستدلال واختيار النماذج المثلى

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

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

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

1.3 تفسير القيم الناتجة وقاعدة اتخاذ القرار الإحصائي

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

ولتقييم قوة الدليل الإحصائي الداعم لأحد النماذج في مواجهة نموذج بديل، يتم حساب الفروق النسبية لقيم المعيار والمعروفة بقيم دلتا:
$$\Delta \text{BIC}_i = \text{BIC}_i – \text{BIC}_{\min}$$
وقد وضع علماء الإحصاء، وتحديداً أدريان رافتري (Adrian Raftery, 1995)، سلماً إرشادياً دقيقاً لتفسير هذه الفروق:

  • من 0 إلى 2 وحدة: دليل ضعيف وغير ذي دلالة ترجيحية تستحق الذكر (Weak Evidence)، ويكون النموذجان متكافئين عملياً.
  • من 2 إلى 6 وحدات: دليل إيجابي ومعتدل (Positive Evidence) لصالح النموذج ذي القيمة الأقل.
  • من 6 إلى 10 وحدات: دليل قوي وحاسم (Strong Evidence) يرجح تفضيل النموذج الأبسط بشكل واضح.
  • أكبر من 10 وحدات: دليل قاطع وفائق القوة (Decisive/Very Strong Evidence) يجعل النموذج البديل غير مرجح إحصائياً بالمرة.

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

2. الإطار الرياضي والنظري لمعادلة معيار المعلومات البايزي (BIC)

2.1 الصيغة العامة القائمة على دالة الإمكان الأعظم (Log-Likelihood)

تعتمد الصيغة البنائية لمعيار المعلومات البايزي، كما اشتقها شوارتز بالاعتماد على طريقة لابلاس التقريبية للتكامل (Laplace Approximation)، على المعادلة القياسية التالية:

$$\text{BIC} = -2 \cdot \ln(\hat{L}) + k \cdot \ln(n)$$

حيث تمثل الرموز المكونات الإحصائية التالية:

  • $\hat{L}$ (Maximum Likelihood): القيمة العظمى لدالة الإمكان المقدرة للنموذج، والتي تشير إلى احتمالية توليد البيانات المشاهدة تحت مظلة المعالم التقديرية المثلى. ويتم التعبير عنها رياضياً بلوغاريتم الإمكان الطبيعي $\ln(\hat{L})$ أو $log L$.
  • $k$ (Number of Parameters): عدد المعالم الحرة المقدرة داخل النموذج، ويشمل ذلك معاملات المتغيرات التفسيرية (Slopes)، والثابت العام (Intercept)، ومعلمة تباين الخطأ العشوائي ($\sigma^2$) في نماذج الانحدار الخطي.
  • $n$ (Sample Size): حجم العينة الفعلي المستخدم في مطابقة النموذج بعد استبعاد القيم المفقودة.

ترتبط هذه المعادلة ارتباطاً مباشراً بالاحتمالية البعدية للنموذج $P(M_i | D)$ بالنظر إلى البيانات $D$. فبافتراض وجود توزيع قبلي متساوٍ لجميع النماذج المتنافسة ($P(M_i) = 1/K$)، يمكن إثبات أن $\text{BIC}$ يمثل تقريباً من الرتبة الصفرية لضعف سالب لوغاريتم الاحتمالية البعدية المتكاملة للنموذج، مما يجعل تصغير قيمة المعيار مكافئاً تماماً لتعظيم الاحتمال البعدي للنموذج في ضوء المعطيات المشاهدة.

2.2 صيغة مجموع مربعات البواقي (RSS) في الانحدار الخطي البسيط والمتعدد

في الحالات الخاصة لنماذج الانحدار الخطي الكلاسيكي، حيث تفترض الأخطاء العشوائية توزيعاً طبيعياً متماثلاً بمتوسط صفري وتباين ثابت غير معلوم ($\epsilon_i \sim \mathcal{N}(0, \sigma^2)$)، تأخذ دالة لوغاريتم الإمكان الأعظم شكلاً تحليلياً مباشراً يعتمد حصرياً على مجموع مربعات البواقي (Residual Sum of Squares – RSS). ومن خلال التعويض عن مقدر الإمكان الأعظم للتباين $\hat{\sigma}^2 = \frac{\text{RSS}}{n}$ في دالة الإمكان الطبيعية، يمكن إعادة اشتقاق معيار BIC بالصيغة التبسيطية التالية:

$$\text{BIC} = n \cdot \ln\left(\frac{\text{RSS}}{n}\right) + k \cdot \ln(n) + C$$

حيث يمثل $C$ ثابتاً رياضياً تقاربياً يتضمن حدود التوزيع الطبيعي وثوابت $\pi$. وفي التطبيقات البرمجية والمقارنات النسبية، يتم غالباً إسقاط هذا الثابت لأنه يظل متطابقاً في جميع النماذج المطبقة على نفس مجموعة البيانات، لتصبح الصيغة العملية المعتمدة في التحليل الجبري:

$$\text{BIC}_{\text{RSS}} = n \cdot \ln\left(\frac{\text{RSS}}{n}\right) + k \cdot \ln(n)$$

يلعب مجموع مربعات البواقي هنا دور المؤشر الرئيس لعدم التوافق؛ فكلما استطاعت المتغيرات المستقلة تفسير جزء أكبر من التباين الكلي للمتغير التابع، تقلصت قيمة $\text{RSS}$، مما يؤدي إلى خفض الجزء الأول من المعادلة. ومع ذلك، فإن إدخال معالم جديدة غير ذات فاعلية حقيقية لن يخفض قيمة $\text{RSS}$ بالقدر الكافي لتعويض الزيادة في حد العقوبة $k \cdot \ln(n)$، مما يؤدي بالضرورة إلى ارتفاع القيمة الإجمالية للمعيار واستبعاد النموذج الموسع.

2.3 عقوبة التعقيد (Penalty Term) وحجم العينة

يكمن التميز الرياضي لمعيار BIC في طبيعة معامل العقوبة البارامتري المتمثل في المقدار $k \cdot \ln(n)$. فعلى العكس من معيار أكايكي للمعلومات (AIC) الذي يفرض عقوبة ثابتة المقدار تساوي $2k$ بصرف النظر عن حجم العينة، نجد أن عقوبة معيار BIC ترتبط ارتباطاً لوغاريتمياً مباشراً بحجم العينة $n$.

بمجرد أن يتجاوز حجم العينة $n ge 8$ مشاهدات، تصبح قيمة $\ln(n) > \ln(8) \approx 2.079 > 2$. وهذا يعني رياضياً أن عقوبة BIC تصبح أشد قسوة وصرامة من عقوبة AIC في جميع الدراسات والأبحاث التجريبية الواقعية. ومع تضخم حجم العينة وتجاوزه للآلاف أو الملايين من المشاهدات، تتصاعد قيمة $ln(n)$ بشكل مطرد، مما يجعل المعيار يفرض قيوداً بالغة التشدد أمام إضافة أي معالم هامشية، مفضلاً النماذج الأكثر تقتيراً وتجريداً.

يترتب على هذا البناء الرياضي ميزة تقاربية جوهرية تُعرف بـ “الاتساق المقارب” (Asymptotic Consistency). وتعني هذه الخاصية الرياضية أنه عندما يقترب حجم العينة من اللانهاية ($n to \infty$)، فإن احتمال اختيار النموذج الحقيقي المولد للبيانات (True Data-Generating Model) عبر معيار BIC يقترب من الواحد الصحيح (Probability = 1)، شريطة أن يكون هذا النموذج الحقيقي متواجداً بالفعل ضمن الفضاء الاحتمالي للنماذج المرشحة للاختبار.

3. متطلبات وإعداد بيئة العمل الإحصائية في R

3.1 تجهيز وتثبيت الحزم البرمجية الأساسية والمساعدة

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

تشمل هذه الحزم حزمة MuMIn (Multi-Model Inference) المتخصصة في الاستدلال متعدد النماذج واستخراج المعايير آلياً، وحزمة performance التابعة لمنظومة easystats التي تتيح مقارنات هيكلية وبصرية فائقة الدقة، بالإضافة إلى حزمة AICcmodavg الرائدة في تكوين جداول المقارنة البايزية، وحزمة leaps لفحص جميع التوافيق الممكنة للانحدار الخطي.

لتثبيت وتحميل هذه الحزم داخل بيئة تطوير RStudio، يتم تشغيل الأوامر البرمجية التالية:

install.packages(c("MuMIn", "performance", "see", "AICcmodavg", "leaps", "lme4", "poLCA", "lavaan", "forecast"))

library(MuMIn)
library(performance)
library(AICcmodavg)

يضمن هذا الإعداد البرمجي تكامل مخرجات النمذجة وتوافقها مع محركات العرض والتقارير الرسومية، مع تعيين خيارات معالجة الأرقام العشرية عبر ضبط الخيار options(digits = 5) لتحقيق دقة رقمية واضحة ومقروءة.

3.2 استيراد واستكشاف مجموعات البيانات التجريبية

لتوضيح الجوانب التطبيقية لحساب معيار BIC، سنعتمد على مجموعات البيانات المعيارية المدمجة في بيئة R الأساسية، مثل بيانات mtcars التي تسجل مؤشرات الأداء واستهلاك الوقود لـ 32 سيارة عبر 11 متغيراً فيزيائياً وميكانيكياً، ومجموعة بيانات iris الشهيرة لبيانات القياسات المورفولوجية للنباتات، مما يتيح تطبيقاً مباشراً وموثوقاً وقابلاً لإعادة الإنتاج الإحصائي (Reproducibility).

تبدأ الخطوة التحليلية الأولى بفحص بنية البيانات والتعرف على ملامح المتغيرات ومستويات القياس:

data(mtcars)
head(mtcars, n = 5)
str(mtcars)

تعد مسألة معالجة البيانات المفقودة (Missing Values – NA) أمراً في غاية الحساسية الرياضية عند حساب ومقارنة قيم BIC. فإذا تضمنت بعض المتغيرات قيماً مفقودة، ستقوم دوال النمذجة بحذف تلك المشاهدات تلقائياً (Listwise Deletion)، مما يؤدي إلى تباين حجم العينة $n$ بين النماذج المتنافسة. ويعد حساب BIC ومقارنته بين نماذج مبنية على أحجام عينات مختلفة خطأً منهجياً فادحاً يبطل صلاحية الاستدلال الرياضي، نظراً لاعتماد حد العقوبة $k \cdot \ln(n)$ ودالة الإمكان اعتماداً كلياً على ثبات العينة. لذا يتعين دائماً تصفية البيانات المفقودة مسبقاً عبر الأمر mtcars_clean <- na.omit(mtcars) قبل البدء في بناء النماذج المقارنة.

3.3 التحقق من الفرضيات الإحصائية لبيانات الانحدار

يرتكز الاشتقاق الرياضي لمعيار BIC في النماذج الخطية على تحقق الفرضيات الكلاسيكية للتوزيع، وفي مقدمتها افتراض التوزيع الطبيعي للبواقي (Normality of Residuals)، والخطية (Linearity)، وتجانس تباين الأخطاء العشوائية (Homoscedasticity)، واستقلال المشاهدات (Independence). ويؤدي الإخلال الجسيم بهذه الفرضيات إلى تشويه تقدير دالة الإمكان الأعظم، مما ينعكس سلباً على موثوقية قيمة BIC المحسوبة.

يتم التحقق التشخيصي من هذه الفرضيات برمجياً عبر استعراض المخططات التشخيصية الأساسية وفحص التوزيع:

initial_model <- lm(mpg ~ wt + hp, data = mtcars)
par(mfrow = c(2, 2))
plot(initial_model)
shapiro.test(residuals(initial_model))

كما يتطلب التحليل تجهيز مصفوفات التصميم (Design Matrices) بصورة منضبطة، والتعامل السليم مع المتغيرات الفئوية (Categorical Predictors)؛ حيث يؤدي إدراج متغير فئوي يحتوي على $C$ من المستويات إلى إضافة $C-1$ من المعالم الحرة التقديرية (Dummy Variables) إلى مصفوفة النموذج، وهو ما يحتسبه معيار BIC تلقائياً ضمن معامل العقوبة $k$، مؤكداً على ضرورة الحذر عند إدخال متغيرات فئوية ذات مستويات تصنيفية متعددة.

4. استخدام الدالة المدمجة BIC() في R للحساب المباشر

4.1 بناء النموذج الخطي ومطابقته باستخدام دالة lm()

توفر دالة lm() في لغة R الإطار القياسي لبناء نماذج الانحدار الخطي بطريقة المربعات الصغرى العادية (OLS) أو تقديرات الإمكان الأعظم المكافئة. سنقوم ببناء ثلاثة نماذج متدرجة في التعقيد لدراسة محددات استهلاك الوقود (متغير mpg):

  • النموذج الأول (بسيط): يعتمد على وزن السيارة فقط (wt) كمفسر أساسي.
  • النموذج الثاني (متعدد معتدل): يضيف القوة الحصانية (hp) وزمن قطع ربع الميل (qsec).
  • النموذج الثالث (موسع): يدمج متغيرات إضافية تشمل سعة المحرك (disp) ونسبة المحور الخلفي (drat).

يتم تنفيذ هذه النماذج عبر الشيفرة الإحصائية التالية:

model1 <- lm(mpg ~ wt, data = mtcars)
model2 <- lm(mpg ~ wt + hp + qsec, data = mtcars)
model3 <- lm(mpg ~ wt + hp + qsec + disp + drat, data = mtcars)
summary(model2)

يكشف فحص ملخص النموذج عبر summary() عن معاملات الانحدار، والأخطاء المعيارية، وقيم معامل التحديد ($R^2$ و $R^2_{\text{adj}}$)، إلا أن هذه المقاييس لا تقدم العقوبة البايزية الصارمة التي يوفرها معيار شوارتز لحسم المفاضلة بين هذه النماذج الثلاثة.

4.2 تطبيق دالة BIC() واستخراج القيم الفردية

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

bic_val1 <- BIC(model1)
bic_val2 <- BIC(model2)
bic_val3 <- BIC(model3)

print(bic_val1)
print(bic_val2)
print(bic_val3)

عند تنفيذ هذه الأوامر على بيانات mtcars، ينتج لدينا قيم رقمية مجردة (على سبيل المثال: model1 يعطي تقريباً 170.29، بينما model2 يعطي 163.14، وmodel3 يعطي 169.45). يُظهر هذا التقييم الأولي تفوق النموذج الثاني model2 بوضوح؛ حيث نجح في تقليل قيمة BIC بشكل ملموس مقارنة بالنموذج البسيط والموسع على حد سواء.

لفحص عدد المعالم الحرة المقدرة الكامنة خلف هذا الاستدعاء، يمكن استخدام الدالة attr(logLik(model2), "df")، والتي ستُظهر القيمة 5 (تمثل: معامل التقاطع، ومعاملات المتغيرات الثلاثة wt وhp وqsec، بالإضافة إلى معلمة تباين الخطأ العشوائي $\sigma^2$).

4.3 حساب ومقارنة عدة نماذج في استدعاء واحد

تتميز دالة BIC() في بيئة R بمرونة هندسية تتيح لها استقبال كائنات نماذج متعددة مفصولة بفاصلة في استدعاء برمجي واحد، مما ينتج جدولاً مقارناً يلخص درجات الحرية وقيم المعيار لكافة النماذج المتنافسة:

model_comparison <- BIC(model1, model2, model3)
print(model_comparison)

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

best_model_name <- rownames(model_comparison)[which.min(model_comparison$BIC)]
cat("النموذج الأفضل بايزياً هو:", best_model_name, "n")

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

5. الحساب اليدوي لمعيار BIC خطوة بخطوة في R

5.1 استخراج المعلمات الأساسية والمكونات الإحصائية من كائن النموذج

لتعميق الفهم الإحصائي وتجريد العمليات الحسابية التي تتم داخل الدالة المدمجة، سنقوم بحساب معيار BIC يدوياً وبشكل صريح من الصفر البرمجي في R. يتطلب هذا الإجراء استخلاص ثلاثة مكونات هيكلية رئيسية من كائن النموذج model2:

  1. لوغاريتم دالة الإمكان الأعظم ($\ln \hat{L}$): ويتم استخلاصه باستخدام دالة logLik().
  2. حجم العينة الفعلي ($n$): ويستخرج بصورة آمنة ودقيقة عبر دالة nobs().
  3. عدد المعالم المقدرة ($k$): ويتم الحصول عليه عبر فحص سمة درجات حرية الإمكان attr(logLik(model), "df") أو عبر حساب عدد المعاملات زائد واحد للتباين: length(coef(model)) + 1.

يتم تنفيذ استخراج هذه المكونات عبر الأوامر التالية:

log_lik <- as.numeric(logLik(model2))
n_obs <- nobs(model2)
k_param <- attr(logLik(model2), "df")

cat("لوغاريتم الإمكان:", log_lik, "nحجم العينة:", n_obs, "nعدد المعالم:", k_param, "n")

5.2 التطبيق البرمجي لصيغة دالة الإمكان (Log-Likelihood Formula)

بعد استخلاص المكونات الإحصائية الثلاثة، نطبق المعادلة الرياضية القياسية لشوارتز: $\text{BIC} = -2 \cdot \ln(\hat{L}) + k \cdot \ln(n)$ برمجياً وبشكل مباشر:

manual_bic_loglik <- -2 * log_lik + k_param * log(n_obs)
cat("قيمة BIC المحسوبة يدوياً عبر دالة الإمكان:", manual_bic_loglik, "n")
cat("قيمة BIC عبر الدالة الجاهزة:", BIC(model2), "n")
cat("التطابق التام:", isTRUE(all.equal(manual_bic_loglik, BIC(model2))), "n")

يُظهر فحص التطابق عبر all.equal() نتيجة إيجابية مطلقة (TRUE)، مما يؤكد أن الدالة المدمجة في R لا تقوم بأي عمليات سحرية غامضة، بل تطبق هذه المعادلة الصريحة بدقة. ومن الأهمية بمكان التأكيد على أن احتساب $k$ يتضمن دائماً معامل التباين $\sigma^2$ بجانب معاملات الميل والثابت، وهو خطأ شائع يقع فيه بعض الباحثين عند الحساب اليدوي باقتصارهم على عد معاملات الانحدار فقط ($p$) وتجاهل معلمة التباين، مما يؤدي إلى خفض قيمة العقوبة بوحدة $ln(n)$ كاملة.

5.3 التطبيق البرمجي لصيغة مجموع مربعات البواقي (RSS Formula)

يمكننا أيضاً تطبيق الحساب اليدوي من خلال صيغة مجموع مربعات البواقي (RSS) للتحقق من العلاقة بين المربعات الصغرى ودالة الإمكان. نستخرج البواقي ونحسب قيمة $\text{RSS}$ كما يلي:

residuals_vec <- residuals(model2)
rss <- sum(residuals_vec^2)
p_vars <- length(coef(model2))

إذا طبقنا الصيغة التقريبية الشائعة في كتب الاقتصاد القياسي:

bic_rss_simple <- n_obs * log(rss / n_obs) + (p_vars + 1) * log(n_obs)

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

$$\ln(\hat{L}) = -\frac{n}{2} \ln(2\pi) – \frac{n}{2} \ln\left(\frac{\text{RSS}}{n}\right) – \frac{n}{2}$$

وبالتعويض في R:

exact_loglik <- - (n_obs / 2) * log(2 * pi) - (n_obs / 2) * log(rss / n_obs) - (n_obs / 2)
manual_bic_from_rss <- -2 * exact_loglik + (p_vars + 1) * log(n_obs)
cat("قيمة BIC الدقيقة عبر RSS:", manual_bic_from_rss, "n")
cat("التطابق مع الدالة المدمجة:", isTRUE(all.equal(manual_bic_from_rss, BIC(model2))), "n")

يوضح هذا التحليل التماسك الرياضي الكامل بين المقاربة الهندسية لبواقي المربعات والمقاربة الاحتمالية لدالة الإمكان الأعظم في بيئة R.

6. مقارنة واختيار النماذج الخطية المتعددة باستخدام BIC في R

6.1 استراتيجيات الإضافة والحذف التتابعي للمتغيرات (Stepwise Selection)

تعد خوارزميات الاختيار التتابعي (Stepwise Selection) من الأساليب الكلاسيكية الفعالة لاستكشاف فضاء النماذج المتعددة. توفر دالة step() المدمجة في R إمكانية تنفيذ الحذف التراجعي (Backward Elimination)، أو البناء التصاعدي (Forward Selection)، أو المسار المزدوج (Both Directions). وتعتمد الدالة افتراضياً على معيار AIC حيث تضبط معامل العقوبة على k = 2. ولكن لتحويل معيار الاختيار بالكامل ليصبح معيار BIC، يتعين ضبط الوسيط k = log(nrow(data)) صراحة داخل الاستدعاء البرمجي.

لتنفيذ الاختيار التراجعي البايزي انطلاقاً من نموذج يضم كافة المتغيرات التفسيرية المتاحة في بيانات mtcars:

full_model <- lm(mpg ~ ., data = mtcars)
n_sample <- nrow(mtcars)
bic_step_backward <- step(full_model, direction = "backward", k = log(n_sample), trace = 1)
summary(bic_step_backward)

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

6.2 فحص النماذج الشاملة عبر حزمة leaps ودالة regsubsets()

على الرغم من سرعة الانحدار التتابعي، إلا أنه يعاني من عيب نظري يتمثل في احتمالية الوقوع في نهايات صغرى محلية (Local Minima) وعدم فحص كافة التوافيق الممكنة. تتجاوز حزمة leaps هذه المشكلة عبر دالة regsubsets() التي تنفذ فحصاً شاملاً وشجرياً (Exhaustive All-Subsets Search) لجميع التوافيق الخطية الممكنة للمتغيرات.

يتم تطبيق هذا الفحص واستخراج معيار BIC المقابل لكل توليفة عبر الشيفرة التالية:

library(leaps)
best_subsets <- regsubsets(mpg ~ ., data = mtcars, nvmax = 8, method = "exhaustive")
subsets_summary <- summary(best_subsets)

plot(best_subsets, scale = "bic", main = "مخطط فحص النماذج الشامل المعتمد على BIC")

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

6.3 حساب دلتا BIC وأوزان شوارتز البايزية (Schwarz Weights)

للانتقال من مجرد اختيار نموذج مفرد إلى إطار الاستدلال متعدد النماذج (Multi-Model Inference)، يتعين حساب قيم دلتا BIC ($\Delta \text{BIC}_i$) وأوزان شوارتز البايزية ($w_i$). تمثل هذه الأوزان الاحتمالية البعدية للنموذج $P(M_i | D)$ بافتراض تساوي الاحتمالات القبلية لجميع النماذج المدروسة، وتُحسب بالصيغة الرياضية:

$$w_i = \frac{\exp\left(-\frac{1}{2} \Delta \text{BIC}_i\right)}{\sum_{r=1}^{R} \exp\left(-\frac{1}{2} \Delta \text{BIC}_r\right)}$$

يمكننا برمجة هذه الحسابات في جدول إحصائي متكامل وجاهز للنشر الأكاديمي عبر كود R التالي:

models_list <- list(m1 = model1, m2 = model2, m3 = model3, m_full = full_model)
bic_values <- sapply(models_list, BIC)
delta_bic <- bic_values - min(bic_values)
weights <- exp(-0.5 * delta_bic) / sum(exp(-0.5 * delta_bic))

results_table <- data.frame(
Model = names(models_list),
Parameters_k = sapply(models_list, function(x) attr(logLik(x), "df")),
BIC = round(bic_values, 3),
Delta_BIC = round(delta_bic, 3),
BIC_Weight = round(weights, 4)
)
results_table <- results_table[order(results_table$BIC), ]
print(results_table)

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

7. حساب ومقارنة BIC في النماذج الخطية المعممة (GLM) والنماذج اللوجستية

7.1 مطابقة نماذج الانحدار اللوجستي الثنائي باستخدام دالة glm()

يمتد تطبيق معيار BIC بسلاسة إلى فضاء النماذج الخطية المعممة (Generalized Linear Models – GLM)، والتي تتعامل مع متغيرات تابعة تتبع توزيعات أسية مختلفة كالتوزيع الثنائي، والبواسون، وتوزيع غاما. وفي الانحدار اللوجستي الثنائي المستخدم للتنبؤ بوقوع حدث ما من عدمه ($y in {0, 1}$)، تُحسب دالة الإمكان الأعظم عبر دالة برنولي المشتركة.

لنقم ببناء نموذجين لوجستيين للتنبؤ بنوع ناقل الحركة في بيانات السيارات (متغير am حيث 1 = يدوي، 0 = أوتوماتيك):

glm_model1 <- glm(am ~ hp + wt, data = mtcars, family = binomial)
glm_model2 <- glm(am ~ hp + wt + qsec, data = mtcars, family = binomial)

bic_glm1 <- BIC(glm_model1)
bic_glm2 <- BIC(glm_model2)

cat("BIC للنموذج اللوجستي الأول:", bic_glm1, "n")
cat("BIC للنموذج اللوجستي الثاني:", bic_glm2, "n")

يرتبط معيار BIC في نماذج GLM ارتباطاً وثيقاً بمفهوم “الانحراف” (Deviance)؛ حيث يمثل الانحراف مقياساً لعدم التوافق يعادل ضعف الفرق بين لوغاريتم إمكان النموذج المشبع ولوغاريتم إمكان النموذج المقدر ($-2 \ln \hat{L}$). وتدمج دالة BIC() في R هذا الانحراف بسلاسة تامة مع عقوبة المعالم الحرة لحساب القيمة البايزية النهائية بدقة متناهية.

7.2 نماذج انحدار بواسون وتوزيع غاما

عند التعامل مع بيانات العد المنفصلة (Count Data)، مثل عدد الحوادث أو تكرار الظواهر السلوكية، يتم استخدام انحدار بواسون عبر تحديد family = poisson. إلا أن البيانات الواقعية غالباً ما تعاني من ظاهرة فرط التشتت (Overdispersion)، حيث يتجاوز التباين الفعلي قيمة المتوسط الحسابي، مما ينتهك الافتراض الأساسي لتوزيع بواسون ويؤدي إلى تضخيم دالة الإمكان المحسوبة وظهور قيم BIC مضللة وصغيرة بصورة مصطنعة.

في هذه الحالات، يتم استخدام نموذج الانحدار السالب الثنائي (Negative Binomial Regression) كبديل متقدم عبر حزمة MASS، وتتيح دالة BIC() إجراء مقارنة موضوعية بين نموذج بواسون ونموذج التوزيع السالب الثنائي لتحديد النموذج الأكثر مطابقة للبنية التوزيعية:

library(MASS)
pois_mod <- glm(carb ~ mpg + wt, data = mtcars, family = poisson)
nb_mod <- glm.nb(carb ~ mpg + wt, data = mtcars)

cat("BIC لنموذج بواسون:", BIC(pois_mod), "n")
cat("BIC لنموذج السالب الثنائي:", BIC(nb_mod), "n")

إذا كانت قيمة BIC لنموذج السالب الثنائي أقل بمقدار جوهري ($\Delta \text{BIC} > 10$)، فإن ذلك يقدم برهاناً إحصائياً قاطعاً على وجود فرط تشتت في البيانات يستوجب استخدام معلمة التشتت الإضافية للتوزيع السالب الثنائي.

7.3 أثر دالة الربط (Link Functions) على حسابات BIC

تعتمد النماذج الخطية المعممة على دالة الربط $g(\mu) = \eta$ لتحويل التوقعات الخطية إلى فضاء المتغير التابع. وفي الانحدار الثنائي، يمكن للباحث الاختيار بين عدة دوال ربط شهيرة مثل: دالة اللوجيت (Logit)، ودالة البروبيت (Probit)، ودالة اللوغاريتم المزدوج المكمل (Cauchy / Cloglog).

تتيح دالة BIC() اختبار كفاءة دوال الربط المختلفة على نفس المتغيرات لتحديد الشكل الرياضي الأنسب لاستجابة البيانات:

mod_logit <- glm(am ~ hp + wt, data = mtcars, family = binomial(link = "logit"))
mod_probit <- glm(am ~ hp + wt, data = mtcars, family = binomial(link = "probit"))
mod_cloglog <- glm(am ~ hp + wt, data = mtcars, family = binomial(link = "cloglog"))

BIC(mod_logit, mod_probit, mod_cloglog)

نظراً لتماثل عدد المعالم المقدرة ($k$) في النماذج الثلاثة وتطابق حجم العينة ($n$)، فإن الفروق في قيم BIC تعكس حصرياً الفروق في لوغاريتم دالة الإمكان الأعظم الناتجة عن كل دالة ربط، مما يوفر معياراً غير متحيز لاختيار دالة الربط الأكثر دقة رياضياً.

8. استخدام الحزم الإحصائية المتقدمة لحساب وتحليل BIC في R

8.1 استخدام حزمة MuMIn للاختيار والتجريف الشامل للنماذج

تعتبر حزمة MuMIn (Multi-Model Inference) واحدة من أقوى الحزم البرمجية في بيئة R المخصصة للاستدلال البايزي واختيار النماذج. توفر الحزمة دالة فريدة تُعرف بـ dredge() تقوم بتوليد وتجريف كافة التوليفات الجزئية الممكنة للنموذج المرجعي الشامل تلقائياً وبخطوة برمجية واحدة، مع إمكانية فرزها وترتيبها وفق أي معيار معلومات محدد.

لتطبيق هذه الدالة وفرز النماذج بناءً على معيار BIC، نستخدم الشيفرة التالية مع مراعاة ضبط معالجة البيانات المفقودة لضمان اتساق العينة:

library(MuMIn)
options(na.action = "na.fail")
global_model <- lm(mpg ~ wt + hp + qsec + disp, data = mtcars)
model_dredge <- dredge(global_model, rank = "BIC")
print(head(model_dredge, n = 5))

تولد الدالة جدولاً تحليلياً متكاملاً يحتوي على المعاملات المقدرة لكل توليفة، ودرجات الحرية (df)، ولوغاريتم الإمكان (logLik)، وقيمة BIC، وفروق delta، والوزن النسبي weight. كما تتيح الحزمة إجراء عملية “توسيط النماذج” (Model Averaging) عبر استدعاء الأمر model.avg(model_dredge, subset = delta < 4) لحساب المعاملات التقديرية المرجحة بأوزان BIC للنماذج التي تحظى بدعم تجريبي قوي.

8.2 التقييم المقارن باستخدام حزمة performance وحزمة see

تقدم حزمة performance (ضمن منظومة easystats الحديثة) واجهة برمجية فائقة التطور تتيح استخراج مقاييس الأداء الشاملة للنماذج الإحصائية بصورة متزامنة تجمع بين المعايير البايزية والتقليدية في جداول ومخططات رسومية عالية الجودة.

يمكن مقارنة النماذج المتنافسة واستخراج قيم BIC بجانب معايير التوافق الأخرى عبر الأمر التالي:

library(performance)
library(see)
comp_table <- compare_performance(model1, model2, model3, metrics = c("BIC", "AIC", "R2", "RMSE"))
print(comp_table)
plot(comp_table)

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

8.3 حساب المعايير المعدلة عبر حزم AICcmodavg و flexmix

تقدم حزمة AICcmodavg أدوات متخصصة لإنشاء جداول اختيار النماذج المتوافقة مع متطلبات النشر العلمي الرصين من خلال دالة bictab() المخصصة لحساب جداول BIC الشاملة:

library(AICcmodavg)
models_named <- list("M_Weight" = model1, "M_ThreeVars" = model2, "M_FiveVars" = model3)
bic_table_export <- bictab(cand.set = models_named)
print(bic_table_export)

أما في سياق النماذج المتقدمة كنماذج الخليط الكامن (Latent Class & Finite Mixture Models)، توفر حزمة flexmix أداة استدلالية قوية تعتمد على دالة stepFlexmix() لاختبار أعداد متباينة من المكونات التجميعية الكامنة (Clusters)، واستخراج قيم BIC لكل عدد من المجموعات بهدف تحديد البنية العنقودية المثلى للبيانات عند أدنى نقطة لمعيار شوارتز.

9. معيار BIC في النماذج المختلطة والتأثيرات العشوائية (Mixed-Effects Models)

9.1 بناء النماذج الهرمية والمختلطة باستخدام حزمة lme4 ودالة lmer()

تتعامل النماذج الخطية ذات التأثيرات المختلطة (Linear Mixed-Effects Models) مع البيانات المجمعة هرمياً أو طولياً (Clustered / Longitudinal Data)، حيث تتضمن بنية النموذج تأثيرات ثابتة (Fixed Effects) وتأثيرات عشوائية (Random Effects) تتبع مستويات عنقودية محددة. تُبنى هذه النماذج في بيئة R عبر حزمة lme4 ودالة lmer() الشهيرة.

لنقم ببناء نموذجين مختلطين باستخدام بيانات sleepstudy المدمجة في الحزمة، لدراسة أثر الحرمان من النوم على زمن الاستجابة مع نمذجة الفروق الفردية بين الخاضعين للدراسة:

library(lme4)
data(sleepstudy)
mm_null <- lmer(Reaction ~ Days + (1 | Subject), data = sleepstudy, REML = FALSE)
mm_slope <- lmer(Reaction ~ Days + (Days | Subject), data = sleepstudy, REML = FALSE)

BIC(mm_null, mm_slope)

تقوم دالة BIC() المطبقة على كائنات merMod باستخراج مصفوفة التغاير وتقديرات الإمكان، واحتساب معالم التأثيرات الثابتة ومعالم مكونات التباين والتغاير العشوائية ضمن إجمالي درجات الحرية ($k$)، مما يتيح تقييم الجدوى الإحصائية لإضافة ميل عشوائي (Random Slope) للمشاركين.

9.2 جدلية حجم العينة الفعلي في النماذج الهرمية متعددة المستويات

تثير النماذج متعددة المستويات إشكالية منهجية ورياضية كبرى تتعلق بتحديد الحجم الفعلي للعينة $n$ في معادلة العقوبة $k \cdot \ln(n)$. فهل يمثل $n$ إجمالي عدد المشاهدات الكلية على المستوى الأدنى ($N_{\text{total}}$)، أم يمثل عدد المجموعات العنقودية على المستوى الأعلى ($J_{\text{groups}}$

تعتمد الدالة الافتراضية BIC() في R على إجمالي عدد المشاهدات الكلي ($N_{\text{total}} = 180$ في مثال sleepstudy). إلا أن بعض الأدبيات الإحصائية المتقدمة (مثل دراسات Delattre et al., 2014) ترى أن هذا الحساب يفرض عقوبة مفرطة في القسوة على معالم التأثيرات الثابتة الخاصة بالمجموعات العنقودية، وتقترح استخدام حجم عينة معدل يراعي المستويات الهرمية المختلفة، أو الاعتماد على معايير BIC الشرطية (Conditional BIC) لتقييم التأثيرات العشوائية بدقة أكبر.

9.3 المفاضلة بين نماذج أقصى إمكان مقيد (REML) والإمكان الكامل (ML)

تعد النقطة الجوهرية الأهم عند مقارنة النماذج المختلطة باستخدام معيار BIC هي التمييز الصارم بين طريقتي التقدير: طريقة الإمكان الأعظم المقيد (Restricted Maximum Likelihood – REML) وطريقة الإمكان الأعظم الكامل (Full Maximum Likelihood – ML).

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

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

10. المقارنة المنهجية والمعيارية بين BIC و AIC في بيئة R

10.1 الفروق الفلسفية والرياضية بين النظرية البايزية ونظرية كولباك-ليبيلر

ينبع الاختلاف بين معيار المعلومات البايزي (BIC) ومعيار أكايكي للمعلومات (AIC) من تباين المنطلقات الفلسفية والرياضية المؤسسة لكل منهما:

وجه المقارنة معيار المعلومات البايزي (BIC) معيار أكايكي للمعلومات (AIC)
الأساس النظري الاستدلال البايزي وتقريب الاحتمال البعدي للنموذج. نظرية المعلومات ومقياس تباعد كولباك-ليبيلر (K-L Divergence).
الافتراض الجوهري يفترض وجود “النموذج الحقيقي” ضمن قائمة النماذج المرشحة. يفترض أن الحقيقة لا نهائية التعقيد، والهدف هو تقليل فقدان المعلومات.
معامل العقوبة عقوبة متغيرة تتناسب طردياً مع حجم العينة: $k \cdot \ln(n)$. عقوبة ثابتة لجميع أحجام العينات: $2k$.
الخاصية التقاربية متسق تقاربياً (Consistent)؛ يختار النموذج الحقيقي عند $n to \infty$. كفء تنبؤياً ومقارباً (Asymptotically Efficient) في تقليل خطأ التنبؤ.
النزعة الهيكلية يميل إلى تفضيل النماذج البسيطة والمتقشفة (Conservative). يميل إلى التسامح مع النماذج الأكثر تعقيداً (Overparameterized).

10.2 مقارنة تطبيقية لكلا المعيارين على نفس البيانات في R

يمكننا فحص هذا التباين السلوكي بصورة عملية في بيئة R عبر بناء سكربت إحصائي يستخرج قيم AIC و BIC لعدة نماذج متزايدة التعقيد ومقارنة قرارات المفاضلة:

m_simple <- lm(mpg ~ wt, data = mtcars)
m_medium <- lm(mpg ~ wt + hp + qsec, data = mtcars)
m_complex <- lm(mpg ~ wt + hp + qsec + disp + drat + gear + carb, data = mtcars)

criteria_comp <- data.frame(
Model = c("بسيط", "متوسط", "معقد"),
df = c(attr(logLik(m_simple), "df"), attr(logLik(m_medium), "df"), attr(logLik(m_complex), "df")),
AIC = c(AIC(m_simple), AIC(m_medium), AIC(m_complex)),
BIC = c(BIC(m_simple), BIC(m_medium), BIC(m_complex))
)
print(criteria_comp)

في كثير من التطبيقات العملية، يقع تعارض منهجي حيث يختار AIC النموذج الأكثر تعقيداً بينما يختار BIC النموذج الأكثر بساطة. يُنصح الباحثون في مثل هذه الحالات بتحديد الهدف الاستدلالي للدراسة؛ فإذا كان الهدف هو التنبؤ المستقبلي الدقيق (Prediction)، يفضل الاعتماد على AIC، أما إذا كان الهدف هو التفسير العلمي واكتشاف المحددات الجوهرية للظاهرة (Explanation and Causal Identification)، فإن معيار BIC يمثل الخيار المنهجي الأكثر رصانة وحصانة ضد المتغيرات الزائفة.

10.3 توليد محاكاة مونت كارلو لمقارنة سلوك المعيارين

لتأكيد الخصائص التقاربية لمعيار BIC عملياً، يمكننا برمجة تجربة محاكاة مونت كارلو (Monte Carlo Simulation) يتم فيها توليد بيانات اصطناعية من نموذج حقيقي معروف المعالم مسبقاً، واختبار قدرة كل معيار على استرجاع هذا النموذج الحقيقي مع زيادة حجم العينة:

set.seed(123)
sim_study <- function(n) {
x1 <- rnorm(n)
x2 <- rnorm(n)
x3_noise <- rnorm(n)
y <- 2 + 1.5 * x1 + 2.0 * x2 + rnorm(n, sd = 1) # النموذج الحقيقي يعتمد على x1 و x2 فقط
data_sim <- data.frame(y, x1, x2, x3_noise)
m_true <- lm(y ~ x1 + x2, data = data_sim)
m_over <- lm(y ~ x1 + x2 + x3_noise, data = data_sim)
bic_pick <- ifelse(BIC(m_true) < BIC(m_over), "True", "Over")
aic_pick <- ifelse(AIC(m_true) < AIC(m_over), "True", "Over")
return(c(BIC = bic_pick, AIC = aic_pick))
}

results_n50 <- replicate(500, sim_study(n = 50))
results_n1000 <- replicate(500, sim_study(n = 1000))
cat("دقة BIC عند n=1000:", mean(results_n1000["BIC", ] == "True"), "n")
cat("دقة AIC عند n=1000:", mean(results_n1000["AIC", ] == "True"), "n")

تُظهر نتائج المحاكاة بوضوح أن دقة BIC في استرجاع النموذج الحقيقي ترتفع لتقترب من 100% مع زيادة العينة، بينما يظل AIC يعاني من نسبة خطأ مستمرة تبلغ حوالي 15% في اختيار النموذج المعقد الزائف، مما يبرهن على خاصية الاتساق المقارب لـ BIC.

11. تطبيقات متقدمة لـ BIC: تحليل الفئات الكامنة (LCA) ونمذجة المعادلات البنائية (SEM)

11.1 تحديد عدد الفئات في تحليل الفئات الكامنة باستخدام حزمة poLCA

يمثل تحليل الفئات الكامنة (Latent Class Analysis – LCA) أسلوباً إحصائياً متقدماً لتصنيف الأفراد إلى مجموعات غير مشاهدة بناءً على استجاباتهم لمجموعة من المتغيرات الفئوية. وتعد معضلة تحديد العدد الأمثل للفئات الكامنة إحدى أبرز التحديات في هذا التحليل، حيث يلعب معيار BIC دور الحكم الإحصائي الأول لحسم هذه المسألة.

باستخدام حزمة poLCA وبيانات values المدمجة، يمكن فحص نماذج تتراوح من فئة واحدة إلى أربع فئات:

library(poLCA)
data(values)
f <- cbind(A, B, C, D) ~ 1
bic_lca <- numeric(4)
for (k in 1:4) {
set.seed(123)
lc_fit <- poLCA(f, values, nclass = k, verbose = FALSE, maxiter = 2000)
bic_lca[k] <- lc_fit$bic
}
plot(1:4, bic_lca, type = "b", pch = 19, xlab = "عدد الفئات الكامنة", ylab = "قيمة BIC", main = "مخطط تحديد الفئات الكامنة عبر BIC")

يتم اختيار عدد الفئات الذي يحقق أدنى قيمة لـ BIC، أو عند نقطة الانعطاف (Elbow Point) التي يبدأ بعدها الانخفاض في التباطؤ، مما يوفر سنداً تجريبياً رصيناً لتقسيم وتصنيف العينات في الأبحاث السلوكية والتسويقية.

11.2 تقييم نماذج المعادلات البنائية والتحليل العاملي التوكيدي عبر حزمة lavaan

في إطار التحليل العاملي التوكيدي (CFA) ونمذجة المعادلات البنائية (SEM)، توفر حزمة lavaan بيئة متطورة لاختبار النماذج النظرية وقياس مطابقتها للبيانات الميدانية. يُستخدم معيار BIC هنا للمفاضلة بين هياكل عاملية بديلة (مثل: نموذج العامل العام الأحادي مقابل نموذج العوامل المتعددة المتمايزة).

لتطبيق ذلك على بيانات HolzingerSwineford1939 الشهيرة:

library(lavaan)
cfa_model1 <- ' visual =~ x1 + x2 + x3 + x4 + x5 + x6 + x7 + x8 + x9 ' # نموذج العامل الواحد
cfa_model3 <- '
visual =~ x1 + x2 + x3
textual =~ x4 + x5 + x6
speed =~ x7 + x8 + x9
' # نموذج العوامل الثلاثة

fit1 <- cfa(cfa_model1, data = HolzingerSwineford1939)
fit3 <- cfa(cfa_model3, data = HolzingerSwineford1939)

fitMeasures(fit1, c("bic", "aic", "cfi", "rmsea"))
fitMeasures(fit3, c("bic", "aic", "cfi", "rmsea"))

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

11.3 تطبيقات تحليل السلاسل الزمنية والتنبؤ عبر حزمة forecast

في نمذجة السلاسل الزمنية، وتحديداً نماذج الانحدار الذاتي والمتوسطات المتحركة التكاملية (ARIMA)، تتضاعف التوافيق الممكنة لرتب النموذج $(p, d, q)$. توفر حزمة forecast دالة auto.arima() التي تقوم باستكشاف هذا الفضاء واختيار الرتبة المثلى آلياً.

لإلزام الدالة باختيار الرتب بالاعتماد حصرياً على معيار BIC، نحدد الخيار ic = "bic":

library(forecast)
data(AirPassengers)
bic_arima <- auto.arima(AirPassengers, ic = "bic", stepwise = FALSE, approximation = FALSE)
summary(bic_arima)

يضمن استخدام معيار BIC في السلاسل الزمنية اختيار نماذج متماسكة تتجنب فرط المعلمات وتوفر استقراراً تنبؤياً أعلى عند التنبؤ بآفاق زمنية مستقبلية بعيدة المدى.

12. أفضل الممارسات، استكشاف الأخطاء وتفسير النتائج الإحصائية لـ BIC في R

12.1 الأخطاء الشائعة أثناء حساب ومقارنة قيم BIC البرمجية

يقع العديد من الباحثين في منزلقات منهجية عند التعامل مع معيار BIC في لغة R، من أبرزها:

  • مقارنة نماذج بأحجام عينات غير متطابقة ($n_1 \neq n_2$): وتحدث عادة عند وجود قيم مفقودة في بعض المتغيرات دون تصفية شاملة مسبقة. ويجعل هذا الخطأ المقارنة باطلة رياضياً بالكامل لاختلاف حد العقوبة ودالة الإمكان.
  • مقارنة نماذج ذات متغيرات تابعة خضعت لتحويلات غير خطية: مثل مقارنة نموذج يتنبأ بـ $y$ بنموذج يتنبأ بـ $ln(y)$. يؤدي هذا التحويل إلى تغيير مصفوفة يعقوبي (Jacobian Matrix) لدالة الإمكان، مما يستوجب تعديل الإمكان بإضافة لوغاريتم المشتقة قبل حساب ومقارنة BIC.
  • المبالغة في تفسير الفروق الطفيفة: اعتبار فارق يقل عن وحدتين ($\Delta \text{BIC} < 2$) دليلاً قاطعاً على تفضيل نموذج على آخر، بينما يعكس هذا الفارق الصغير تكافؤاً عملياً بين النموذجين يستوجب اللجوء إلى معايير إضافية أو ترجيح النموذج الأبسط نظرياً.

12.2 إرشادات كتابة التقارير وتوثيق نتائج BIC وفق معايير APA

وفقاً لدليل الجمعية الأمريكية لعلم النفس (APA 7th Edition)، يتعين توثيق نتائج مقارنة النماذج بدقة وشفافية داخل المتن والجداول. ويجب أن يتضمن التوثيق ذكر قيم BIC لكافة النماذج، وقيم الفروق $\Delta \text{BIC}$ مقارنة بالنموذج الأفضل، بالإضافة إلى أوزان شوارتز ($w_i$).

نموذج صياغة أكاديمية للتقرير:
“تمت المفاضلة بين ثلاثة نماذج انحدار متنافسة لتفسير استهلاك الوقود باستخدام معيار المعلومات البايزي (BIC). أظهرت النتائج أن النموذج متعدد المتغيرات الذي يتضمن الوزن والقوة الحصانية وزمن السرعة حقق أفضل جودة توافق ومطابقة تقتيرية ($\text{BIC} = 163.14$)، متفوقاً بفارق دال إحصائياً على النموذج البسيط ($\text{BIC} = 170.29, \Delta \text{BIC} = 7.15$) وعلى النموذج الموسع ($\text{BIC} = 169.45, \Delta \text{BIC} = 6.31$). واستحوذ النموذج المختار على وزن بايزي مرجح بلغ $w = 0.88$، مما يقدم دليلاً قوياً وحاسماً على أفضليته الاستدلالية وفق مقياس رافتري.”

12.3 بناء دالة مخصصة (Custom Function) في R لأتمتة تقييم ومقارنة النماذج

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

compare_bic_custom <- function(...) {
models <- list(...)
model_names <- as.character(match.call())[-1]
if (is.null(names(models))) names(models) <- model_names

# التحقق من تطابق حجم العينة
sample_sizes <- sapply(models, function(m) nobs(m))
if (length(unique(sample_sizes)) > 1) {
stop("خطأ منهجي: أحجام العينات المستخدمة في مطابقة النماذج غير متطابقة!")
}

df_vals <- sapply(models, function(m) attr(logLik(m), "df"))
bic_vals <- sapply(models, BIC)
delta_vals <- bic_vals - min(bic_vals)
bic_weights <- exp(-0.5 * delta_vals) / sum(exp(-0.5 * delta_vals))

# تصنيف قوة الدليل وفق معيار رافتري
evidence <- sapply(delta_vals, function(d) {
if (d == 0) return("النموذج الأفضل (Best)")
else if (d < 2) return("دليل ضعيف (Weak)")
else if (d < 6) return("دليل إيجابي (Positive)")
else if (d < 10) return("دليل قوي (Strong)")
else return("دليل قاطع (Decisive)")
})

out_df <- data.frame(
Model = names(models),
k = df_vals,
BIC = round(bic_vals, 3),
Delta_BIC = round(delta_vals, 3),
Weight = round(bic_weights, 4),
Evidence = evidence,
stringsAsFactors = FALSE
)
out_df <- out_df[order(out_df$BIC), ]
rownames(out_df) <- NULL
return(out_df)
}

يمكن اختبار وتطبيق هذه الدالة المخصصة مباشرة عبر تمرير النماذج:

final_report <- compare_bic_custom(Model_Simple = model1, Model_Moderate = model2, Model_Complex = model3)
print(final_report)

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

خاتمة

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

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

References

  • Burnham, K. P., & Anderson, D. R. (2002). Model selection and multimodel inference: A practical information-theoretic approach (2nd ed.). Springer-Verlag. https://doi.org/10.1007/b97636
  • Delattre, M., Lavielle, M., & Poursat, M. A. (2014). A note on BIC in mixed-effects models. Electronic Journal of Statistics, 8(1), 456-475. https://doi.org/10.1214/14-EJS890
  • Lüdecke, D., Ben-Shachar, M. S., Patil, I., Waggoner, P., & Makowski, D. (2021). performance: An R package for assessment, comparison and testing of statistical models. Journal of Open Source Software, 6(60), 3139. https://doi.org/10.21105/joss.03139
  • R Core Team. (2023). R: A language and environment for statistical computing. R Foundation for Statistical Computing, Vienna, Austria. https://www.R-project.org/
  • Raftery, A. E. (1995). Bayesian model selection in social research. Sociological Methodology, 25, 111-163. https://doi.org/10.2307/271063
  • Rosseel, Y. (2012). lavaan: An R package for structural equation modeling. Journal of Statistical Software, 48(2), 1-36. https://doi.org/10.18637/jss.v048.i02
  • Schwarz, G. (1978). Estimating the dimension of a model. The Annals of Statistics, 6(2), 461-464. https://doi.org/10.1214/aos/1176344136

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

looti, M. (2026, أغسطس 30). كيفية حساب BIC في R. عرب سايكلوجي. https://arabpsychology.com/statistics/how-to-calculate-bic-in-r/
looti, Mohammed. “كيفية حساب BIC في R.” عرب سايكلوجي, 30 أغسطس 2026, https://arabpsychology.com/statistics/how-to-calculate-bic-in-r/.
looti, Mohammed. “كيفية حساب BIC في R.” عرب سايكلوجي. أغسطس 30, 2026. https://arabpsychology.com/statistics/how-to-calculate-bic-in-r/.