كيفية حساب aic لنماذج الانحدار في بايثون
يعد معيار معلومات Akaike (AIC) مقياسًا يستخدم لمقارنة ملاءمة نماذج الانحدار المختلفة.
يتم حسابه على النحو التالي:
AIC = 2K – 2 لتر (L)
ذهب:
- K: عدد معلمات النموذج. القيمة الافتراضية لـ K هي 2، وبالتالي فإن النموذج الذي يحتوي على متغير توقع واحد فقط سيكون له قيمة K هي 2+1 = 3.
- ln (L) : الاحتمالية اللوغاريتمية للنموذج. وهذا يخبرنا باحتمالية النموذج، في ضوء البيانات.
تم تصميم AIC للعثور على النموذج الذي يفسر أكبر قدر من الاختلاف في البيانات، مع معاقبة النماذج التي تستخدم عددًا مفرطًا من المعلمات.
بمجرد تركيب نماذج الانحدار المتعددة، يمكنك مقارنة قيمة AIC لكل نموذج. النموذج ذو أدنى AIC يوفر أفضل ملاءمة.
لحساب AIC لنماذج الانحدار المتعددة في بايثون، يمكننا استخدام الدالة statsmodels.regression.linear_model.OLS() ، التي لها خاصية تسمى aic التي تخبرنا بقيمة AIC لنموذج معين.
يوضح المثال التالي كيفية استخدام هذه الوظيفة لحساب وتفسير AIC لنماذج الانحدار المختلفة في Python.
مثال: حساب وتفسير AIC في بايثون
لنفترض أننا نريد ملاءمة نموذجين مختلفين للانحدار الخطي المتعدد باستخدام متغيرات من مجموعة بيانات 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: disp، hp، wt، qsec
- متغيرات التوقع في النموذج 2: disp، qsec
يوضح الكود التالي كيفية ملاءمة النموذج الأول وحساب AIC:
#define response variable
y = data['mpg']
#define predictor variables
x = data[['disp', 'hp', 'wt', 'qsec']]
#add constant to predictor variables
x = sm. add_constant (x)
#fit regression model
model = sm. OLS (y,x). fit ()
#view AIC of model
print (model. aic )
157.06960941462438
تبين أن AIC لهذا النموذج هو 157.07 .
بعد ذلك، سوف نقوم بتركيب النموذج الثاني وحساب AIC:
#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 AIC of model
print (model. aic )
169.84184864154588
تبين أن AIC لهذا النموذج هو 169.84 .
نظرًا لأن النموذج الأول يحتوي على قيمة AIC أقل، فهو النموذج الأفضل.
بمجرد تحديد هذا النموذج على أنه الأفضل، يمكننا المضي قدمًا في ملاءمة النموذج وتحليل النتائج، بما في ذلك قيمة R-squared ومعاملات بيتا، لتحديد العلاقة الدقيقة بين مجموعة المتغيرات التنبؤية ومتغير الاستجابة .
مصادر إضافية
دليل كامل للانحدار الخطي في بايثون
كيفية حساب R-squared المعدل في بايثون