كيفية إجراء اختبار نسبة الاحتمالية في بايثون


يقارن اختبار نسبة الاحتمالية مدى ملاءمة نموذجين من نماذج الانحدار المتداخلة.

النموذج المتداخل هو ببساطة نموذج يحتوي على مجموعة فرعية من متغيرات التوقع في نموذج الانحدار الشامل.

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

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 لأن ذلك يمثل الفرق في إجمالي متغيرات التوقع المستخدمة بين النموذجين.

مصادر إضافية

توفر البرامج التعليمية التالية معلومات إضافية حول استخدام نماذج الانحدار في بايثون:

دليل كامل للانحدار الخطي في بايثون
كيفية إجراء الانحدار متعدد الحدود في بايثون
كيفية تنفيذ الانحدار اللوجستي في بايثون

Add a Comment

ایمئیل یایینلانمایاجاق ایسته‎نیله‎ن بوشلوقلار خاللانمیشدیر *