पायथन में व्हाइट टेस्ट कैसे करें (चरण दर चरण)
व्हाइट के परीक्षण का उपयोग यह निर्धारित करने के लिए किया जाता है कि प्रतिगमन मॉडल में विषमलैंगिकता मौजूद है या नहीं।
विषमलैंगिकता एक प्रतिक्रिया चर के विभिन्न स्तरों पर अवशेषों के असमान फैलाव को संदर्भित करती है, जो इस धारणा का उल्लंघन करती है कि प्रतिक्रिया चर के प्रत्येक स्तर पर अवशेष समान रूप से बिखरे हुए हैं।
निम्नलिखित चरण-दर-चरण उदाहरण दिखाता है कि पायथन में व्हाइट का परीक्षण कैसे किया जाए ताकि यह निर्धारित किया जा सके कि किसी दिए गए प्रतिगमन मॉडल में विषमलैंगिकता एक समस्या है या नहीं।
चरण 1: डेटा लोड करें
इस उदाहरण में, हम mtcars डेटासेट का उपयोग करके एक एकाधिक रैखिक प्रतिगमन मॉडल फिट करेंगे।
निम्नलिखित कोड दिखाता है कि इस डेटासेट को पांडा डेटाफ़्रेम में कैसे लोड किया जाए:
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() फ़ंक्शन का उपयोग करेंगे कि प्रतिगमन मॉडल में विषमलैंगिकता मौजूद है या नहीं:
#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 है।
- संगत पी-मान 0.215 है।
श्वेत परीक्षण निम्नलिखित शून्य और वैकल्पिक परिकल्पनाओं का उपयोग करता है:
- शून्य (एच 0 ) : समरूपता विद्यमान है (अवशेष भी बिखरे हुए हैं)
- वैकल्पिक ( एचए ): विषमलैंगिकता मौजूद है (अवशेष समान रूप से बिखरे हुए नहीं हैं)
चूँकि पी-मान 0.05 से कम नहीं है, हम शून्य परिकल्पना को अस्वीकार करने में विफल रहते हैं।
इसका मतलब यह है कि हमारे पास यह दावा करने के लिए पर्याप्त सबूत नहीं हैं कि प्रतिगमन मॉडल में विषमलैंगिकता मौजूद है।
आगे क्या करना है
यदि आप व्हाइट के परीक्षण की शून्य परिकल्पना को अस्वीकार करने में विफल रहते हैं, तो विषमलैंगिकता मौजूद नहीं है और आप मूल प्रतिगमन के परिणाम की व्याख्या करने के लिए आगे बढ़ सकते हैं।
हालाँकि, यदि आप शून्य परिकल्पना को अस्वीकार करते हैं, तो इसका मतलब है कि विषमलैंगिकता है। इस मामले में, प्रतिगमन आउटपुट तालिका में प्रदर्शित मानक त्रुटियां अविश्वसनीय हो सकती हैं।
इस समस्या को हल करने के दो सामान्य तरीके हैं:
1. प्रतिक्रिया चर को रूपांतरित करें।
आप प्रतिक्रिया चर पर परिवर्तन करने का प्रयास कर सकते हैं, उदाहरण के लिए प्रतिक्रिया चर का लॉग, वर्गमूल या घनमूल लेना। इसके परिणामस्वरूप अक्सर विषमलैंगिकता का लोप हो जाता है।
2. भारित प्रतिगमन का प्रयोग करें.
भारित प्रतिगमन प्रत्येक डेटा बिंदु को उसके फिट मूल्य के भिन्नता के आधार पर एक भार प्रदान करता है। अनिवार्य रूप से, यह उन डेटा बिंदुओं को कम महत्व देता है जिनमें अधिक भिन्नताएं होती हैं, जिससे उनके अवशिष्ट वर्ग कम हो जाते हैं। जब उचित वजन का उपयोग किया जाता है, तो यह विषमलैंगिकता की समस्या को समाप्त कर सकता है।
अतिरिक्त संसाधन
निम्नलिखित ट्यूटोरियल पायथन में रैखिक प्रतिगमन के बारे में अतिरिक्त जानकारी प्रदान करते हैं:
पायथन में रैखिक प्रतिगमन के लिए एक संपूर्ण मार्गदर्शिका
पायथन में एक अवशिष्ट प्लॉट कैसे बनाएं
पायथन में वीआईएफ की गणना कैसे करें