كيفية حساب bic في بايثون
معيار المعلومات البايزي ، والذي يُختصر غالبًا BIC ، هو مقياس يستخدم لمقارنة مدى ملاءمة نماذج الانحدار المختلفة.
من الناحية العملية، نحن نلائم نماذج الانحدار المتعددة مع نفس مجموعة البيانات ونختار النموذج ذو أقل قيمة BIC باعتباره النموذج الذي يناسب البيانات بشكل أفضل.
نستخدم الصيغة التالية لحساب BIC:
BIC: (RSS+log(n)dσ̂ 2 ) / n
ذهب:
- د: عدد المتنبئين
- ن: إجمالي الملاحظات
- σ̂: تقدير تباين الخطأ المرتبط بكل مقياس استجابة في نموذج الانحدار
- RSS: مجموع المربعات المتبقية من نموذج الانحدار
- TSS: مجموع مربعات نموذج الانحدار
لحساب رمز BIC لنماذج الانحدار المتعددة في Python، يمكننا استخدام الدالة statsmodels.regression.linear_model.OLS() ، التي لها خاصية تسمى bic والتي تخبرنا بقيمة BIC لنموذج معين.
يوضح المثال التالي كيفية استخدام هذه الوظيفة لحساب وتفسير BIC لنماذج الانحدار المختلفة في Python.
مثال: حساب BIC لنماذج الانحدار في بايثون
لنفترض أننا نريد ملاءمة نموذجين مختلفين للانحدار الخطي المتعدد باستخدام متغيرات من مجموعة بيانات mtcars .
أولاً، سنقوم بتحميل مجموعة البيانات هذه:
from sklearn. linear_model import LinearRegression import statsmodels. api as sm import pandas as pd #define URL where dataset is located url = "https://raw.githubusercontent.com/- Statorials/Python-Guides/main/mtcars.csv" #read in data data = pd. read_csv (url) #view head of data data. head () model mpg cyl disp hp drat wt qsec vs am gear carb 0 Mazda RX4 21.0 6 160.0 110 3.90 2.620 16.46 0 1 4 4 1 Mazda RX4 Wag 21.0 6 160.0 110 3.90 2.875 17.02 0 1 4 4 2 Datsun 710 22.8 4 108.0 93 3.85 2.320 18.61 1 1 4 1 3 Hornet 4 Drive 21.4 6 258.0 110 3.08 3.215 19.44 1 0 3 1 4 Hornet Sportabout 18.7 8 360.0 175 3.15 3.440 17.02 0 0 3 2
بعد ذلك، سوف نلائم نموذجي الانحدار التاليين:
- النموذج 1 : ميلا في الغالون = β 0 + β 1 (disp) + β 2 (qsec)
- النموذج 2 : ميلا في الغالون = β 0 + β 1 (متوفر) + β 2 (بالوزن)
يوضح الكود التالي كيفية ملاءمة النموذج الأول وحساب BIC:
#define response variable
y = data['mpg']
#define predictor variables
x = data[['disp', 'qsec']]
#add constant to predictor variables
x = sm. add_constant (x)
#fit regression model
model = sm. OLS (y,x). fit ()
#view BIC of model
print (model. bic )
174.23905634994506
رمز BIC لهذا النموذج هو 174.239 .
بعد ذلك، سوف نقوم بتركيب النموذج الثاني وحساب BIC:
#define response variable
y = data['mpg']
#define predictor variables
x = data[['disp', 'wt']]
#add constant to predictor variables
x = sm. add_constant (x)
#fit regression model
model = sm. OLS (y,x). fit ()
#view BIC of model
print (model. bic )
166.56499196301334
رمز BIC لهذا النموذج هو 166.565 .
وبما أن النموذج الثاني له قيمة BIC أقل، فهو النموذج الأفضل.
بمجرد تحديد هذا النموذج على أنه الأفضل، يمكننا المضي قدمًا في ملاءمة النموذج وتحليل النتائج، بما في ذلك قيمة R-squared ومعاملات بيتا، لتحديد العلاقة الدقيقة بين مجموعة المتغيرات التنبؤية ومتغير الاستجابة .
مصادر إضافية
هناك مقياسان آخران شائعان الاستخدام لمقارنة ملاءمة نماذج الانحدار هما AIC و R-squared المعدل .
تشرح البرامج التعليمية التالية كيفية حساب كل من هذه المقاييس لنماذج الانحدار في بايثون:
كيفية حساب AIC لنماذج الانحدار في بايثون
كيفية حساب R-squared المعدل في بايثون