বায়েশিয়ান এ / বি পরীক্ষার সূত্র কোনও অর্থ দেয় না


10

বায়েশিয়ান পদ্ধতি ব্যবহার করে এবি পরীক্ষার ফলাফল গণনা করার জন্য আমি বায়েশিয়ান অ্যাব টেস্টিংয়ের সূত্রটি ব্যবহার করছি ।

pr(পিবি>পিএকজন)=Σআমি=0αবি-1বি(αএকজন+ +আমি,βবি+ +βএকজন)(βবি+ +আমি)বি(1+ +আমি,βবি)বি(αএকজন,βএকজন)

কোথায়

  • αএকজন একের সাথে A এর সাফল্যের সংখ্যা
  • βএকজন এক এর সাথে এ এর ​​ব্যর্থতার সংখ্যা
  • αবি বি এর সাফল্যের সংখ্যা
  • βবি এক সাথে আরও বি এর ব্যর্থতার সংখ্যা
  • বি হ'ল বিটা ফাংশন

উদাহরণ ডেটা:

control: 1000 trials with 78 successes
test: 1000 trials with 100 successes

একটি মানহীন বেইশিয়ান প্রোপ পরীক্ষা আমাকে তাৎপর্যপূর্ণ ফলাফল দেয় (পি <10%):

prop.test(n=c(1000,1000), x=c(100,78), correct=F)

#   2-sample test for equality of proportions without continuity correction
# 
# data:  c(100, 78) out of c(1000, 1000)
# X-squared = 2.9847, df = 1, p-value = 0.08405
# alternative hypothesis: two.sided
# 95 percent confidence interval:
#  -0.0029398  0.0469398
# sample estimates:
# prop 1 prop 2 
#  0.100  0.078 

আমার বায়েস সূত্রটি বাস্তবায়নের সময় (লিঙ্কটিতে ব্যাখ্যাগুলি ব্যবহার করে) আমাকে অত্যন্ত অদ্ভুত ফলাফল দিয়েছে:

# success control+1
a_control <- 78+1
# failures control+1
b_control <- 1000-78+1
# success control+1
a_test <- 100+1
# failures control+1
b_test <- 1000-100+1

is_control_better <- 0
for (i in 0:(a_test-1) ) {
  is_control_better <- is_control_better+beta(a_control+i,b_control+b_test) / 
                       (b_test+i)*beta(1+i,b_test)*beta(a_control,b_control)

}

round(is_control_better, 4)
# [1] 0

তার মানে যে হয় , যা এই ডেটা প্রদত্ত কোন অর্থে দেখা যায় না।পি(টিএসটি>সিহেএনটিআরহেএল)0

কেউ কি স্পষ্ট করতে পারে?


একটি p-valueট্যাগ সহ একটি বায়েশীয় বিশ্লেষণ কোয়েস্টিওব ? আমি ভেবেছিলাম বায়েশিয়ানরা পি-মানগুলির সাথে কিছু করতে অস্বীকৃতি জানায়।
দিলিপ সরোতে

আপনার অধিকার! শুধু ভেবেছি যে এটি আরও মনোযোগ আকর্ষণ করবে!
যিহোশাফট স্কেললেকেন্স

@YehoshaphatSchellekens যে যদি আসল কারণ ছিল আমি অপসারণ p-valueযেহেতু এটি এর সাথে সম্পর্কিত নয় ট্যাগ।
টিম

অবশ্যই, কোনো সমস্যা নেই.
ইয়েহোশাফাত স্কেললেকেন্স

উত্তর:


17

আপনি যে সাইটে উদ্ধৃতি করেছেন সেখানে একটি বিজ্ঞপ্তি রয়েছে

বিটা ফাংশনটি খুব বড় সংখ্যক উত্পাদন করে, সুতরাং আপনি যদি আপনার প্রোগ্রামে অসীম মান অর্জন করেন তবে উপরের কোডের মতো লগারিদম দিয়ে কাজ করতে ভুলবেন না। আপনার স্ট্যান্ডার্ড লাইব্রেরির লগ-বিটা ফাংশনটি এখানে কার্যকর হবে।

সুতরাং আপনার বাস্তবায়ন ভুল। নীচে আমি সংশোধিত কোড সরবরাহ করেছি:

a_A <- 78+1
b_A <- 1000-78+1
a_B <- 100+1
b_B <- 1000-100+1

total <- 0

for (i in 0:(a_B-1) ) {
  total <- total + exp(lbeta(a_A+i, b_B+b_A)
                       - log(b_B+i)
                       - lbeta(1+i, b_B)
                       - lbeta(a_A, b_A))

}

এটি মোট = 0.9576921 কে আউটপুট দেয়, এটি হল "বিজোড় দীর্ঘমেয়াদে A কে পরাজিত করবে" (আপনার লিঙ্কটি উদ্ধৃত করে) আপনার উদাহরণটিতে বি থেকে বৈধ বলে মনে হচ্ছে এর চেয়ে বেশি অনুপাত রয়েছে। সুতরাং, এটা না একটি পি -value বরং সম্ভাবনা যে বি বৃহত্তর তারপর একজন হয় (আপনি কি না এটা হতে আশা <0.05)।

ফলাফলগুলি পরীক্ষা করার জন্য আপনি সাধারণ সিমুলেশনগুলি চালনা করতে পারেন:

set.seed(123)

# does Binomial distributions with proportions
# from your data give similar estimates?

mean(rbinom(n, 1000, a_B/1000)>rbinom(n, 1000, a_A/1000))

# and does values simulated in a similar fashion to
# the model yield similar results?

fun2 <- function(n=1000) {
  pA <- rbeta(1, a_A, b_A)
  pB <- rbeta(1, a_B, b_B)
  mean(rbinom(n, 1000, pB) > rbinom(n, 1000, pA))
}

summary(replicate(1000, fun2(1000)))

উভয় ক্ষেত্রেই উত্তর হ্যাঁ।


কোড সম্পর্কে, লক্ষ্য করুন যে লুপের জন্য অপ্রয়োজনীয় এবং সাধারণত তারা আরগুলিতে জিনিসগুলি ধীর করে তোলে, তাই আপনি বিকল্পভাবে vapplyক্লিনার এবং কিছুটা দ্রুত কোডের জন্য ব্যবহার করতে পারেন :

fun <- function(i) exp(lbeta(a_A+i, b_B+b_A)
             - log(b_B+i)
             - lbeta(1+i, b_B)
             - lbeta(a_A, b_A))

sum(vapply(0:(a_B-1), fun, numeric(1)))

হুম ... আমি অবাক হয়েছি যে আপনি আসলে গতির জন্য পরীক্ষা করেছেন কিনা, কারণ লুপের vapplyচেয়ে বেশি ভেক্টরোজীড নেই for, বিপরীতে, তারা মূলত একই রকম। ভাল উত্তর যদিও।
ডেভিড আরেনবুর্গ

1
সি / সি ++ / ফোর্টান forলুপস == ভেক্টরাইজড; আর forলুপ! = ভেক্টরাইজড। এটি মূলত ভেক্টরাইজড সংজ্ঞা।
ডেভিড আরেনবুর্গ

1
লগ সহ পয়েন্টটি ইয়েহোশাফাতসেলেলেকেনস নির্দিষ্ট সফ্টওয়্যার সম্পর্কিত নয় তবে সাধারণ পরিসংখ্যানগত কম্পিউটিং সম্পর্কিত। সাইটের উদাহরণে আপনার উদ্ধৃতিতে জুলিয়া কোড সরবরাহ করা হয়েছে - জুলিয়া স্ট্যাটিস্টিকাল প্রোগ্রামিংয়ের জন্য খুব ভাল ভাষা এবং এখনও লগ ব্যবহার করা হয়।
টিম

2
প্রকৃতপক্ষে, আমি এসও সম্পর্কে আমাদের এই সঠিক আলোচনা সম্পর্কে সবেমাত্র একটি প্রশ্ন জিজ্ঞাসা করেছি vapply, ভবিষ্যতে আমার দৃষ্টিভঙ্গির বিষয়ে আমার পুনর্বিবেচনার প্রয়োজন হতে পারে । আমি আশা করি আমি একবার এবং সব জন্য কিছু সুন্দর উত্তর পাবেন।
ডেভিড আরেনবুর্গ

2
ঠিক আছে, দীর্ঘক্ষণ চিন্তাভাবনা করার পরে এবং আমার প্রশ্নে আমি যে মন্তব্যগুলি এবং উত্তর পেয়েছি তার সংক্ষিপ্ততার পরে, আমি মনে করি আমি vapplyআসলে কী তা সম্পর্কে কিছু সাধারণ বোঝাপড়া নিয়ে এসেছি । আমার উত্তর এখানে দেখুন
ডেভিড আরেনবুর্গ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.