आर में सरल रैखिक प्रतिगमन कैसे करें (चरण दर चरण)
सरल रेखीय प्रतिगमन एक ऐसी तकनीक है जिसका उपयोग हम एकल व्याख्यात्मक चर और एकल प्रतिक्रिया चर के बीच संबंध को समझने के लिए कर सकते हैं।
संक्षेप में, यह तकनीक एक ऐसी पंक्ति ढूंढती है जो डेटा को सबसे अच्छी तरह से “फिट” करती है और निम्नलिखित रूप लेती है:
ŷ = बी 0 + बी 1 एक्स
सोना:
- ŷ : अनुमानित प्रतिक्रिया मूल्य
- बी 0 : प्रतिगमन रेखा की उत्पत्ति
- बी 1 : प्रतिगमन रेखा का ढलान
यह समीकरण हमें व्याख्यात्मक चर और प्रतिक्रिया चर के बीच संबंध को समझने में मदद कर सकता है और (यह मानते हुए कि यह सांख्यिकीय रूप से महत्वपूर्ण है) इसका उपयोग व्याख्यात्मक चर के मूल्य को देखते हुए प्रतिक्रिया चर के मूल्य की भविष्यवाणी करने के लिए किया जा सकता है।
यह ट्यूटोरियल आर में सरल रैखिक प्रतिगमन कैसे करें, इसकी चरण-दर-चरण व्याख्या प्रदान करता है।
चरण 1: डेटा लोड करें
इस उदाहरण के लिए, हम एक नकली डेटासेट बनाएंगे जिसमें 15 छात्रों के लिए निम्नलिखित दो चर होंगे:
- कुछ परीक्षाओं के लिए अध्ययन किए गए घंटों की कुल संख्या
- परीक्षा परीणाम
हम व्याख्यात्मक चर के रूप में घंटों और प्रतिक्रिया चर के रूप में परीक्षा परिणामों का उपयोग करके एक सरल रैखिक प्रतिगमन मॉडल फिट करने का प्रयास करेंगे।
निम्नलिखित कोड दिखाता है कि R में यह नकली डेटासेट कैसे बनाया जाए:
#create dataset df <- data.frame(hours=c(1, 2, 4, 5, 5, 6, 6, 7, 8, 10, 11, 11, 12, 12, 14), score=c(64, 66, 76, 73, 74, 81, 83, 82, 80, 88, 84, 82, 91, 93, 89)) #view first six rows of dataset head(df) hours score 1 1 64 2 2 66 3 4 76 4 5 73 5 5 74 6 6 81 #attach dataset to make it more convenient to work with attach(df)
चरण 2: डेटा को विज़ुअलाइज़ करें
एक सरल रैखिक प्रतिगमन मॉडल को फिट करने से पहले, हमें इसे समझने के लिए पहले डेटा की कल्पना करनी चाहिए।
सबसे पहले, हम यह सुनिश्चित करना चाहते हैं कि घंटों और स्कोर के बीच का संबंध लगभग रैखिक है, क्योंकि यह सरल रैखिक प्रतिगमन की एक विशाल अंतर्निहित धारणा है। हम दो चरों के बीच संबंध की कल्पना करने के लिए एक सरल स्कैटरप्लॉट बना सकते हैं:
scatter.smooth(hours, score, main=' Hours studied vs. Exam Score ')
ग्राफ़ से हम देख सकते हैं कि संबंध रैखिक प्रतीत होता है। जैसे-जैसे घंटों की संख्या बढ़ती है, स्कोर भी रैखिक रूप से बढ़ने लगता है।
फिर हम परीक्षा परिणामों के वितरण की कल्पना करने और आउटलेर्स की जांच करने के लिए एक बॉक्सप्लॉट बना सकते हैं। डिफ़ॉल्ट रूप से, आर एक अवलोकन को एक बाहरी के रूप में परिभाषित करता है यदि यह तीसरे चतुर्थक (क्यू 3) के ऊपर इंटरक्वार्टाइल रेंज का 1.5 गुना है या पहले चतुर्थक (क्यू 1) के नीचे इंटरक्वेर्टाइल रेंज का 1.5 गुना है।
यदि कोई अवलोकन बाहरी है, तो बॉक्सप्लॉट में एक छोटा वृत्त दिखाई देगा:
boxplot(score)
बॉक्सप्लॉट में कोई छोटे वृत्त नहीं हैं, जिसका अर्थ है कि हमारे डेटासेट में कोई आउटलेयर नहीं हैं।
चरण 3: एक सरल रेखीय प्रतिगमन करें
एक बार जब हम पुष्टि कर लेते हैं कि हमारे चरों के बीच संबंध रैखिक है और कोई आउटलेयर नहीं है, तो हम घंटों को व्याख्यात्मक चर के रूप में और स्कोर को प्रतिक्रिया चर के रूप में उपयोग करके एक सरल रैखिक प्रतिगमन मॉडल को फिट करने के लिए आगे बढ़ सकते हैं:
#fit simple linear regression model model <- lm(score~hours) #view model summary summary(model) Call: lm(formula = score ~ hours) Residuals: Min 1Q Median 3Q Max -5,140 -3,219 -1,193 2,816 5,772 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 65,334 2,106 31,023 1.41e-13 *** hours 1.982 0.248 7.995 2.25e-06 *** --- Significant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 Residual standard error: 3.641 on 13 degrees of freedom Multiple R-squared: 0.831, Adjusted R-squared: 0.818 F-statistic: 63.91 on 1 and 13 DF, p-value: 2.253e-06
मॉडल सारांश से, हम देख सकते हैं कि फिट किया गया प्रतिगमन समीकरण है:
स्कोर = 65.334 + 1.982*(घंटे)
इसका मतलब यह है कि अध्ययन किया गया प्रत्येक अतिरिक्त घंटा औसत परीक्षा स्कोर में 1,982 अंकों की वृद्धि से जुड़ा है। और 65,334 का मूल मान हमें शून्य घंटे तक अध्ययन करने वाले छात्र के लिए औसत अपेक्षित परीक्षा स्कोर बताता है।
हम इस समीकरण का उपयोग किसी छात्र द्वारा अध्ययन किए गए घंटों की संख्या के आधार पर अपेक्षित परीक्षा स्कोर खोजने के लिए भी कर सकते हैं। उदाहरण के लिए, एक छात्र जो 10 घंटे पढ़ाई करता है, उसे 85.15 का परीक्षा स्कोर प्राप्त करना चाहिए:
स्कोर = 65.334 + 1.982*(10) = 85.15
यहां शेष मॉडल सारांश की व्याख्या करने का तरीका बताया गया है:
- Pr(>|t|): यह मॉडल गुणांक से जुड़ा पी-मान है। चूँकि घंटों के लिए पी-वैल्यू (2.25e-06) 0.05 से काफी कम है, हम कह सकते हैं कि घंटों और स्कोर के बीच सांख्यिकीय रूप से महत्वपूर्ण संबंध है।
- एकाधिक आर-वर्ग: यह संख्या हमें बताती है कि परीक्षा के अंकों में भिन्नता का प्रतिशत अध्ययन किए गए घंटों की संख्या से समझाया जा सकता है। सामान्य तौर पर, प्रतिगमन मॉडल का आर-वर्ग मान जितना बड़ा होगा, व्याख्यात्मक चर उतना ही बेहतर प्रतिक्रिया चर के मूल्य की भविष्यवाणी करने में सक्षम होंगे। इस मामले में, स्कोर में 83.1% भिन्नता को अध्ययन किए गए घंटों द्वारा समझाया जा सकता है।
- अवशिष्ट मानक त्रुटि: यह प्रेक्षित मानों और प्रतिगमन रेखा के बीच की औसत दूरी है। यह मान जितना कम होगा, प्रतिगमन रेखा प्रेक्षित डेटा के अनुरूप उतनी ही अधिक सक्षम होगी। इस मामले में, परीक्षा में देखा गया औसत स्कोर प्रतिगमन रेखा द्वारा अनुमानित स्कोर से 3,641 अंक कम हो जाता है।
- एफ-सांख्यिकी और पी-मूल्य: एफ-सांख्यिकी ( 63.91 ) और संबंधित पी-मूल्य ( 2.253e-06 ) हमें प्रतिगमन मॉडल का समग्र महत्व बताते हैं, यानी कि क्या मॉडल में व्याख्यात्मक चर भिन्नता को समझाने के लिए उपयोगी हैं . प्रतिक्रिया चर में. चूँकि इस उदाहरण में पी-वैल्यू 0.05 से कम है, हमारा मॉडल सांख्यिकीय रूप से महत्वपूर्ण है और स्कोर भिन्नता को समझाने में घंटों को उपयोगी माना जाता है।
चरण 4: अवशिष्ट प्लॉट बनाएं
सरल रैखिक प्रतिगमन मॉडल को डेटा में फिट करने के बाद, अंतिम चरण अवशिष्ट प्लॉट बनाना है।
रैखिक प्रतिगमन की प्रमुख धारणाओं में से एक यह है कि प्रतिगमन मॉडल के अवशेष लगभग सामान्य रूप से वितरित होते हैं और व्याख्यात्मक चर के प्रत्येक स्तर पर समरूप होते हैं। यदि ये धारणाएँ पूरी नहीं होती हैं, तो हमारे प्रतिगमन मॉडल के परिणाम भ्रामक या अविश्वसनीय हो सकते हैं।
यह सत्यापित करने के लिए कि ये धारणाएँ पूरी हुई हैं, हम निम्नलिखित अवशिष्ट प्लॉट बना सकते हैं:
अवशिष्ट बनाम फिट किए गए मानों का प्लॉट: यह प्लॉट समरूपता की पुष्टि के लिए उपयोगी है। x-अक्ष फिट किए गए मान प्रदर्शित करता है और y-अक्ष अवशिष्ट प्रदर्शित करता है। जब तक अवशेष पूरे ग्राफ़ में शून्य मान के आसपास बेतरतीब ढंग से और समान रूप से वितरित दिखाई देते हैं, तब तक हम मान सकते हैं कि समरूपता का उल्लंघन नहीं हुआ है:
#define residuals res <- resid(model) #produce residual vs. fitted plot plot(fitted(model), res) #add a horizontal line at 0 abline(0,0)
अवशेष शून्य के आसपास बेतरतीब ढंग से बिखरे हुए प्रतीत होते हैं और कोई ध्यान देने योग्य पैटर्न नहीं दिखाते हैं, इसलिए यह धारणा पूरी होती है।
QQ प्लॉट: यह प्लॉट यह निर्धारित करने के लिए उपयोगी है कि क्या अवशेष सामान्य वितरण का पालन करते हैं। यदि प्लॉट में डेटा मान 45 डिग्री के कोण पर लगभग सीधी रेखा का अनुसरण करते हैं, तो डेटा सामान्य रूप से वितरित किया जाता है:
#create QQ plot for residuals qqnorm(res) #add a straight diagonal line to the plot qqline(res)
अवशेष 45 डिग्री रेखा से थोड़ा विचलित होते हैं, लेकिन गंभीर चिंता पैदा करने के लिए पर्याप्त नहीं हैं। हम मान सकते हैं कि सामान्यता की धारणा पूरी हो गई है।
चूंकि अवशेष सामान्य रूप से वितरित और होमोसेडैस्टिक होते हैं, इसलिए हमने सत्यापित किया कि सरल रैखिक प्रतिगमन मॉडल की धारणाएं पूरी हो गई हैं। इस प्रकार, हमारे मॉडल का आउटपुट विश्वसनीय है।
इस ट्यूटोरियल में प्रयुक्त पूरा आर कोड यहां पाया जा सकता है।