আপনার যে সমস্যাটি নিয়ে চিন্তিত হতে হবে তাকে অন্তঃসত্ত্বা বলা হয় । আরো নির্দিষ্টভাবে, এটি কিনা উপর নির্ভর করে সঙ্গে জনসংখ্যা হল পারস্পরিক এক্স 1 বা এক্স 2 । যদি এটি হয়, তবে সম্পর্কিত বি জ এর পক্ষপাতিত্ব করা হবে। এর কারণ হল ওএলএসের রিগ্রেশন পদ্ধতিগুলি অবশিষ্টাংশগুলিকে বাধ্য করে, আপনি i , আপনার covariates এর সাথে সম্পর্কযুক্ত হতে পারেন না, x j s। যাইহোক, আপনার অবশিষ্টাংশ কিছু সরলীকরণযোগ্য যদৃচ্ছতা, দ্বারা গঠিত ε আমি , এবং , অলক্ষিত (কিন্তু প্রাসঙ্গিক) পরিবর্তনশীল x 3 হয়x3x1x2bjuixjεix3 , যা চুক্তি দ্বারা সম্পর্কিত সঙ্গে এবং / অথবা এক্স 2 । অন্যদিকে, যদি x 1 এবং x 2 উভয়ইজনসংখ্যারসাথে এক্স 3 এর সাথে সম্পর্কযুক্ত হয়তবে তাদের খ গুলি এর দ্বারা পক্ষপাতী হবে না (অবশ্যই তারা অন্য কোনও কারণে পক্ষপাতদুষ্ট হতে পারে)। একনোমেট্রিকরা এই সমস্যাটি মোকাবিলার জন্য একটি উপায় ব্যবহার করে isx1x2 x1x2x3b ইনস্ট্রুমেন্টাল ভেরিয়েবলগুলি ।
বৃহত্তর স্পষ্টতার স্বার্থে, আমি আর-তে একটি দ্রুত সিমুলেশন লিখেছি যা দেখায় যে এর নমুনা বিতরণ নিরপেক্ষ / নিখরচায় cen 2 এর সত্য মানের উপর কেন্দ্রিক , যখন এটি এক্স 3 এর সাথে সম্পর্কযুক্ত না হয় । দ্বিতীয় রানের ক্ষেত্রে, তবে এটি নোট করুনb2β2x3রানটিতে এক্স 3 এক্স 1 এর সাথে সম্পর্কযুক্তনয়, তবে এক্স 2 নয় । কাকতালীয়ভাবে না, খ 1 পক্ষপাতিত্বহীন, কিন্তু খ 2 হয়পক্ষপাতমূলক। x3x1x2b1b2
library(MASS) # you'll need this package below
N = 100 # this is how much data we'll use
beta0 = -71 # these are the true values of the
beta1 = .84 # parameters
beta2 = .64
beta3 = .34
############## uncorrelated version
b0VectU = vector(length=10000) # these will store the parameter
b1VectU = vector(length=10000) # estimates
b2VectU = vector(length=10000)
set.seed(7508) # this makes the simulation reproducible
for(i in 1:10000){ # we'll do this 10k times
x1 = rnorm(N)
x2 = rnorm(N) # these variables are uncorrelated
x3 = rnorm(N)
y = beta0 + beta1*x1 + beta2*x2 + beta3*x3 + rnorm(100)
mod = lm(y~x1+x2) # note all 3 variables are relevant
# but the model omits x3
b0VectU[i] = coef(mod)[1] # here I'm storing the estimates
b1VectU[i] = coef(mod)[2]
b2VectU[i] = coef(mod)[3]
}
mean(b0VectU) # [1] -71.00005 # all 3 of these are centered on the
mean(b1VectU) # [1] 0.8399306 # the true values / are unbiased
mean(b2VectU) # [1] 0.6398391 # e.g., .64 = .64
############## correlated version
r23 = .7 # this will be the correlation in the
b0VectC = vector(length=10000) # population between x2 & x3
b1VectC = vector(length=10000)
b2VectC = vector(length=10000)
set.seed(2734)
for(i in 1:10000){
x1 = rnorm(N)
X = mvrnorm(N, mu=c(0,0), Sigma=rbind(c( 1, r23),
c(r23, 1)))
x2 = X[,1]
x3 = X[,2] # x3 is correated w/ x2, but not x1
y = beta0 + beta1*x1 + beta2*x2 + beta3*x3 + rnorm(100)
# once again, all 3 variables are relevant
mod = lm(y~x1+x2) # but the model omits x3
b0VectC[i] = coef(mod)[1]
b1VectC[i] = coef(mod)[2] # we store the estimates again
b2VectC[i] = coef(mod)[3]
}
mean(b0VectC) # [1] -70.99916 # the 1st 2 are unbiased
mean(b1VectC) # [1] 0.8409656 # but the sampling dist of x2 is biased
mean(b2VectC) # [1] 0.8784184 # .88 not equal to .64