कोर्स
मूल रूप से, R-स्क्वेयर्ड आश्रित चर में कुल विचरण का वह अनुपात बताता है जिसे स्वतंत्र चर (या चर) के कारण माना जा सकता है। आप इसे इस रूप में देख सकते हैं कि हमारा मॉडल डेटा की कहानी को कितनी अच्छी तरह पकड़ता है, और कितना हिस्सा अस्पष्टीकृत शोर के रूप में बचता है। इसकी सादगी और सीधी व्याख्या के कारण यह रैखिक प्रतिगमन निदान में व्यापक है, खासकर सरल और बहु-रैखिक प्रतिगमन में।
इस लेख में, हम R-स्क्वेयर्ड का अर्थ, गणना, व्याख्या, और इससे जुड़ी आम गलतफहमियों पर चर्चा करेंगे, ताकि हम इसे आत्मविश्वास और सावधानी—दोनों के साथ—इस्तेमाल कर सकें। साथ ही, हम R और Python में R-स्क्वेयर्ड निकालने के कुछ कोड उदाहरण भी देखेंगे।
R-स्क्वेयर्ड क्या है?
R-स्क्वेयर्ड, जिसे R² से दर्शाया जाता है, प्रतिगमन मॉडलों में गुडनेस-ऑफ-फिट का एक सांख्यिकीय माप है। यह बताता है कि आश्रित चर में कितनी भिन्नता को मॉडल द्वारा समझाया जा सकता है।
R-स्क्वेयर्ड का मान 0 और 1 के बीच होता है:
- R² = 0 का मतलब है कि मॉडल किसी भी भिन्नता को नहीं समझाता;
- R² = 1 का मतलब है कि मॉडल सारी भिन्नता समझा देता है।
यद्यपि अवधारणा सरल है, इसकी व्याख्या अर्थपूर्ण ढंग से करना सूक्ष्मता मांगता है—खासकर जब सिद्धांत से व्यवहार में जाते हैं।
R-स्क्वेयर्ड कैसे निकालें
R-स्क्वेयर्ड की गणना के कई गणितीय रूप से समतुल्य तरीके हैं, जो संदर्भ—सरल प्रतिगमन, बहु-प्रतिगमन, मैट्रिक्स बीजगणित, या बेयज़ियन मॉडलिंग—के अनुसार “फिट” का अलग-अलग दृष्टिकोण देते हैं। आइए सबसे अधिक इस्तेमाल होने वाले तरीकों को देखें।
1. अवशिष्ट वर्गों के योग और कुल वर्गों के योग का उपयोग
यह सबसे मानक और व्यापक रूप से प्रयुक्त सूत्र है:

जहाँ:
- RSS अवशिष्ट वर्गों का योग है, जो मॉडल द्वारा न समझाई गई भिन्नता को मापता है,
- TSS कुल वर्गों का योग है, जो डेटा में कुल भिन्नता को मापता है।
दूसरे शब्दों में, R-स्क्वेयर्ड कुल भिन्नता का वह अंश दर्शाता है जिसे मॉडल समझाता है।
यह तरीका इस बात पर प्रकाश डालता है कि औसत के आधार पर भविष्यवाणी करने की तुलना में प्रतिगमन मॉडल कितना बेहतर प्रदर्शन करता है।
2. समझाए गए वर्गों के योग और कुल वर्गों के योग का उपयोग
R-स्क्वेयर्ड को सीधे समझाई गई भिन्नता के रूप में भी लिखा जा सकता है:

जहाँ:
- ESS समझाए गए वर्गों का योग है, जो बताता है कि मॉडल ने भिन्नता का कितना हिस्सा पकड़ा,
- TSS कुल वर्गों का योग है, जो डेटा की कुल भिन्नता को मापता है।
यह संस्करण दर्शाता है कि परिणाम में कुल भिन्नता का कितना हिस्सा मॉडल की भविष्यवाणियों द्वारा पकड़ा गया है। यानी, यहाँ फोकस इस बात से हटकर कि हमने क्या नहीं समझाया (RSS) से इस पर आता है कि हमने क्या समझाया (ESS)—जो अधिक सकारात्मक ढांचा देता है।
वर्गों के योग के तीन घटकों पर गहराई से पढ़ने के लिए देखें Understanding Sum of Squares: A Guide to SST, SSR, and SSE.
3. समझाए गए वर्गों के योग और अवशिष्ट वर्गों के योग का उपयोग
ANOVA तालिका के संदर्भ में, R-स्क्वेयर्ड कुल भिन्नता के विघटन से स्वाभाविक रूप से निकलता है:

जहाँ:
- ESS समझाए गए वर्गों का योग है, जो बताता है कि मॉडल ने भिन्नता का कितना हिस्सा पकड़ा,
- RSS अवशिष्ट वर्गों का योग है, जो मॉडल द्वारा न समझाई गई भिन्नता को मापता है।
यह रूप दिखाता है कि कुल भिन्नता का कितना हिस्सा मॉडल ने पकड़ा और कितना हिस्सा अनव्याख्यित रह गया।
यह दृष्टिकोण थोड़ा अनोखा है क्योंकि यह R-स्क्वेयर्ड को परिकल्पना परीक्षण से जोड़ता है। इसका कारण यह है कि ESS और RSS के अनुपात से ही F-सांख्यक निकाला जाता है, जिससे ANOVA शैली की रिपोर्टिंग में R-स्क्वेयर्ड महत्व-परीक्षण का अहम हिस्सा बनता है।
4. सरल रैखिक प्रतिगमन में सहसंबंध गुणांक का उपयोग
पिछले तीन तरीके प्रतिगमन विघटन से प्राप्त बीजगणितीय रूप से समतुल्य सूत्र थे। अब एक नया दृष्टिकोण देखें:
एक ही पूर्वानुमानक वाले सरल रैखिक प्रतिगमन में R-स्क्वेयर्ड का एक शॉर्टकट होता है:

जहाँ
- r x और y के बीच पियरसन सहसंबंध गुणांक है।
यह सूत्र दिखाता है कि दो चरों के बीच मजबूत रैखिक संबंध सीधे उच्च R-स्क्वेयर्ड में बदल जाता है।
सरल रैखिक प्रतिगमन के पीछे के सिद्धांत को समझने के लिए यह पढ़ें: Simple Linear Regression: Everything You Need to Know।
5. औसत वर्ग त्रुटि और परिणाम के विचरण का उपयोग
R-स्क्वेयर्ड को मॉडल त्रुटि के एक सामान्यीकृत माप के रूप में भी निकाला जा सकता है:

जहाँ:
- MSE मॉडल की औसत वर्ग त्रुटि है,
- Var(y) वास्तविक परिणाम का विचरण है।
यह ढांचा विशेष रूप से तब प्रासंगिक है जब अलग-अलग पैमानों या इकाइयों में मॉडलों की तुलना करनी हो, क्योंकि यह मॉडल त्रुटि को संपूर्ण डेटा फैलाव से सामान्यीकृत करता है।
6. पूर्वानुमानित मानों के विचरण का उपयोग
यदि अवशेष पूर्वानुमानों से असंबद्ध हों, तो R-स्क्वेयर्ड को मॉडल द्वारा पकड़ी गई भिन्नता के अंश के रूप में भी समझा जा सकता है:

जहाँ:
- Var(ŷ) मॉडल की भविष्यवाणियों का विचरण है,
- Var(y) वास्तविक परिणाम का विचरण है।
यह संस्करण इस बात पर प्रकाश डालता है कि भविष्यवाणियाँ वास्तविक डेटा के फैलाव को कितनी अच्छी तरह दर्शाती हैं।
R-स्क्वेयर्ड की व्याख्या
जैसा कि हमने पहले कहा, R-स्क्वेयर्ड निकालना आसान है, पर अर्थपूर्ण व्याख्या करना थोड़ा मुश्किल।
- एक उच्च R-स्क्वेयर्ड दर्शाता है कि मॉडल भिन्नता का बड़ा हिस्सा समझाता है। पर इसका यह अर्थ नहीं कि हमारा मॉडल अवश्य सही या उपयोगी है।
- एक निम्न R-स्क्वेयर्ड का मतलब है कि मॉडल द्वारा बहुत कम भिन्नता समझाई गई। यह हमेशा बुरा नहीं है—खासकर सामाजिक विज्ञान या शोरयुक्त डेटा में, जहाँ निम्न R-स्क्वेयर्ड अपेक्षित होता है।
यह याद रखना महत्वपूर्ण है कि R-स्क्वेयर्ड सहसंबंध को मापता है, कारणता को नहीं। इस बात से कि हमारे पूर्वानुमानक परिणाम को समझाते हैं, यह सिद्ध नहीं होता कि वे उसे कारण हैं—क्योंकि सहसंबंध कारण नहीं होता। साथ ही, R-स्क्वेयर्ड यह भी नहीं बताता कि भविष्यवाणियाँ सटीक हैं या नहीं।
रैखिक प्रतिगमन से जुड़े उन्नत विषयों पर ये दो साधन उपयोगी हैं:
- Variance Inflation Factor (VIF): Addressing Multicollinearity in Regression Analysis
- QR Decomposition in Machine Learning: A Detailed Guide
R-स्क्वेयर्ड कब उपयोग करें
उचित परिस्थितियों में R-स्क्वेयर्ड बहुत सहायक है। यह इन स्थितियों में उपयुक्त है:
- एक ही संख्या के पूर्वानुमानकों वाले मॉडलों की तुलना करना।
- यह बताना कि किसी डेटासेट की कितनी भिन्नता मॉडल द्वारा समझाई गई है।
दूसरी ओर, इन परिस्थितियों में R-स्क्वेयर्ड भ्रामक हो सकता है:
- अप्रासंगिक पूर्वानुमानक जोड़ना, जिससे ओवरफिटिंग होती है। इस durumda, R-स्क्वेयर्ड हमेशा बढ़ता है, भले ही मॉडल का भविष्यसूचक प्रदर्शन बेहतर न हो।
- अलग-अलग संख्या के पूर्वानुमानकों (यानी अलग जटिलता) वाले मॉडलों की तुलना करना। यहाँ समायोजित R-स्क्वेयर्ड बेहतर विकल्प है। समायोजित R-स्क्वेयर्ड पर मैं आगे बात करूंगा।
R और Python में R-स्क्वेयर्ड के उदाहरण
अब Kaggle के Fish Market डेटासेट से R और Python में R-स्क्वेयर्ड को प्रदर्शित करते हैं। दोनों भाषाओं में, हम दो मॉडल बनाएंगे:
- मॉडल 1: चार पूर्वानुमानकों से मछली का वज़न भविष्यवाणी करना।
- मॉडल 2: एक यादृच्छिक, अप्रासंगिक पूर्वानुमानक जोड़ना।
R उदाहरण
आइए R से शुरू करें।
मॉडल 1
# Load data
fish <- read.csv("Fish.csv")
# Model 1
model1 <- lm(Weight ~ Length1 + Length2 + Height + Width, data=fish)
summary(model1)$r.squared
आउटपुट:
[1] 0.8673
मॉडल 2
# Model 2 with an irrelevant predictor
fish$random_noise <- rnorm(nrow(fish))
model2 <- lm(Weight ~ Length1 + Length2 + Height + Width + random_noise, data=fish)
summary(model2)$r.squared
आउटपुट:
[1] 0.8679
जैसा कि हम देखते हैं, अप्रासंगिक पूर्वानुमानक (मॉडल 2) जोड़ने के बाद R-स्क्वेयर्ड थोड़ा बढ़ा। पर इसका मतलब यह नहीं कि मॉडल बेहतर हो गया—आखिरकार, हमने सिर्फ यादृच्छिक शोर जोड़ा है।
इस विषय पर और पढ़ने के लिए ये ट्यूटोरियल देखें:
और हमारे निर्दिष्ट कोर्स में नामांकन करना याद रखें:
Python उदाहरण
अब, Python में कोशिश करें।
मॉडल 1
import pandas as pd
import statsmodels.api as sm
import numpy as np
# Load data
fish = pd.read_csv('Fish.csv')
X1 = fish[['Length1', 'Length2', 'Height', 'Width']]
y = fish['Weight']
# Model 1
X1 = sm.add_constant(X1)
model1 = sm.OLS(y, X1).fit()
print(model1.rsquared)
आउटपुट:
0.8673
मॉडल 2
# Model 2 with an irrelevant predictor
fish['random_noise'] = np.random.randn(len(fish))
X2 = fish[['Length1', 'Length2', 'Height', 'Width', 'random_noise']]
X2 = sm.add_constant(X2)
model2 = sm.OLS(y, X2).fit()
print(model2.rsquared)
आउटपुट:
0.8679
फिर से, R-स्क्वेयर्ड में हल्की वृद्धि दिखती है, लेकिन यह केवल यादृच्छिक शोर को पकड़ रहा है।
सीखना जारी रखने के लिए, हमारे कोर्स में नामांकन करें:
- Introduction to Regression with statsmodels in Python और
- Intermediate Regression with statsmodels in Python
R-स्क्वेयर्ड बनाम संबंधित मेट्रिक्स
अब हम संक्षेप में R-स्क्वेयर्ड की तुलना दो संबंधित मेट्रिक्स से करेंगे: समायोजित R-स्क्वेयर्ड और भविष्यवाणी R-स्क्वेयर्ड।
R-स्क्वेयर्ड बनाम समायोजित R-स्क्वेयर्ड
R-स्क्वेयर्ड के विपरीत, समायोजित R-स्क्वेयर्ड पूर्वानुमानकों की संख्या का लेखा रखता है। विशेष रूप से, यह अनावश्यक पूर्वानुमानकों को शामिल करने पर मॉडल को दंडित करता है:

जहाँ:
- n प्रेक्षणों की संख्या है,
- p पूर्वानुमानकों की संख्या है।
यह मेट्रिक तभी बढ़ता है जब नया पूर्वानुमानक वास्तव में मॉडल को सार्थक रूप से सुधारता है, और उल्टे हाल में घट सकता है। इस महत्वपूर्ण विस्तार पर अधिक जानने के लिए हमारा ट्यूटोरियल पढ़ें: Adjusted R-Squared: A Clear Explanation with Examples।
R-स्क्वेयर्ड बनाम भविष्यवाणी R-स्क्वेयर्ड
जहाँ सामान्य R-स्क्वेयर्ड बताता है कि मॉडल प्रशिक्षण डेटा पर कितना अच्छा करता है, वहीं भविष्यवाणी R-स्क्वेयर्ड बताता है कि नया, अनदेखा डेटा पर यह कैसा करता है। इसलिए, यह मॉडल की सामान्यीकरण क्षमता का आकलन करता है।
भविष्यवाणी R-स्क्वेयर्ड को क्रॉस-वैलिडेशन या प्रशिक्षण डेटा के एक हिस्से को अलग रखकर निकाला जाता है। यदि मॉडल ओवरफिटेड है, तो यह सामान्य R-स्क्वेयर्ड से काफी कम हो सकता है। अतः यदि सामान्य R-स्क्वेयर्ड उच्च और भविष्यवाणी R-स्क्वेयर्ड निम्न है, तो यह अधिकांशतः ओवरफिटिंग का संकेत है।
R-स्क्वेयर्ड के बारे में आम गलतफहमियाँ
आइए R-स्क्वेयर्ड से जुड़े कुछ लोकप्रिय मिथकों और वास्तविकताओं पर नज़र डालें:
- “उच्च R-स्क्वेयर्ड हमेशा अच्छे मॉडल का संकेत है।” यह जरूरी नहीं। ओवरफिट मॉडल या भ्रामक सहसंबंधों पर बने मॉडल के लिए भी R-स्क्वेयर्ड उच्च हो सकता है। स्वाभाविक है, ऐसे दोनों ही मामलों में मॉडल को अच्छा नहीं कहा जा सकता।
- “R-स्क्वेयर्ड भविष्यवाणी क्षमता मापता है।” वास्तव में, यह केवल प्रशिक्षण डेटा पर मॉडल फिट को मापता है और अनदेखे डेटा के बारे में कुछ नहीं कहता। भविष्य के प्रदर्शन के लिए, ऊपर बताए गए भविष्यवाणी R-स्क्वेयर्ड जैसे अन्य मेट्रिक्स चाहिए।
- “हमें हमेशा उच्च R-स्क्वेयर्ड का लक्ष्य रखना चाहिए।” जरूरी नहीं। यह डोमेन और डेटा गुणवत्ता पर निर्भर करता है। जैसा कि पहले बताया, मनोविज्ञान या इतिहास जैसे सामाजिक विज्ञानों में R-स्क्वेयर्ड का मान बहुत कम (0.1 या उससे भी कम) होकर भी अर्थपूर्ण हो सकता है। शोरयुक्त डेटा के लिए भी निम्न R-स्क्वेयर्ड अपेक्षित है।
निष्कर्ष
संक्षेप में, हमने सीखा कि R-स्क्वेयर्ड क्या है, इसे कैसे निकाला जाता है (गणितीय रूप से और R व Python में), कब इसका उपयोग करना चाहिए और कब नहीं, और परिणामों की व्याख्या कैसे करें। साथ ही, हमने दो संबंधित मेट्रिक्स और R-स्क्वेयर्ड से जुड़ी कुछ प्रचलित गलतफहमियों को भी छुआ।
संक्षेप में, R-स्क्वेयर्ड प्रतिगमन मॉडल फिट का एक उपयोगी, सहज और सीधा माप है। यह मॉडल मूल्यांकन का एक अच्छा शुरुआती बिंदु है, पर इसे समझदारी से इस्तेमाल करना चाहिए, अन्य मेट्रिक्स के साथ मिलाकर देखना चाहिए, और इसे पूरी तस्वीर न मानें—खासकर बहु-प्रतिगमन और मॉडल चयन के सन्दर्भ में।
IBM प्रमाणित डेटा साइंटिस्ट (2020); इससे पहले विश्वभर में तेल और गैस क्षेत्रों के पेट्रोलियम भूविज्ञानी/जियोमॉडलर, 12+ वर्षों के अंतरराष्ट्रीय कार्य अनुभव के साथ। Python, R और SQL में दक्ष। विशेषज्ञता के क्षेत्र: डेटा क्लीनिंग, डेटा मैनिपुलेशन, डेटा विज़ुअलाइज़ेशन, डेटा विश्लेषण, डेटा मॉडलिंग, सांख्यिकी, स्टोरीटेलिंग, मशीन लर्निंग। डेटा साइंस समुदायों का प्रबंधन करने और डेटा साइंस व करियर विषयों पर लेखों व ट्यूटोरियल्स के लेखन/समीक्षा में व्यापक अनुभव।
R-स्क्वेयर्ड FAQs
R-स्क्वेयर्ड क्या है?
R-स्क्वेयर्ड, जिसे R² से दर्शाया जाता है, प्रतिगमन मॉडलों में गुडनेस-ऑफ-फिट का सांख्यिकीय माप है, जो दिखाता है कि आश्रित चर में भिन्नता का कितना हिस्सा मॉडल द्वारा समझाया जा सकता है।
R-स्क्वेयर्ड कैसे निकालते हैं?
R-स्क्वेयर्ड की गणना का सबसे सामान्य सूत्र है: R2=1-RSS/TSS, जहाँ RSS अवशिष्ट वर्गों का योग है और TSS कुल वर्गों का योग है।
R-स्क्वेयर्ड किन मानों को ले सकता है?
R-स्क्वेयर्ड का मान 0 और 1 के बीच होता है, जहाँ R²=0 का अर्थ है मॉडल कोई भिन्नता नहीं समझाता और R²=1 का अर्थ है मॉडल पूरी भिन्नता समझा देता है।
R-स्क्वेयर्ड की व्याख्या कैसे करें?
उच्च R-स्क्वेयर्ड का मतलब है कि मॉडल प्रशिक्षण डेटा में भिन्नता का बड़ा हिस्सा समझाता है, जबकि निम्न R-स्क्वेयर्ड का मतलब है कि मॉडल बहुत कम भिन्नता समझाता है। R-स्क्वेयर्ड कारणता को नहीं मापता और न ही मॉडल की शुद्धता या उपयोगिता के बारे में कुछ कहता है।
आप R-स्क्वेयर्ड कब उपयोग करते हैं?
R-स्क्वेयर्ड समान संख्या के पूर्वानुमानकों वाले मॉडलों की तुलना करने या यह बताने में मदद कर सकता है कि किसी डेटासेट की कितनी भिन्नता मॉडल द्वारा समझाई गई है।
