كيفية إجراء اختبار نسبة الاحتمالية في بايثون
يقارن اختبار نسبة الاحتمالية مدى ملاءمة نموذجين من نماذج الانحدار المتداخلة.
النموذج المتداخل هو ببساطة نموذج يحتوي على مجموعة فرعية من متغيرات التوقع في نموذج الانحدار الشامل.
على سبيل المثال، لنفترض أن لدينا نموذج الانحدار التالي مع أربعة متغيرات متوقعة:
Y = β 0 + β 1 × 1 + β 2 × 2 + β 3 × 3 + β 4 × 4 + ε
مثال على النموذج المتداخل هو النموذج التالي الذي يحتوي على اثنين فقط من متغيرات التوقع الأصلية:
Y = β 0 + β 1 × 1 + β 2 × 2 + ε
لتحديد ما إذا كان هذان النموذجان مختلفان بشكل كبير، يمكننا إجراء اختبار نسبة الاحتمالية الذي يستخدم الفرضيات الصفرية والبديلة التالية:
H 0 : النموذج الكامل والنموذج المتداخل يتناسبان مع البيانات بشكل متساوٍ. لذلك، يجب عليك استخدام نموذج متداخل .
HA A : النموذج الكامل يناسب البيانات بشكل أفضل بكثير من النموذج المتداخل. لذلك عليك استخدام القالب الكامل .
إذا كانت القيمة p للاختبار أقل من مستوى معين من الأهمية (على سبيل المثال 0.05)، فيمكننا رفض فرضية العدم ونستنتج أن النموذج الكامل يوفر ملاءمة أفضل بكثير.
يوضح المثال التالي خطوة بخطوة كيفية إجراء اختبار نسبة الاحتمالية في بايثون.
الخطوة 1: تحميل البيانات
في هذا المثال، سنوضح كيفية ملاءمة نموذجي الانحدار التاليين في بايثون باستخدام بيانات من مجموعة بيانات mtcars :
النموذج الكامل: ميل لكل جالون = β 0 + β 1 متاح + β 2 كربوهيدرات + β 3 حصان + β 4 سيل
الموديل: ميلا في الغالون = β 0 + β 1 متاح + β 2 كربوهيدرات
أولاً، سنقوم بتحميل مجموعة البيانات:
from sklearn. linear_model import LinearRegression import statsmodels. api as sm import pandas as pd import scipy #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)
ذات صلة: كيفية قراءة ملفات CSV باستخدام Pandas
الخطوة 2: تناسب نماذج الانحدار
أولاً، سنقوم بملاءمة النموذج الكامل وحساب الاحتمالية اللوغاريتمية للنموذج:
#define response variable y1 = data['mpg'] #define predictor variables x1 = data[['disp', 'carb', 'hp', 'cyl']] #add constant to predictor variables x1 = sm. add_constant (x1) #fit regression model full_model = sm. OLS (y1,x1). fit () #calculate log-likelihood of model full_ll = full_model. llf print (full_ll) -77.55789711787898
بعد ذلك، سوف نلائم النموذج المصغر ونحسب الاحتمالية اللوغاريتمية للنموذج:
#define response variable y2 = data['mpg'] #define predictor variables x2 = data[['disp', 'carb']] #add constant to predictor variables x2 = sm. add_constant (x2) #fit regression model reduced_model = sm. OLS (y2, x2). fit () #calculate log-likelihood of model reduced_ll = reduced_model. llf print (reduced_ll) -78.60301334355185
الخطوة 3: قم بإجراء اختبار احتمالية السجل
بعد ذلك، سوف نستخدم الكود التالي لإجراء اختبار المعقولية:
#calculate likelihood ratio Chi-Squared test statistic
LR_statistic = -2 * (reduced_ll-full_ll)
print (LR_statistic)
2.0902324513457415
#calculate p-value of test statistic using 2 degrees of freedom
p_val = scipy. stats . chi2 . sf (LR_statistic, 2)
print (p_val)
0.35165094613502257
من النتيجة يمكننا أن نرى أن إحصائيات اختبار مربع كاي هي 2.0902 والقيمة p المقابلة هي 0.3517 .
وبما أن هذه القيمة p لا تقل عن 0.05، فسوف نفشل في رفض فرضية العدم.
وهذا يعني أن النموذج الكامل والنموذج المتداخل يتناسبان مع البيانات بشكل متساوٍ. لذلك يجب علينا استخدام النموذج المتداخل، لأن المتغيرات التوقعية الإضافية في النموذج الكامل لا توفر تحسنًا كبيرًا في الملاءمة.
وبالتالي فإن نموذجنا النهائي سيكون:
ميل لكل جالون = β 0 + β 1 متاح + β 2 كربوهيدرات
ملاحظة : استخدمنا درجتين من الحرية عند حساب القيمة p لأن ذلك يمثل الفرق في إجمالي متغيرات التوقع المستخدمة بين النموذجين.
مصادر إضافية
توفر البرامج التعليمية التالية معلومات إضافية حول استخدام نماذج الانحدار في بايثون:
دليل كامل للانحدار الخطي في بايثون
كيفية إجراء الانحدار متعدد الحدود في بايثون
كيفية تنفيذ الانحدار اللوجستي في بايثون