कई रैखिक प्रतिगमन में, अनुमानित बिंदुओं का एक भूखंड एक सीधी रेखा में क्यों नहीं होता है?


16

मैं Y और X1, X2 के बीच संबंधों का वर्णन करने के लिए कई रैखिक प्रतिगमन का उपयोग कर रहा हूं।

सिद्धांत से मैंने समझा कि एकाधिक प्रतिगमन Y और X (Y और X1, Y और X2) के बीच रैखिक संबंधों को मानता है। मैं एक्स के किसी भी परिवर्तन का उपयोग नहीं कर रहा हूं।

इसलिए, मुझे आर = 0.45 और सभी महत्वपूर्ण एक्स (पी <0.05) के साथ मॉडल मिला। तब मैंने Y को X1 के खिलाफ प्लॉट किया। मुझे समझ में नहीं आता है कि लाल रंग के मंडलियां जो मॉडल की भविष्यवाणियां हैं, रेखा नहीं बनाती हैं। जैसा कि मैंने पहले कहा था, मुझे उम्मीद थी कि वाई और एक्स की प्रत्येक जोड़ी एक लाइन द्वारा फिट है।

यहाँ छवि विवरण दर्ज करें

प्लॉट इस तरह से अजगर में उत्पन्न होता है:

fig, ax = plt.subplots()
plt.plot(x['var1'], ypred, 'o', validation['var1'], validation['y'], 'ro');
ax.set_title('blue: true,   red: OLS')
ax.set_xlabel('X')
ax.set_ylabel('Y')
plt.show()

1
क्या आप उस कोड को पोस्ट कर सकते हैं जिसका उपयोग आपने प्लॉट / विश्लेषण के लिए किया था। लाल और नीले रंग की रेखाएं एक-दूसरे के jitters की तरह दिखती हैं। इसलिए, इस प्लॉट के पीछे का कोड आपकी समस्या का बेहतर जवाब देने में मदद कर सकता है।
Dawny33

आप केवल एक पंक्ति की उम्मीद करेंगे यदि या तो (i) अन्य भविष्यवक्ता का मान प्रत्येक अनुमानित बिंदु के लिए समान माना जाए (और यदि आप x 2 के विभिन्न मूल्यों को मानने की कोशिश करते हैं तो आपको एक अलग रेखा मिलती है), या ( ii) यदि आप अपने वास्तविक डेटा के लिए भविष्यवाणियों का उपयोग करते हैं, लेकिन "आंशिक बाहर" (यानी के लिए क्षतिपूर्ति) x 2 में भिन्नताएं हैं , जो कि एक आंशिक प्रतिगमन भूखंड या जोड़ा चर भूखंड के लिए है। जानते हुए भी कि कैसे आप इस साजिश यह पता करने के लिए आपकी समस्या के संभव नहीं है का निर्माण किया है, @ dawny33 के रूप में कहते हैं बिनाx2x2x2
silverfish

मुझे लगता है कि @Silverfish की टिप्पणी सही है; तीन आयामों में एक विमान का प्रतिनिधित्व करता है पीy=β0+β1x1+β2x2P । यदि आप दो आयामों को कम करते हैं तो आप विमान को तीन आयामों ( ) में 'प्रोजेक्ट' करते हैं जैसे ( y , x 1 ) विमान, यह केवल एक पंक्ति होगी यदि P , orthogonal to ( y , x 1 ) विमान है। P(y,x1)P(y,x1)

@ Dawny33: पोस्ट किया गया।
क्लाउसोस

@ कॉप्पेंस: धन्यवाद। फिर साहित्य क्यों कहता है कि एक मल्टीपल लीनियर रिग्रेशन मॉडल Y और X (Y और X1, Y और X2) में से प्रत्येक के बीच रैखिक संबंधों को मानता है?
क्लाउसोस

जवाबों:


33

मान लीजिए कि आपका एकाधिक प्रतिगमन समीकरण था

y^=2x1+5x2+3

जहां y का अर्थ है "की भविष्यवाणी की y "।y^y

अब केवल उन बिंदुओं को लें जिनके लिए । तो अगर आप साजिश y के खिलाफ एक्स 1 , इन बातों समीकरण को पूरा करेगा:x2=1y^x1

y^=2x1+5(1)+3=2x1+8

इसलिए उन्हें ढलान 2 की लाइन पर और -डिनसेप्ट 8 के साथ लेटना चाहिए।y

अब उन बिंदुओं को लें जिनके लिए । जब आप साजिश y के खिलाफ एक्स 1 , तो इन बातों को संतुष्ट:x2=2y^x1

y^=2x1+5(2)+3=2x1+13

तो यह ढलान 2 की एक पंक्ति है और -intercept 13. के साथ आप अपने लिए सत्यापित कर सकते हैं कि यदि x 2 = 3 है तो आपको ढलान 2 की दूसरी पंक्ति मिलती है और y -intercept 18 है।yx2=3y

हम देखते हैं कि विभिन्न मानों वाले बिंदु अलग- अलग रेखाओं पर स्थित होंगे, लेकिन सभी समान ढाल के साथ: मूल प्रतिगमन समीकरण में 2 x 1 के गुणांक का अर्थ यह है कि, ceteris paribus अर्थात अन्य भविष्यवाणियों को स्थिर रखना, एक में इकाई वृद्धि एक्स 1 बढ़ जाती है की भविष्यवाणी की मतलब प्रतिक्रिया y दो इकाइयों द्वारा, जबकि के अवरोधन के अर्थ 3 प्रतिगमन समीकरण में किया गया था कि जब एक्स 1 = 0 और एक्स 2 = 0 तो भविष्यवाणी मतलब प्रतिक्रिया है 3x22x1x1y^3x1=0x2=03। लेकिन आपके सभी बिंदुओं में समान , जिसका अर्थ है कि वे एक अलग अवरोधन के साथ लाइनों पर झूठ बोलते हैं - लाइन में केवल उन बिंदुओं के लिए 3 अवरोधन होगा जिनके लिए x 2 = 0 है । इसलिए एक पंक्ति को देखने के बजाय, आप देख सकते हैं (यदि x 2 के कुछ निश्चित मान हैं, उदाहरण के लिए यदि x 2 हमेशा पूर्णांक है) विकर्ण "लकीरों" की एक श्रृंखला। निम्न डेटा पर विचार करें, जहां y = 2 एक्स 1 + 5 एक्स 2 + 3x23x2=0x2x2y^=2x1+5x2+3

लाइनों को जोड़ने से पहले

यहाँ बोधगम्य "धारियाँ" हैं। अब अगर मैं उन बिंदुओं में रंग देता हूं जिनके लिए लाल वृत्त के रूप में, x 2 = 2 स्वर्ण त्रिकोण के रूप में और x 2 = 3 नीले वर्गों के रूप में, हम देखते हैं कि वे तीन अलग-अलग रेखाओं पर, ढलान 2 के सभी, और y -interpret ऊपर की गणना के अनुसार 8, 13 और 18। बेशक, यदि x 2 को पूर्णांक मान लेने के लिए विवश नहीं किया गया था, या स्थिति अन्य पूर्वानुमानकर्ता चर द्वारा प्रतिगमन में शामिल की जा रही थी, तो विकर्ण गति कम स्पष्ट होगी, लेकिन यह अभी भी मामला होगा कि प्रत्येक बिंदु इंगित किया गया था एक अलग लाइन पर स्थित हैx2=1x2=2x2=3yx2ग्राफ पर नहीं दिखाए गए अन्य भविष्यवक्ताओं के मूल्यों के आधार पर

लाइनों के बाद जोड़ा गया

आप में से एक 3 आयामी लेखाचित्र तैयार करने थे, तो के खिलाफ एक्स 1 और एक्स 2 , तो अपने भविष्यवाणी अंक समीकरण के साथ दो आयामी विमान में सब झूठ y = 2 एक्स 1 + 5yx1x2Y बनाम एक्स 1 ग्राफ मैं ऊपर वर्णित दो आयामों पर कि तीन आयामी ग्राफ का अनुमान है - कल्पना खुद के साथ अस्तर एक्स 2 की धुरी है ताकि आप सीधे इसे नीचे देख रहे हैं, जबकि y अंक ऊपर और धुरी एक्स 1y^=2x1+5x2+3yx1x2yx1-एक्सिस आपके अधिकार की ओर इशारा करता है।

3 डी प्लाट

yy

के बीच के रिश्ते y और एक्स 1 रेखीय है जब एक्स 2 के लिए नियंत्रित किया जाता है (यानी निरंतर के लिए एक्स 2 , के बीच के रिश्ते y औरy^x1x2x2y^x1x2yx1 x2yx1

आर भूखंडों के लिए कोड

library(scatterplot3d)

data.df <- data.frame(
  x1 = c(0,2,4,5,8, 1,3,4,7,8, 0,3,5,6,7),
  x2 = c(1,1,1,1,1, 2,2,2,2,2, 3,3,3,3,3)
)

data.df$yhat <- with(data.df, 2*x1 + 5*x2 + 3)

data1.df <- data.df[data.df$x2==1,]
data2.df <- data.df[data.df$x2==2,]
data3.df <- data.df[data.df$x2==3,]

#Before lines added    
mar.default <- c(5,4,4,2) + 0.1
par(mar = mar.default + c(0, 1, 0, 0)) 
plot(data.df[c("x1","yhat")], main=expression("Predicted y against "*x[1]),
     xlab=expression(x[1]), ylab=expression(hat(y)))

#After lines added
plot(data.df[c("x1","yhat")], main=expression("Predicted y against "*x[1]),
     xlab=expression(x[1]), ylab=expression(hat(y)), pch=".")
points(data1.df[c("x1","yhat")], pch=19, col="red")
abline(lm(yhat ~ x1, data=data1.df), col="red")
points(data2.df[c("x1","yhat")], pch=17, col="gold")
abline(lm(yhat ~ x1, data=data2.df), col="gold")
points(data3.df[c("x1","yhat")], pch=15, col="blue")
abline(lm(yhat ~ x1, data=data3.df), col="blue")

#3d plot
myPlot <- scatterplot3d(data.df, pch=".", xlab=expression(x[1]),
                        ylab=expression(x[2]), zlab=expression(hat(y)),
                        main=expression("Predicted y against "*x[1]*" and "*x[2]))
myPlot$plane3d(Intercept=3, x.coef=2, y.coef=5, col="darkgrey")
myPlot$points3d(data1.df, pch=19, col="red")
myPlot$points3d(data2.df, pch=17, col="gold")
myPlot$points3d(data3.df, pch=15, col="blue")
print(myPlot)

बस एक छोटा सा सवाल: प्लेन कहने से आपका मतलब एक प्लेन से भी है जिसमें कुछ वक्रता हो सकती है?
क्लाउसोस

इसका मतलब है "फ्लैट" विमान। मैं बाद में वर्णन करने के लिए एक तस्वीर जोड़ूंगा।
सिल्वरफिश

2
मैं इस प्रश्न को अभिनीत कर रहा हूं ताकि मैं इन महान भूखंडों पर वापस लौट
सकूं
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.