একাধিক লিনিয়ার রিগ্রেশন, কেন পূর্বাভাস পয়েন্ট একটি প্লট একটি সরলরেখায় পড়ে না?


16

আমি Y এবং X1, X2 এর মধ্যে সম্পর্কের বর্ণনা দিতে একাধিক লিনিয়ার রিগ্রেশন ব্যবহার করছি।

তত্ত্ব থেকে আমি বুঝতে পেরেছিলাম যে একাধিক রিগ্রেশন Y এবং X এর প্রতিটি (Y এবং X1, Y এবং X2) এর মধ্যে রৈখিক সম্পর্ককে ধরে নিয়েছে। আমি এক্স এর কোনও রূপান্তর ব্যবহার করছি না

সুতরাং, আমি আর = 0.45 এবং সমস্ত উল্লেখযোগ্য এক্স (পি <0.05) দিয়ে মডেলটি পেয়েছি। তারপরে আমি এক্স 1 এর বিরুদ্ধে ওয়াই প্লট করেছি। আমি বুঝতে পারছি না যে লাল রঙের চেনাশোনাগুলি যা মডেলের পূর্বাভাসগুলি লাইন তৈরি করে না। আমি আগেই বলেছি, আমি প্রত্যাশা করেছি যে ওয়াই এবং এক্স এর প্রতিটি জুটি একটি লাইনের সাথে লাগানো আছে।

এখানে চিত্র বর্ণনা লিখুন

প্লটটি অজগরটিতে এভাবে উত্পন্ন হয়:

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
প্লট / বিশ্লেষণের জন্য আপনি যে কোডটি ব্যবহার করেছেন তা পোস্ট করতে পারেন? লাল এবং নীল রেখাগুলি একে অপরের জিটটার মতো লাগে। সুতরাং, এই চক্রান্তের পিছনের কোডটি আপনার সমস্যার উত্তর দিতে পারে help
দাওয়ানি 33

আপনি কেবলমাত্র একটি লাইন আশা করবেন যদি হয় (i) অন্যান্য পূর্বাভাসকারী মান প্রতিটি পূর্বাভাস পয়েন্টের জন্য একই বলে ধরে নেওয়া হয় (এবং আপনি যদি x 2 এর বিভিন্ন মান ধরে নিয়ে চেষ্টা করেন তবে আপনি একটি আলাদা লাইন পাবেন), বা ( ii) যদি আপনি আপনার প্রকৃত ডেটার জন্য পূর্বাভাস ব্যবহার করেন তবে x 2 এর প্রকরণগুলি "আংশিক আউট" (অর্থাত্ ক্ষতিপূরণ প্রদান) , যা আংশিক রিগ্রেশন প্লট বা যুক্ত ভেরিয়েবল প্লটের জন্য। আপনি কীভাবে এই প্লটটি তৈরি করেছেন তা সঠিকভাবে না জেনে আপনার সমস্যাটি কী তা জানা সম্ভব নয়, যেমন @ dawny33 বলেছেনx2x2x2
সিলভারফিশ

আমি মনে করি @ সিলভারফিশের মন্তব্য সঠিক; ত্রিমাত্রিক একটি প্লেনে প্রতিনিধিত্ব করে পি । আপনি যদি দুটি মাত্রা হ্রাস করেন তবে আপনি বিমানটিকে তিনটি মাত্রায় ( পি ) উদাহরণস্বরূপ ( y , x 1 ) বিমানের 'প্রজেক্ট' করবেন, কেবলমাত্র P ( y , x 1 ) বিমানের অরথগোনাল হলে এটি একটি লাইন হবে । y=β0+β1x1+β2x2PP(y,x1)P(y,x1)

@ দাওয়ানি 33: পোস্ট করেছেন।
ক্লাউসোস

@f কপেনস: ধন্যবাদ তাহলে সাহিত্যিকরা কেন বলে যে একাধিক লিনিয়ার রিগ্রেশন মডেল Y এর প্রতিটি এবং এক্স এর (X এবং X1, Y এবং X2) মধ্যে রৈখিক সম্পর্ক ধরে?
ক্লাউসোস

উত্তর:


33

মনে করুন আপনার একাধিক রিগ্রেশন সমীকরণ ছিল

y^=2x1+5x2+3

যেখানে Y "পূর্বাভাস মানেy^ "।y

এখন কেবল সেই পয়েন্টগুলি নিন যার জন্য । তারপর যদি আপনি প্লটে বিভক্ত Y বিরুদ্ধে এক্স 1 , এই পয়েন্ট সমীকরণ সন্তুষ্ট হবে:x2=1y^x1

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

সুতরাং তাদের অবশ্যই slাল 2 এর লাইনে এবং অন্তর্ভুক্ত 8 এর সাথে অবশ্যই শুয়ে থাকতে হবে ।y

এখন সেই পয়েন্টগুলি নিন যার জন্য । আপনি যখন প্লটে বিভক্ত Y বিরুদ্ধে এক্স 1 , তারপর এই পয়েন্ট সন্তুষ্ট:x2=2y^x1

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

সুতরাং এটি slাল 2 একটি লাইন এবং অন্তর্ভুক্ত 13. আপনি নিজের জন্য যাচাই করতে পারেন যে যদি xy তবে আপনি 2 এর অন্য লাইন পাবেন এবংx2=3y opeাল ইন্টারসেপ্টের ।

আমরা দেখতে পাই যে এর বিভিন্ন মানের সাথে পয়েন্টগুলি বিভিন্ন লাইনে থাকবে তবে সমস্ত একই গ্রেডিয়েন্টের সাথে: মূল রিগ্রেশন সমীকরণের 2 x 1 এর সহগের অর্থ হ'ল, সেটিরিস পেরিবাস অর্থাত্ অন্যান্য ভবিষ্যদ্বাণীকারীকে ধ্রুবক করে রাখা, একটি মধ্যে ইউনিট বৃদ্ধি এক্স 1 বৃদ্ধির পূর্বাভাস গড় প্রতিক্রিয়া Y দুটি ইউনিট দ্বারা, যখন এর পথিমধ্যে অর্থ 3 রিগ্রেশন সমীকরণ ছিল যে যখন এক্স 1 = 0 এবং এক্স 2 = 0 তারপর পূর্বাভাস গড় প্রতিক্রিয়া 3x22x1x1y^3x1=0x2=03 । তবে আপনার সমস্ত পয়েন্টের একই x2 , যার মানে তারা কোনো পৃথক পথিমধ্যে সঙ্গে লাইন থাকা - লাইন কেবলমাত্র 3 বাধা থাকত3 সেই পয়েন্টের জন্য, যার জন্য । সুতরাং একটি একক লাইন না দেখলে আপনি দেখতে পাবেন (যদি x 2 এর নির্দিষ্ট মানগুলি দেখা দেয় তবে উদাহরণস্বরূপ x 2x2=0x2x2 সর্বদা পূর্ণসংখ্যার হয়) ত্রিভুজ "রেখা" এর একটি সিরিজ। নিম্নলিখিত ডেটা বিবেচনা করুন, যেখানে Y = 2 x এর 1 + + 5 এক্স 2 + + 3y^=2x1+5x2+3

Before lines added

এখানে উপলব্ধিযোগ্য "স্ট্রাইক" রয়েছে। এখন যদি আমি সেই পয়েন্টগুলিতে রঙ করি যার জন্য কে লাল চেনাশোনা হিসাবে, x 2 = 2 কে সোনার ত্রিভুজ হিসাবে এবং x 2 = 3 কে নীল বর্গক্ষেত্র হিসাবে দেখতে পাচ্ছি যে তারা তিনটি স্বতন্ত্র রেখায় পড়ে আছে, সমস্ত slাল 2 এবং y- ইন্টারসেপ্টস 8, 13 এবং 18 উপরে গণনা করা হয়েছে। অবশ্যই, যদি x 2 সংখ্যার পূর্ণসংখ্যার মান গ্রহণে বাধা না থাকে, বা পরিস্থিতিটি অন্যান্য ভবিষ্যদ্বাণী ভেরিয়েবলগুলি রিগ্রেশনটিতে অন্তর্ভুক্ত করে জটিল করে তোলে তবে তির্যক স্ট্রাইকিং কম স্পষ্ট হবে, তবে এটি এখনও প্রতিটি ভবিষ্যদ্বাণী করা বিন্দুর ক্ষেত্রে হবে একটি পৃথক লাইনে আছেx2=1x2=2x2=3yx2গ্রাফটিতে দেখানো হয়নি এমন অন্যান্য ভবিষ্যদ্বাণীকের মানগুলির ভিত্তিতে

After lines added

আপনার একটি 3-মাত্রিক গ্রাফ প্লটে বিভক্ত হলে বিরুদ্ধে এক্স 1 এবং এক্স 2 সমীকরণ সঙ্গে দ্বি-মাত্রিক সমতলে সব মিথ্যা আপনার পূর্বাভাষ পয়েন্ট, তারপর Y = 2 x এর 1 + + 5 এক্স 2 + + 3Y বনাম এক্স 1 গ্রাফ আমি উপরে বর্ণিত দুটি মাত্রা সম্মুখের যে ত্রিমাত্রিক গ্রাফ একটি অভিক্ষেপ হয় - কল্পনা নিজের সঙ্গে সারিবদ্ধ এক্স 2 -axis যাতে আপনি সরাসরি এটি ডাউন খুঁজছি হয়, যখন Y পয়েন্ট ঊর্ধ্বমুখী এবং -axis এক্স -অ্যাক্সিস আপনার ডান দিকে নির্দেশ করে।yx1x2y^=2x1+5x2+3yx1x2yx1

3d plot

yy মানগুলি আঁকি তবে অবশিষ্টগুলি যথাক্রমে ধনাত্মক বা নেতিবাচক কিনা তার উপর নির্ভর করে এইগুলি এই পয়েন্টগুলির উপরে বা নীচে উল্লম্বভাবে শুয়ে থাকবে।

y^x1x2x2y^x1x2yx1 x2 তবে আপনি "আংশিক প্রতিরোধের প্লট" ব্যবহার করতে পারেনyx1 উইল একক সরল রেখা হিসাবে আঁকা ।

আর প্লট জন্য কোড

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
আমি এই প্রশ্নটি অভিনীত করছি তাই আমি এই দুর্দান্ত প্লটগুলিতে ফিরে যেতে পারি
ছায়াছবির 6
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.