भिन्नता के मूल विचार से शुरू करें। आपका शुरुआती मॉडल माध्य से चुकता विचलन का योग है। R ^ 2 मान उस भिन्नता का अनुपात है जिसका विकल्प एक वैकल्पिक मॉडल का उपयोग करके किया जाता है। उदाहरण के लिए, आर-स्क्वेर आपको बताता है कि वाई में कितनी भिन्नता है, आप माध्य के बजाय प्रतिगमन रेखा से वर्ग दूरी को जोड़कर छुटकारा पा सकते हैं।
मुझे लगता है कि अगर हम साधारण प्रतिगमन समस्या के बारे में सोचते हैं तो यह पूरी तरह से स्पष्ट है। एक विशिष्ट स्कैल्पलॉट पर विचार करें जहां आपके पास क्षैतिज अक्ष के साथ एक पूर्वसूचक एक्स और ऊर्ध्वाधर अक्ष के साथ एक प्रतिक्रिया वाई है।
माध्य भूखंड पर एक क्षैतिज रेखा है जहां Y स्थिर है। वाई में कुल भिन्नता वाई के मतलब और प्रत्येक व्यक्ति डेटा बिंदु के बीच चुकता अंतर का योग है। यह माध्य रेखा और हर अलग-अलग बिंदु के बीच की दूरी है और इसे जोड़ा गया है।
मॉडल से प्रतिगमन लाइन होने के बाद आप परिवर्तनशीलता के एक और माप की गणना भी कर सकते हैं। यह प्रत्येक Y बिंदु और प्रतिगमन रेखा के बीच का अंतर है। प्रत्येक (Y - माध्य) वर्ग की बजाय हमें मिलता है (Y - प्रतिगमन रेखा पर बिंदु) चुकता।
यदि प्रतिगमन रेखा कुछ भी है, लेकिन क्षैतिज है, तो हम औसतन कम दूरी प्राप्त करने जा रहे हैं जब हम इस फिट किए गए प्रतिगमन लाइन का उपयोग माध्य के बजाय करते हैं - जो कि कम अस्पष्टीकृत भिन्नता है। अतिरिक्त भिन्नता और मूल भिन्नता के बीच का अनुपात आपका R ^ 2 है। यह आपकी प्रतिक्रिया में मूल भिन्नता का अनुपात है जिसे उस प्रतिगमन रेखा को फिट करके समझाया गया है।
यहाँ माध्य, प्रतिगमन रेखा, और प्रतिगमन रेखा से खण्डों के साथ ग्राफ के लिए कुछ R कोड विज़ुअलाइज़ेशन में मदद करने के लिए प्रत्येक बिंदु पर दिया गया है:
library(ggplot2)
data(faithful)
plotdata <- aggregate( eruptions ~ waiting , data = faithful, FUN = mean)
linefit1 <- lm(eruptions ~ waiting, data = plotdata)
plotdata$expected <- predict(linefit1)
plotdata$sign <- residuals(linefit1) > 0
p <- ggplot(plotdata, aes(y=eruptions, x=waiting, xend=waiting, yend=expected) )
p + geom_point(shape = 1, size = 3) +
geom_smooth(method=lm, se=FALSE) +
geom_segment(aes(y=eruptions, x=waiting, xend=waiting, yend=expected, colour = sign),
data = plotdata) +
theme(legend.position="none") +
geom_hline(yintercept = mean(plotdata$eruptions), size = 1)