पायथन में एक अवशिष्ट प्लॉट कैसे बनाएं
अवशिष्ट प्लॉट एक प्रकार का प्लॉट है जो एक प्रतिगमन मॉडल के अवशेषों के विरुद्ध फिट किए गए मान प्रदर्शित करता है।
इस प्रकार के प्लॉट का उपयोग अक्सर यह मूल्यांकन करने के लिए किया जाता है कि किसी दिए गए डेटा सेट के लिए एक रैखिक प्रतिगमन मॉडल उपयुक्त है या नहीं और विषमलैंगिकता के लिए अवशेषों की जांच की जाती है।
यह ट्यूटोरियल बताता है कि पायथन में एक रैखिक प्रतिगमन मॉडल के लिए एक अवशिष्ट प्लॉट कैसे बनाया जाए।
उदाहरण: पायथन में अवशिष्ट प्लॉट
इस उदाहरण के लिए, हम एक डेटासेट का उपयोग करेंगे जो 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
सरल रेखीय प्रतिगमन के लिए अवशिष्ट प्लॉट
मान लीजिए कि हम भविष्यवक्ता चर के रूप में बिंदुओं और प्रतिक्रिया चर के रूप में ग्रेड का उपयोग करके एक सरल रैखिक प्रतिगमन मॉडल फिट करते हैं:
#import necessary libraries import matplotlib.pyplot as plt import statsmodels.api as sm from statsmodels.formula.api import ols #fit simple linear regression model model = ols('rating ~ points', data=df). fit () #view model summary print(model.summary())
हम statsmodels लाइब्रेरी से प्लॉट_रेग्रेस_एक्सओजी() फ़ंक्शन का उपयोग करके एक अवशिष्ट या फिटेड प्लॉट बना सकते हैं:
#define figure size fig = plt.figure(figsize=(12,8)) #produce regression plots fig = sm.graphics.plot_regress_exog(model, ' points ', fig=fig)
चार प्लॉट तैयार किए गए हैं। ऊपरी दाएं कोने में एक अवशिष्ट प्लॉट बनाम समायोजित प्लॉट है। इस प्लॉट पर x-अक्ष भविष्यवक्ता चर बिंदुओं के वास्तविक मान दिखाता है और y-अक्ष उस मान के लिए अवशिष्ट दिखाता है।
चूँकि अवशेष शून्य के आसपास बेतरतीब ढंग से बिखरे हुए प्रतीत होते हैं, यह इंगित करता है कि भविष्यवक्ता चर के साथ विषमलैंगिकता कोई समस्या नहीं है।
एकाधिक रेखीय प्रतिगमन के लिए अवशिष्ट प्लॉट
मान लीजिए कि हम भविष्यवक्ता चर के रूप में सहायता और रिबाउंड और प्रतिक्रिया चर के रूप में रेटिंग का उपयोग करके एक बहु रेखीय प्रतिगमन मॉडल फिट करते हैं:
#fit multiple linear regression model model = ols('rating ~ assists + rebounds', data=df). fit () #view model summary print(model.summary())
एक बार फिर, हम स्टेटमॉडल लाइब्रेरी से प्लॉट_रेग्रेस_एक्सओजी() फ़ंक्शन का उपयोग करके प्रत्येक व्यक्तिगत भविष्यवक्ता के लिए एक अवशिष्ट बनाम भविष्यवक्ता प्लॉट बना सकते हैं।
उदाहरण के लिए, भविष्यवक्ता चर सहायता के लिए अवशिष्ट/भविष्यवक्ता कथानक इस तरह दिखता है:
#create residual vs. predictor plot for 'assists' fig = plt.figure(figsize=(12,8)) fig = sm.graphics.plot_regress_exog(model, ' assists ', fig=fig)
और भविष्यवक्ता चर बाउंस के लिए अवशिष्ट/भविष्यवक्ता प्लॉट इस तरह दिखता है:
#create residual vs. predictor plot for 'assists' fig = plt.figure(figsize=(12,8)) fig = sm.graphics.plot_regress_exog(model, ' rebounds ', fig=fig)
दोनों भूखंडों में, अवशेष बेतरतीब ढंग से शून्य के आसपास बिखरे हुए दिखाई देते हैं, जो दर्शाता है कि मॉडल में किसी भी भविष्यवक्ता चर के साथ विषमलैंगिकता कोई समस्या नहीं है।