বিরল ইভেন্ট লজিস্টিক রিগ্রেশন পক্ষপাত: কীভাবে একটি অপেক্ষাকৃত ছোট্ট উদাহরণটির সাথে অবমূল্যায়ন করা যায়?


19

রাজা এবং জেং (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 ।)β0NN5β^0

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


3
আপনি এতে কাজ করছেন এবং আমি অন্যের মন্তব্যে প্রত্যাশায় আনন্দিত। পক্ষপাতদুটি থাকলেও, পক্ষপাত সংশোধন সম্ভবত বৈকল্পিককে যথেষ্ট পরিমাণে বাড়িয়ে তুলতে পারে যাতে অনুমানের গড় স্কোয়ার ত্রুটি বাড়ানো যায়।
ফ্রাঙ্ক হ্যারেল

3
@ ফ্র্যাঙ্কহারেল, কিং এবং জেং আরও জোর দিয়েছিলেন যে "আমরা সুখী পরিস্থিতিতে আছি যেখানে পক্ষপাত হ্রাস করার ফলে বৈচিত্র্যও হ্রাস পায়।"
zkurtz

1
ভাল. পক্ষপাতের পরিমাণ নিয়ে চিন্তা করার মতো যথেষ্ট পরিমাণে এখনও রয়েছে কি না তা এখনও দেখা যায়।
ফ্রাঙ্ক হ্যারেল

আপনার জন্য "বিরল" কী? উদাহরণস্বরূপ, 0.001% বার্ষিক ডিফল্ট হার ক্রেডিট এএএ রেটিংয়ের সাথে সম্পর্কিত। এটা কি আপনার জন্য বিরল?
আকসকল

1
@ আকসাকাল, আমার "বিরল" এর পছন্দসই পছন্দটিই যা কিং ও জেনগের পক্ষপাতিত্ব সম্পর্কে সবচেয়ে স্পষ্টভাবে প্রমাণ করে।
zkurtz

উত্তর:


4

এটি একটি আকর্ষণীয় প্রশ্ন - আমি কয়েকটি সিমুলেশন করেছি যা আমি নীচে পোস্ট করি এই আশায় যে এটি আরও আলোচনার উদ্রেক করে।

সবার আগে কয়েকটি সাধারণ মন্তব্য:

  • আপনি যে কাগজটি উদ্ধৃত করেছেন তা বিরল-ঘটনা পক্ষপাতিত্ব সম্পর্কে। যা আমার কাছে আগে পরিষ্কার ছিল না (উপরের মতামতগুলির প্রতিও শ্রদ্ধার সাথে) তা হল যদি আপনার 10/3000 পর্যবেক্ষণের বিপরীতে 10/10000 রয়েছে এমন ক্ষেত্রে যদি বিশেষ কিছু থাকে। যাইহোক, কিছু সিমুলেশন পরে, আমি সেখানে সম্মত হবে।

  • আমার মনে একটি সমস্যা ছিল (আমি প্রায়শই এটির মুখোমুখি হয়েছিলাম, এবং সম্প্রতি বাস্তুশাস্ত্রের পদ্ধতি এবং বিবর্তনে মেথডস-এ একটি গবেষণাপত্রটি পাওয়া গিয়েছিল, যদিও আমি এর উল্লেখ খুঁজে পাইনি) হ'ল আপনি ছোট-ডেটাতে জিএলএমগুলির সাথে কেসটি হ্রাস পেতে পারেন is পরিস্থিতি, যেখানে এমএলই সত্য থেকে দূরে থাকে, বা এমনকি - / + অনন্ততায় (আমার ধারণা ননরেখাযুক্ত লিঙ্কের কারণে)। পক্ষপাত অনুমানের ক্ষেত্রে এই কেসগুলি কীভাবে আচরণ করা উচিত তা আমার কাছে পরিষ্কার নয় তবে আমার অনুকরণ থেকে আমি বলব যে তারা বিরল-ঘটনা পক্ষপাতিত্বের পক্ষে মূল বলে মনে হয়। আমার অন্তর্নিহিতগুলি সেগুলি সরিয়ে ফেলতে হবে, তবে তাদের সরিয়ে ফেলা কতটা দূরে থাকতে হবে তা এখনও পরিষ্কার নয়। পক্ষপাত-সংশোধনের জন্য কিছু মনে রাখতে হবে।

  • এছাড়াও, এই অধঃপতনের ক্ষেত্রে সংখ্যাজনিত সমস্যা দেখা দেয় বলে মনে হয় (তাই আমি গ্ল্যাম ফাংশনে সর্বাধিক বৃদ্ধি পেয়েছি, তবে কেউ সত্যিকারের এমএলই রিপোর্ট করে তা নিশ্চিত করার জন্য এপসিলন বাড়ানোর বিষয়েও ভাবতে পারে)।

যাইহোক, এখানে কিছু কোড যা লজিস্টিক রিগ্রেশনটিতে বাধা, opeালু এবং পূর্বাভাসের জন্য প্রাক্কলন এবং সত্যের মধ্যে পার্থক্য গণনা করে, প্রথমে কম নমুনার আকার / পরিমিত ঘটনা পরিস্থিতি:

set.seed(123)
replicates = 1000
N= 40
slope = 2 # slope (linear scale)
intercept = - 1 # intercept (linear scale)

bias <- matrix(NA, nrow = replicates, ncol = 3)
incidencePredBias <- rep(NA, replicates)

for (i in 1:replicates){
  pred = runif(N,min=-1,max=1) 
  linearResponse = intercept + slope*pred
  data = rbinom(N, 1, plogis(linearResponse))  
  fit <- glm(data ~ pred, family = 'binomial', control = list(maxit = 300))
  bias[i,1:2] = fit$coefficients - c(intercept, slope)
  bias[i,3] = mean(predict(fit,type = "response")) - mean(plogis(linearResponse))
}

par(mfrow = c(1,3))
text = c("Bias intercept", "Bias slope", "Bias prediction")

for (i in 1:3){
  hist(bias[,i], breaks = 100, main = text[i])
  abline(v=mean(bias[,i]), col = "red", lwd = 3)  
}

apply(bias, 2, mean)
apply(bias, 2, sd) / sqrt(replicates)

বিরতি, opeালু এবং পূর্বাভাসের জন্য ফলস পক্ষপাত এবং মান ত্রুটিগুলি

-0.120429315  0.296453122 -0.001619793
 0.016105833  0.032835468  0.002040664

আমি এই উপসংহারে পৌঁছে যাব যে বিরতিতে সামান্য নেতিবাচক পক্ষপাতিত্বের জন্য বেশ ভাল প্রমাণ রয়েছে, এবং slালুটিতে সামান্য ইতিবাচক পক্ষপাত, যদিও পরিকল্পনার ফলাফলগুলি পর্যালোচনা করে দেখা যায় যে অনুমিত মূল্যবোধের বৈচিত্রের তুলনায় পক্ষপাতটি ছোট।

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

যদি আমি কোনও বিরল-ইভেন্ট পরিস্থিতিতে প্যারামিটার সেট করে দিই

N= 4000
slope = 2 # slope (linear scale)
intercept = - 10 # intercept (linear scale)

আমি ইন্টারসেপ্টের জন্য আরও বড় পক্ষপাত পাচ্ছি, তবে এখনও ভবিষ্যদ্বাণীটির কোনও দরকার নেই

   -1.716144e+01  4.271145e-01 -3.793141e-06
    5.039331e-01  4.806615e-01  4.356062e-06

আনুমানিক মানগুলির হিস্টোগ্রামে, আমরা পরামিতিগুলির অনুমানের অবনতির ঘটনাটি দেখতে পাই (যদি আমাদের সেগুলি কল করা উচিত)

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

আসুন সমস্ত সারি সরিয়ে ফেলুন যার জন্য ইন্টারসেপ্ট অনুমান <20 20

apply(bias[bias[,1] > -20,], 2, mean)
apply(bias[bias[,1] > -20,], 2, sd) / sqrt(length(bias[,1] > -10))

পক্ষপাত কমে যায়, এবং পরিসংখ্যানগুলিতে জিনিসগুলি আরও কিছুটা স্পষ্ট হয়ে যায় - প্যারামিটারের অনুমানগুলি সাধারণত পরিষ্কারভাবে বিতরণ করা হয় না। আমি আশ্চর্য হয়েছি যে এর অর্থ সিআইএসের বৈধতার জন্য রিপোর্ট করা হয়েছে।

-0.6694874106  1.9740437782  0.0002079945
1.329322e-01 1.619451e-01 3.242677e-06

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

আমি বিরতিতে বিরল ইভেন্ট পক্ষপাতটি উপসংহারে পৌঁছে যাব বিরল ঘটনা নিজেই চালিত, যথা বিরল, অত্যন্ত ছোট অনুমান। আমরা সেগুলি মুছে ফেলতে চাইছি কিনা তা নিশ্চিত নই, কাট অফটি কী হবে তা নিশ্চিত নয়।

তবে লক্ষণীয় একটি গুরুত্বপূর্ণ বিষয় হ'ল, কোনওভাবেই, প্রতিক্রিয়া স্কেলে ভবিষ্যদ্বাণীগুলির কোনও পক্ষপাত নেই বলে মনে হচ্ছে - লিঙ্ক ফাংশনটি কেবল এই অত্যন্ত ছোট মানগুলি শোষণ করে।


1
হ্যাঁ, এখনও আগ্রহী। চমৎকার আলোচনার জন্য এবং আমার মতো ফলাফলগুলি খুঁজে পাওয়ার জন্য +1 (কোনও সুস্পষ্ট পূর্বাভাস পক্ষপাত নয়)। ধরে নিই যে আমরা উভয়ই সঠিক, আমি শেষ পর্যন্ত ভবিষ্যদ্বাণী পক্ষপাত সম্পর্কে সত্যিকারের উদ্বেগের যোগ্যতার (যেমন, কমপক্ষে একটি উদাহরণ) বা রাজা এবং জেং পেপারের দুর্বলতার যে ব্যাখ্যা দিয়েছিল তার একটি বিবরণ দেখতে চাই ultimate তাদের পক্ষপাত সংশোধন করার গুরুত্বকে বাড়িয়ে তুলতে।
zkurtz

±20

1

বিরল ইভেন্ট পক্ষপাত কেবল তখনই ঘটে যখন সেখানে রেজিস্ট্রাররা থাকে। এটি এখানে সিমুলেটেডের মতো কোনও ইন্টারসেপ্ট-কেবল মডেলগুলিতে আসবে না। বিস্তারিত জানার জন্য এই পোস্টটি দেখুন: http://statisticalhorizons.com/linear-vs-logistic#comment-276108


3
ওহে পল. আপনি যদি নিজের উত্তরটি প্রসারিত করেন তবে এটি পছন্দনীয় হবে যাতে এটি স্বতন্ত্র এবং কোনও বাহ্যিক ওয়েবসাইটে অ্যাক্সেসের প্রয়োজন না হয় (উদাহরণস্বরূপ, এটি কোনও সময়ে অনুপলব্ধ হতে পারে)।
প্যাট্রিক কৌলম্বে

ওপিতে "আপডেট 2" নোট করুন। পক্ষপাতিত্বটিও একক রেজিস্ট্রারের সাথে উপস্থিত হতে ব্যর্থ হয়েছিল।
zkurtz

কিং অ্যান্ড জেং-এর সমীকরণ (১)) এবং চিত্র According অনুসারে পক্ষপাতটি রেজিস্ট্রার এক্সের একটি কাজ। এক্স ছোট হলে কোনও পক্ষপাত নেই, যা আপডেটে ওপি কর্তৃক বিবেচিত পরিস্থিতি ২। আমি প্রস্তাবটি দেখার চেষ্টা করব এক্স বড় হলে পক্ষপাত। আমি কিং ও জেংয়ের সিমুলেশনটি প্রতিলিপি করার চেষ্টা করার পরামর্শ দেব।
পল ভন হিপ্পেল

এখানে কিং-জেং কাগজের লিঙ্কটি রয়েছে: gking.harvard.edu/files/0s.pdf
পল ভন হিপ্পেল

1

কাগজ 7 নম্বরে ভবিষ্যদ্বাণীগুলিতে পক্ষপাতমূলক প্রশ্নটির সর্বাধিক প্রত্যক্ষভাবে সমাধান করা হবে বলে মনে হচ্ছে। আমি চিত্রটি সম্পূর্ণরূপে বুঝতে পারি না (বিশেষত, ব্যাখ্যা "অনুমানিত ইভেন্টের সম্ভাবনাগুলি খুব ছোট" একটি ওভারসিম্প্লিকেশন বলে মনে হয়) তবে আমি ধারা 6.1-এ তাদের সিমুলেশনটির সংক্ষিপ্ত বিবরণের ভিত্তিতে এর অনুরূপ কিছু পুনরুত্পাদন করতে সক্ষম হয়েছি:

n_grid = 40
x_grid = seq(0, 7, length.out = n_grid)
beta0 = -6
beta1 = 1

inverse_logit = function(x) 1/(1 + exp(-x))

do.one.sim = function(){
    N = 5000
    x = rnorm(N)
    p = inverse_logit(beta0 + beta1*x)
    # 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(rep(0, n_grid))
    }else{
        # Extract the error
        mod = glm(y ~ x, family = 'binomial')
        truth = inverse_logit(beta0 + beta1*x_grid)
        pred = predict(mod, newdata = data.frame(x = x_grid),
            type = 'response')
        return(pred - truth)
    }
}
mean.of.K.estimates = function(K){
    rowMeans(replicate(K, do.one.sim()))
}

set.seed(1)
bias = replicate(10, mean.of.K.estimates(100))
maxes = as.numeric(apply(bias, 1, max))
mins = as.numeric(apply(bias, 1, min))

par(mfrow = c(3, 1), mar = c(4,4,2,2))
plot(x_grid, rowMeans(bias), type = 'l',
    ylim = c(min(bias), max(bias)),
    xlab = 'x', ylab = 'bias')
lines(x_grid, maxes, lty = 2)
lines(x_grid, mins, lty = 2)
plot(x_grid, dnorm(x_grid), type = 'l',
    xlab = 'x', ylab = 'standard normal density')
plot(x_grid, inverse_logit(beta0 + beta1*x_grid),
    xlab = 'x', ylab = 'true simulation P(Y = 1)',
    type = 'l')

প্রথম চক্রান্তটি হ'ল তাদের চিত্র 7 এর প্রতিলিপি, 10 টি ট্রায়ালের উপরে ফলাফলের পূর্ণ পরিসীমা প্রতিনিধিত্বকারী ড্যাশযুক্ত বক্ররেখার সংযোজন সহ figure

কাগজ অনুযায়ী, x এখানে স্ট্যান্ডার্ড নরমাল থেকে আঁকা রেগ্রেশনটিতে ভবিষ্যদ্বাণীকারী পরিবর্তনশীল। সুতরাং, দ্বিতীয় চক্রান্তে চিত্রিত হিসাবে, পর্যবেক্ষণগুলির আপেক্ষিক ফ্রিকোয়েন্সি x > 3(যেখানে প্রথম প্লটটিতে সর্বাধিক দৃশ্যমান পক্ষপাত ঘটে) হ্রাস পাচ্ছে।

তৃতীয় প্লটটি একটি কার্য হিসাবে উত্পাদন প্রক্রিয়াতে "সত্য" সিমুলেশন সম্ভাব্যতা দেখায় shows x । এটি প্রদর্শিত হয় যে সবচেয়ে বড় পক্ষপাত ঘটে যেখানে xবিরল বা অস্তিত্ব নেই।

একসাথে নেওয়া, এগুলি পরামর্শ দেয় যে ওপিতে "বিরল ঘটনা" (যেমন x > 3) "ইভেন্টটি P(Y = 1)খুব ছোট" এর সাথে বিভ্রান্ত করে কাগজের কেন্দ্রীয় দাবির পুরোপুরি ভুল ব্যাখ্যা করেছিলেন । সম্ভবত কাগজটি পরেরটির পরিবর্তে প্রাক্তনটিকে উদ্বেগ দেয়।

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

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.