রাজা এবং জেং (2001) এর বিরল ইভেন্ট বায়াস সংশোধন কখন এবং কীভাবে প্রয়োগ করবেন সে সম্পর্কে ক্রসভিলেটেডের বেশ কয়েকটি প্রশ্ন রয়েছে । আমি আলাদা কিছু সন্ধান করছি: একটি ন্যূনতম সিমুলেশন-ভিত্তিক প্রদর্শন যা পক্ষপাতিত্ব বিদ্যমান that
বিশেষত, কিং এবং জেং রাজ্য
"... বিরল ইভেন্টের ডেটাতে সম্ভাব্যতার বায়াসগুলি হাজারে নমুনা আকারের সাথে যথেষ্ট পরিমাণে অর্থবহ হতে পারে এবং একটি অনুমানযোগ্য দিক হতে পারে: আনুমানিক ইভেন্টের সম্ভাবনা খুব কম" "
আর-তে এই জাতীয় পক্ষপাতিত্বের অনুকরণ করার জন্য আমার প্রয়াস এখানে দেওয়া হল:
# FUNCTIONS
do.one.sim = function(p){
N = length(p)
# Draw fake data based on probabilities p
y = rbinom(N, 1, p)
# Extract the fitted probability.
# If p is constant, glm does y ~ 1, the intercept-only model.
# If p is not constant, assume its smallest value is p[1]:
glm(y ~ p, family = 'binomial')$fitted[1]
}
mean.of.K.estimates = function(p, K){
mean(replicate(K, do.one.sim(p) ))
}
# MONTE CARLO
N = 100
p = rep(0.01, N)
reps = 100
# The following line may take about 30 seconds
sim = replicate(reps, mean.of.K.estimates(p, K=100))
# Z-score:
abs(p[1]-mean(sim))/(sd(sim)/sqrt(reps))
# Distribution of average probability estimates:
hist(sim)
যখন আমি এটি চালাই, আমি খুব ছোট জেড-স্কোর পেতে ঝোঁক, এবং অনুমানের হিস্টোগ্রাম সত্য পি = 0.01 এর কেন্দ্রিকের খুব কাছাকাছি is
আমি কী মিস করছি? এটি কি আমার সিমুলেশনটি যথেষ্ট বড় নয় সত্য (এবং স্পষ্টতই খুব ছোট) পক্ষপাতিত্ব দেখায়? পক্ষপাতদুষ্ট কি কোনও ধরণের কোভারিয়েট (ইন্টারসেপ্টের চেয়ে বেশি) অন্তর্ভুক্ত করা দরকার?
আপডেট 1: কিং এবং জেং তাদের কাগজের 12 সমীকরণে এর পক্ষপাতের জন্য মোটামুটি অনুমান অন্তর্ভুক্ত করে । বুঝেই হর, আমার আয়তন বহুলাংশে কমে যায় হতে এবং সিমুলেশন পুনরায় দৌড়ে, কিন্তু এখনও আনুমানিক ঘটনা সম্ভাব্যতা কোন পক্ষপাত স্পষ্ট। (আমি শুধুমাত্র অনুপ্রেরণা হিসাবে এই ব্যবহার করা হয়েছে। লক্ষ্য করুন আমার প্রশ্নের উপরে, আনুমানিক ঘটনা সম্ভাব্যতা সম্পর্কে নয় β 0 ।)N
N
5
আপডেট 2: মন্তব্যে একটি পরামর্শ অনুসরণ করার পরে, আমি রিগ্রেশনটিতে একটি স্বাধীন ভেরিয়েবল অন্তর্ভুক্ত করেছি, সমমানের ফলাফলের দিকে নিয়ে যাচ্ছি:
p.small = 0.01
p.large = 0.2
p = c(rep(p.small, round(N/2) ), rep(p.large, N- round(N/2) ) )
sim = replicate(reps, mean.of.K.estimates(p, K=100))
ব্যাখ্যা: আমি p
নিজেকে স্বতন্ত্র ভেরিয়েবল হিসাবে ব্যবহার করেছি , যেখানে p
একটি ছোট ভ্যালু (0.01) এবং বৃহত্তর মান (0.2) এর পুনরাবৃত্তি সহ একটি ভেক্টর রয়েছে। শেষ পর্যন্ত, sim
কেবলমাত্র পি = 0.01 এর সাথে সম্পর্কিত আনুমানিক সম্ভাব্যতা সঞ্চয় করে এবং পক্ষপাতের কোনও চিহ্ন নেই।
আপডেট 3 (মে 5, 2016): এটি ফলাফলগুলি লক্ষণীয়ভাবে পরিবর্তন করে না, তবে আমার নতুন অভ্যন্তরীণ সিমুলেশন ফাংশনটি
do.one.sim = function(p){
N = length(p)
# Draw fake data based on probabilities p
y = rbinom(N, 1, p)
if(sum(y) == 0){ # then the glm MLE = minus infinity to get p = 0
return(0)
}else{
# Extract the fitted probability.
# If p is constant, glm does y ~ 1, the intercept only model.
# If p is not constant, assume its smallest value is p[1]:
return(glm(y ~ p, family = 'binomial')$fitted[1])
}
}
ব্যাখ্যা: এমএলই যখন y হ'ল শূন্য থাকে তখন উপস্থিত থাকে না ( মনে করিয়ে দেওয়ার জন্য এখানে মন্তব্যের জন্য ধন্যবাদ )। আর কোনও সতর্কবাণী ফেলতে ব্যর্থ হয়েছে কারণ এর " ইতিবাচক রূপান্তর সহনশীলতা " আসলে সন্তুষ্ট হয়। আরও উদারভাবে বলতে গেলে, এমএলই বিদ্যমান এবং বিয়োগ অনন্ত, যা ; অতএব আমার ফাংশন আপডেট। কেবলমাত্র অন্যান্য সুসংহত জিনিস যা আমি করতে পারি তা হ'ল সিমুলেশনের সেই রানগুলি বাতিল করে দেওয়া যেখানে y একইরকম শূন্য, তবে এটি প্রাথমিকভাবে দাবি তুলনায় আরও বেশি ফলাফলের দিকে নিয়ে যায় যে "অনুমান করা ইভেন্টের সম্ভাবনাগুলি খুব কম"।