जैसा कि आप मूल अंतर को सही ढंग से नोट करते हैं क्योंकि पहले मामले में आप "कच्चे" बहुपद का उपयोग करते हैं जबकि दूसरे मामले में आप ऑर्थोगोनल बहुपद का उपयोग करते हैं। इसलिए यदि बाद में lm
कॉल को बदल दिया गया: fit3<-lm(y~ poly(x,degree=2, raw = TRUE) -1)
हम fit
और के बीच एक ही परिणाम प्राप्त करेंगे fit3
। कारण क्यों हम इस मामले में एक ही परिणाम प्राप्त "तुच्छ" है; हम ठीक उसी मॉडल को फिट करते हैं जैसा कि हमने फिट किया था fit<-lm(y~.-1,data=x_exp)
, कोई आश्चर्य नहीं।
एक आसानी से जांच कर सकता है कि दो मॉडल द्वारा मॉडल की मैट्रिक्स समान हैं all.equal( model.matrix(fit), model.matrix(fit3) , check.attributes= FALSE) # TRUE
)।
अधिक दिलचस्प यह है कि एक अवरोधन का उपयोग करते समय आपको एक ही भूखंड क्यों मिलेगा। नोटिस करने के लिए पहली बात यह है कि, एक अवरोधन के साथ एक मॉडल फिटिंग करते समय
के मामले में fit2
हम केवल मॉडल भविष्यवाणियों लंबवत स्थानांतरित; वक्र का वास्तविक आकार समान है।
fit
परिणाम के मामले में एक अवरोधन सहित दूसरी तरफ ऊर्ध्वाधर प्लेसमेंट के मामले में न केवल एक अलग रेखा है, बल्कि समग्र रूप से एक अलग आकार है।
हम आसानी से यह देख सकते हैं कि मौजूदा प्लॉट पर निम्नलिखित फिट बैठता है।
fit_b<-lm(y~. ,data=x_exp)
yp=predict(fit_b,xp_exp)
lines(xp,yp, col='green', lwd = 2)
fit2_b<-lm(y~ poly(x,degree=2, raw = FALSE) )
yp=predict(fit2_b,data.frame(x=xp))
lines(xp,yp,col='blue')
ठीक है ... क्यों नहीं अवरोधक फिट अलग थे जबकि अवरोधन-युक्त फिट समान हैं? कैच एक बार फिर ऑर्थोगोनलिटी कंडीशन पर है।
fit_b
उपयोग किए जाने वाले मॉडल मैट्रिक्स के मामले में गैर-ऑर्थोगोनल तत्व शामिल हैं, ग्राम मैट्रिक्स crossprod( model.matrix(fit_b) )
विकर्ण से दूर है; fit2_b
तत्वों के मामले में ऑर्थोगोनल ( crossprod( model.matrix(fit2_b) )
प्रभावी रूप से विकर्ण है)।
fit
fit_b
एक्सटीएक्सfit
fit2
fit2_b
दिलचस्प उप-प्रश्न ऐसा क्यों है fit_b
और fit2_b
समान हैं; के बाद से सभी मॉडल परिपक्व होते हैं fit_b
और अंकित मूल्य मेंfit2_b
समान नहीं होते हैं । यहाँ हम सिर्फ इतना है कि अंत में याद रखने की आवश्यकता है और एक ही जानकारी है। अनिवार्य रूप से उनके परिणामी फिट के समान ही एक रैखिक संयोजन होगा। फिट किए गए गुणांक में मनाया गया अंतर उन्हें ओर्थोगोनल प्राप्त करने के क्रम में मूल्यों के रैखिक पुनर्संयोजन को दर्शाता है । (देखें जी। ग्रोथेंडिक का जवाब यहां भी अलग-अलग उदाहरणों के लिए दिया गया है।)fit_b
fit2_b
fit2_b
fit_b
fit_b
=
और<-
असाइनमेंट के लिए। मैं वास्तव में ऐसा नहीं करूंगा, यह बिल्कुल भ्रामक नहीं है, लेकिन यह बिना किसी लाभ के आपके कोड में बहुत सारे दृश्य शोर जोड़ता है। आपको अपने व्यक्तिगत कोड में उपयोग करने के लिए एक या दूसरे पर बसना चाहिए, और बस इसके साथ रहना चाहिए।