তাহলে কিছু কারণে, আপনি আপনার মডেল একমাত্র পরিবর্তনশীল অন্তর্ভুক্ত করতে যাচ্ছি, তাহলে predictor সঙ্গে যা সর্বোচ্চ পারস্পরিক সম্পর্ক রয়েছে নির্বাচন একাধিক সুবিধা রয়েছে। কেবলমাত্র একজন ভবিষ্যদ্বাণীযুক্ত সম্ভাব্য রিগ্রেশন মডেলগুলির মধ্যে, তবে এই মডেলটি হ'ল একমাত্র উচ্চমানের রিগ্রেশন সহগ এবং এটিও (যেহেতু আর 2 একটি সাধারণ লিনিয়ার রিগ্রেশনে আর এর বর্গ ) সংকল্পের সর্বোচ্চ সহগ ।yR2r
তবে এটি স্পষ্ট নয় যে আপনি যদি আপনার বেশিরভাগের জন্য ডেটা উপলব্ধ করেন তবে আপনি কেন আপনার রিগ্রেশন মডেলটিকে একজন ভবিষ্যদ্বাণীকের কাছে সীমাবদ্ধ রাখতে চান। মন্তব্যে উল্লিখিত হিসাবে, কেবলমাত্র সম্পর্কের দিকে তাকানো কাজ করে না যদি আপনার মডেলটিতে বেশ কয়েকটি ভেরিয়েবল অন্তর্ভুক্ত থাকে। উদাহরণস্বরূপ, এই স্ক্যাটার ম্যাট্রিক্স থেকে, আপনি ভাবতে পারেন যে জন্য আপনার মডেলটি অন্তর্ভুক্ত করা উচিত তার জন্য প্রেডিক্টরগুলি হ'ল এক্স 1 (পারস্পরিক সম্পর্ক 0.824) এবং এক্স 2 (পারস্পরিক সম্পর্ক 0.782) তবে সেই এক্স 3 (পারস্পরিক সম্পর্ক 0.134) কোনও কার্যকর ভবিষ্যদ্বাণীকারী নয়।yx1x2x3
তবে আপনি ভুল হতে চাইবেন - বাস্তবে এই উদাহরণে, দুটি স্বতন্ত্র ভেরিয়েবল, x 1 এবং x 3 এর উপর নির্ভর করে তবে সরাসরি x 2 এ নয় । তবে এক্স 2 অত্যন্ত সঙ্গে সম্পর্কিত এক্স 1 এর সাথে একটি পারস্পরিক সম্পর্ক, যা বাড়ে Y এছাড়াও। মধ্যে পারস্পরিক এ খুঁজছি Y এবং এক্স 2 একলা, এই পরামর্শ দিয়ে থাকি এক্স 2 ভালো predictor হয় Y । কিন্তু একবার প্রভাব এক্স 1 করছে আউট partialled অন্তর্ভুক্ত করে এক্স 1yx1x3x2x2x1yyx2x2yx1x1 মডেলটিতে, এরকম কোনও সম্পর্ক নেই।
require(MASS) #for mvrnorm
set.seed(42) #so reproduces same result
Sigma <- matrix(c(1,0.95,0,0.95,1,0,0,0,1),3,3)
N <- 1e4
x <- mvrnorm(n=N, c(0,0,0), Sigma, empirical=TRUE)
data.df <- data.frame(x1=x[,1], x2=x[,2], x3=x[,3])
# y depends on x1 strongly and x3 weakly, but not directly on x2
data.df$y <- with(data.df, 5 + 3*x1 + 0.5*x3) + rnorm(N, sd=2)
round(cor(data.df), 3)
# x1 x2 x3 y
# x1 1.000 0.950 0.000 0.824
# x2 0.950 1.000 0.000 0.782
# x3 0.000 0.000 1.000 0.134
# y 0.824 0.782 0.134 1.000
# Note: x1 and x2 are highly correlated
# Since y is highly correlated with x1, it is with x2 too
# y depended only weakly on x3, their correlation is much lower
pairs(~y+x1+x2+x3,data=data.df, main="Scatterplot matrix")
# produces scatter plot above
model.lm <- lm(data=data.df, y ~ x1 + x2 + x3)
summary(model.lm)
# Coefficients:
# Estimate Std. Error t value Pr(>|t|)
# (Intercept) 4.99599 0.02018 247.631 <2e-16 ***
# x1 3.03724 0.06462 47.005 <2e-16 ***
# x2 -0.02436 0.06462 -0.377 0.706
# x3 0.49185 0.02018 24.378 <2e-16 ***
x1x2x2x1x3x3
এবং এখানে একটি উদাহরণ যা আরও খারাপ:
Sigma <- matrix(c(1,0,0,0.5,0,1,0,0.5,0,0,1,0.5,0.5,0.5,0.5,1),4,4)
N <- 1e4
x <- mvrnorm(n=N, c(0,0,0,0), Sigma, empirical=TRUE)
data.df <- data.frame(x1=x[,1], x2=x[,2], x3=x[,3], x4=x[,4])
# y depends on x1, x2 and x3 but not directly on x4
data.df$y <- with(data.df, 5 + x1 + x2 + x3) + rnorm(N, sd=2)
round(cor(data.df), 3)
# x1 x2 x3 x4 y
# x1 1.000 0.000 0.000 0.500 0.387
# x2 0.000 1.000 0.000 0.500 0.391
# x3 0.000 0.000 1.000 0.500 0.378
# x4 0.500 0.500 0.500 1.000 0.583
# y 0.387 0.391 0.378 0.583 1.000
pairs(~y+x1+x2+x3+x4,data=data.df, main="Scatterplot matrix")
model.lm <- lm(data=data.df, y ~ x1 + x2 + x3 +x4)
summary(model.lm)
# Coefficients:
# Estimate Std. Error t value Pr(>|t|)
# (Intercept) 4.98117 0.01979 251.682 <2e-16 ***
# x1 0.99874 0.02799 35.681 <2e-16 ***
# x2 1.00812 0.02799 36.016 <2e-16 ***
# x3 0.97302 0.02799 34.762 <2e-16 ***
# x4 0.06002 0.03958 1.516 0.129
yx1x2x3x4x1x2x3x4yy মডেলটির সাথে মোটেই অন্তর্ভুক্ত নয় এমন ভেরিয়েবলটি আসলে খুঁজে পেতে পারেন।