كيفية إجراء اختبار وايت في بايثون (خطوة بخطوة)
يتم استخدام اختبار وايت لتحديد ما إذا كانت التغايرية موجودة في نموذج الانحدار.
تشير التغايرية إلى التشتت غير المتساوي للبقايا على مستويات مختلفة لمتغير الاستجابة ، وهو ما ينتهك الافتراض القائل بأن البقايا منتشرة بالتساوي عند كل مستوى من متغير الاستجابة.
يوضح المثال التالي خطوة بخطوة كيفية إجراء اختبار White في Python لتحديد ما إذا كانت التغايرية تمثل مشكلة في نموذج انحدار محدد أم لا.
الخطوة 1: تحميل البيانات
في هذا المثال، سنلائم نموذج الانحدار الخطي المتعدد باستخدام مجموعة بيانات mtcars .
يوضح التعليمة البرمجية التالية كيفية تحميل مجموعة البيانات هذه في pandas DataFrame:
from sklearn. linear_model import LinearRegression from statsmodels. stats . diagnostic import het_white 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 summary of data data. info () <class 'pandas.core.frame.DataFrame'> RangeIndex: 32 entries, 0 to 31 Data columns (total 12 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 model 32 non-null object 1 mpg 32 non-null float64 2 cyl 32 non-null int64 3 disp 32 non-null float64 4 hp 32 non-null int64 5 drat 32 non-null float64 6 wt 32 non-null float64 7 qsec 32 non-null float64 8 vs 32 non-null int64 9 am 32 non-null int64 10 gear 32 non-null int64 11 carb 32 non-null int64 dtypes: float64(5), int64(6), object(1)
الخطوة 2: ملاءمة نموذج الانحدار
بعد ذلك، سنلائم نموذج الانحدار باستخدام mpg كمتغير الاستجابة و disp و hp كمتغيرين متوقعين:
#define response variable y = data[' mpg '] #define predictor variables x = data[[' disp ', ' hp ']] #add constant to predictor variables x = sm. add_constant (x) #fit regression model model = sm. OLS (y,x). fit ()
الخطوة 3: إجراء اختبار وايت
بعد ذلك، سوف نستخدم الدالة het_white() من حزمة statsmodels لإجراء اختبار White لتحديد ما إذا كانت التغايرية موجودة في نموذج الانحدار:
#perform White's test white_test = het_white(model. resid , model. model . exog ) #define labels to use for output of White's test labels = ['Test Statistic', 'Test Statistic p-value', 'F-Statistic', 'F-Test p-value'] #print results of White's test print (dict(zip(labels, white_test))) {'Test Statistic': 7.076620330416624, 'Test Statistic p-value': 0.21500404394263936, 'F-Statistic': 1.4764621093131864, 'F-Test p-value': 0.23147065943879694}
وإليك كيفية تفسير النتيجة:
- إحصائيات الاختبار هي X2 = 7.0766 .
- القيمة p المقابلة هي 0.215 .
يستخدم الاختبار الأبيض الفرضيات الصفرية والبديلة التالية:
- Null (H 0 ) : التجانس موجود (البقايا متناثرة أيضًا)
- البديل ( HA ): عدم تجانس التغاير موجود (البقايا غير متناثرة بالتساوي)
وبما أن القيمة p لا تقل عن 0.05، فإننا نفشل في رفض فرضية العدم.
وهذا يعني أنه ليس لدينا أدلة كافية للادعاء بوجود عدم تجانس في نموذج الانحدار.
ما العمل التالي
إذا فشلت في رفض الفرضية الصفرية لاختبار وايت، فإن التغايرية غير موجودة ويمكنك المتابعة لتفسير نتيجة الانحدار الأصلي.
ومع ذلك، إذا رفضت فرضية العدم، فهذا يعني أن هناك تباينًا. في هذه الحالة، قد تكون الأخطاء القياسية المعروضة في جدول مخرجات الانحدار غير موثوقة.
هناك طريقتان شائعتان لحل هذه المشكلة:
1. تحويل متغير الاستجابة.
يمكنك محاولة إجراء تحويل على متغير الاستجابة، على سبيل المثال أخذ السجل أو الجذر التربيعي أو الجذر التكعيبي لمتغير الاستجابة. يؤدي هذا غالبًا إلى اختفاء التباين.
2. استخدم الانحدار المرجح.
يقوم الانحدار المرجح بتعيين وزن لكل نقطة بيانات بناءً على تباين قيمتها المجهزة. بشكل أساسي، يعطي هذا أوزانًا منخفضة لنقاط البيانات التي تحتوي على تباينات أعلى، مما يقلل من مربعاتها المتبقية. عند استخدام الأوزان المناسبة، يمكن أن يؤدي ذلك إلى القضاء على مشكلة التغايرية.
مصادر إضافية
توفر البرامج التعليمية التالية معلومات إضافية حول الانحدار الخطي في بايثون:
دليل كامل للانحدار الخطي في بايثون
كيفية إنشاء مؤامرة المتبقية في بيثون
كيفية حساب VIF في بايثون