पायथन में ब्रूश-पैगन परीक्षण कैसे करें
प्रतिगमन विश्लेषण में, विषमलैंगिकता अवशेषों के असमान फैलाव को संदर्भित करती है। अधिक सटीक रूप से, यह वह मामला है जहां मापा मूल्यों की सीमा पर अवशेषों के वितरण में एक व्यवस्थित परिवर्तन होता है।
विषमलैंगिकता एक समस्या है क्योंकि साधारण न्यूनतम वर्ग (ओएलएस) प्रतिगमन मानता है कि अवशेष एक ऐसी आबादी से आते हैं जिसमें समरूपता है, जिसका अर्थ निरंतर भिन्नता है।
जब प्रतिगमन विश्लेषण में विषमलैंगिकता मौजूद होती है, तो विश्लेषण के परिणामों पर विश्वास करना मुश्किल हो जाता है।
यह निर्धारित करने का एक तरीका है कि प्रतिगमन विश्लेषण में हेटेरोस्केडास्टिसिटी मौजूद है या नहीं, ब्रूश-पैगन परीक्षण का उपयोग करना है ।
यह ट्यूटोरियल बताता है कि पायथन में ब्रूश-पेगन परीक्षण कैसे करें।
उदाहरण: पायथन में ब्रूश-पैगन परीक्षण
इस उदाहरण के लिए, हम निम्नलिखित डेटासेट का उपयोग करेंगे जो 10 बास्केटबॉल खिलाड़ियों की विशेषताओं का वर्णन करता है:
import numpy as np import pandas as pd #create dataset df = pd.DataFrame({'rating': [90, 85, 82, 88, 94, 90, 76, 75, 87, 86], 'points': [25, 20, 14, 16, 27, 20, 12, 15, 14, 19], 'assists': [5, 7, 7, 8, 5, 7, 6, 9, 9, 5], 'rebounds': [11, 8, 10, 6, 6, 9, 6, 10, 10, 7]}) #view dataset df rating points assists rebounds 0 90 25 5 11 1 85 20 7 8 2 82 14 7 10 3 88 16 8 6 4 94 27 5 6 5 90 20 7 9 6 76 12 6 6 7 75 15 9 10 8 87 14 9 10 9 86 19 5 7
हम प्रतिक्रिया चर के रूप में स्कोरिंग और व्याख्यात्मक चर के रूप में अंक, सहायता और रिबाउंड का उपयोग करके एक बहु रेखीय प्रतिगमन मॉडल फिट करेंगे। इसके बाद, हम यह निर्धारित करने के लिए ब्रूश-पैगन परीक्षण करेंगे कि प्रतिगमन में हेटेरोस्केडैस्टिसिटी मौजूद है या नहीं।
चरण 1: एक बहु रेखीय प्रतिगमन मॉडल फिट करें।
सबसे पहले, हम एक बहु रेखीय प्रतिगमन मॉडल फिट करेंगे:
import statsmodels.formula.api as smf #fit regression model fit = smf.ols('rating ~ points+assists+rebounds', data=df). fit () #view model summary print (fit.summary())
चरण 2: ब्रूश-पैगन परीक्षण करें।
इसके बाद, हम यह निर्धारित करने के लिए ब्रूश-पैगन परीक्षण करेंगे कि विषमलैंगिकता मौजूद है या नहीं।
from statsmodels.compat import lzip import statsmodels.stats.api as sms #perform Bresuch-Pagan test names = ['Lagrange multiplier statistic', 'p-value', 'f-value', 'f p-value'] test = sms.het_breuschpagan(fit.resid, fit.model.exog) lzip(names, test) [('Lagrange multiply statistic', 6.003951995818433), ('p-value', 0.11141811013399583), ('f-value', 3.004944880309618), ('f p-value', 0.11663863538255281)]
ब्रुश-पैगन परीक्षण निम्नलिखित अशक्त और वैकल्पिक परिकल्पनाओं का उपयोग करता है:
शून्य परिकल्पना (H 0 ): समरूपता मौजूद है।
वैकल्पिक परिकल्पना: (हा): समरूपता मौजूद नहीं है (यानी विषमलैंगिकता मौजूद है)
इस उदाहरण में, परीक्षण के लिए लैग्रेंज गुणक आँकड़ा 6.004 है और संबंधित पी-मान 0.1114 है। चूँकि यह पी-मान 0.05 से कम नहीं है, हम शून्य परिकल्पना को अस्वीकार करने में विफल रहते हैं। हमारे पास यह दावा करने के लिए पर्याप्त सबूत नहीं हैं कि प्रतिगमन मॉडल में विषमलैंगिकता मौजूद है।
विषमलैंगिकता को कैसे ठीक करें
पिछले उदाहरण में, हमने देखा कि प्रतिगमन मॉडल में विषमलैंगिकता मौजूद नहीं थी।
हालाँकि, जब विषमलैंगिकता वास्तव में मौजूद होती है, तो स्थिति का समाधान करने के तीन सामान्य तरीके होते हैं:
1. आश्रित चर को रूपांतरित करें। विषमलैंगिकता को ठीक करने का एक तरीका आश्रित चर को किसी तरह से बदलना है। एक सामान्य परिवर्तन केवल आश्रित चर का लॉग लेना है।
2. आश्रित चर को पुनः परिभाषित करें। विषमलैंगिकता को ठीक करने का दूसरा तरीका आश्रित चर को फिर से परिभाषित करना है। ऐसा करने का एक सामान्य तरीका कच्चे मूल्य के बजाय आश्रित चर के लिए दर का उपयोग करना है।
3. भारित प्रतिगमन का प्रयोग करें. विषमलैंगिकता को ठीक करने का दूसरा तरीका भारित प्रतिगमन का उपयोग करना है। इस प्रकार का प्रतिगमन प्रत्येक डेटा बिंदु को उसके फिट किए गए मान के भिन्नता के आधार पर एक भार प्रदान करता है। जब उचित वजन का उपयोग किया जाता है, तो यह विषमलैंगिकता की समस्या को समाप्त कर सकता है।
इस लेख में इन तीन तरीकों में से प्रत्येक के बारे में अधिक विवरण पढ़ें।