আপনি যথাযথভাবে লক্ষ্য করেছেন যে মূল পার্থক্যটি হ'ল কারণ প্রথম ক্ষেত্রে আপনি "কাঁচা" বহুপদী ব্যবহার করেন যখন দ্বিতীয় ক্ষেত্রে আপনি অরথোগোনাল বহুভুজ ব্যবহার করেন। সুতরাং যদি পরবর্তী 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
)
আরও আকর্ষণীয় বিষয় হ'ল কোনও ইন্টারসেপ্ট ব্যবহার করার সময় আপনি কেন একই প্লট পাবেন। প্রথম লক্ষ্য করার বিষয়টি হ'ল, যখন কোনও ইন্টারসেপ্ট সহ কোনও মডেল ফিট করে fit
ক্ষেত্রে fit2
কেবলমাত্র আমরা মডেল ভবিষ্যৎবাণী উল্লম্বভাবে সরাতে; বক্ররেখার আসল আকৃতি একই।
অন্যদিকে fit
, উল্লম্ব স্থান নির্ধারণের ক্ষেত্রে নয় বরং সামগ্রিকভাবে সম্পূর্ণ ভিন্ন আকারের ফলাফলের ক্ষেত্রে একটি বিরতি সহ
আমরা সহজেই বিদ্যমান প্লটের উপর নীচে ফিট করে ফিট করে দেখতে পারি can
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
=
এবং<-
অসম্পূর্ণভাবে নিয়োগের জন্য। আমি সত্যিই এটি করব না, এটি ঠিক বিভ্রান্তিকর নয়, তবে এটি কোনও লাভের জন্য আপনার কোডটিতে প্রচুর ভিজ্যুয়াল শোরগোল যোগ করে। আপনার ব্যক্তিগত কোডটি ব্যবহার করার জন্য আপনার এক বা অন্যটিতে স্থির হওয়া উচিত, এবং কেবল এটির সাথে আটকে থাকুন।