এমসিএমসি ব্যবহার করে পরিচিত ঘনত্বের সাথে দ্বিবিভক্ত বিতরণ থেকে নমুনা


9

আমি আর তে মেট্রোপলিস অ্যালগরিদম ব্যবহার করে একটি বিভাজন ঘনত্ব থেকে সিমুলেট করার চেষ্টা করেছি এবং কোনও ভাগ্য হয়নি। ঘনত্বটি হিসাবে প্রকাশ করা যেতে পারে , যেখানে সিং-মাদদলা বিতরণপি(এক্স,Y)পি(Y|এক্স)পি(এক্স)p(x)

পি(এক্স)=একটিকুইএক্সএকটি-1একটি(1+ +(এক্স)একটি)1+ +কুই

পরামিতি সঙ্গে , , এবং লগ-স্বাভাবিক লগ-গড় একটি ভগ্নাংশ হিসাবে সাথে আছেন , এবং লগ ইন করুন-SD একটি ধ্রুবক। আমার নমুনাটি আমি চাই কিনা এটি পরীক্ষা করতে আমি এর প্রান্তিক ঘনত্বের দিকে চেয়েছিলাম , যা হওয়া উচিত । আমি আর প্যাকেজ এমসিএমসিপ্যাক, এমসিএমসি এবং স্বপ্নের থেকে আলাদা মেট্রোপলিস অ্যালগরিদম চেষ্টা করেছি। আমি বার্ন-ইন ফেলে দিয়েছি, পাতলা ব্যবহার করেছি, মিলিয়ন পর্যন্ত আকারের ব্যবহৃত নমুনা ব্যবহার করেছি, তবে ফলস্বরূপ প্রান্তিক ঘনত্ব আমি সরবরাহ করি নি।একটিকুইপি(Y|এক্স)এক্সএক্সপি(এক্স)

আমার কোডটি আমি ব্যবহার করেছি এর চূড়ান্ত সংস্করণ এখানে:

logvrls <- function(x,el,sdlog,a,scl,q.arg) {
    if(x[2]>0) {
         dlnorm(x[1],meanlog=el*log(x[2]),sdlog=sdlog,log=TRUE)+
         dsinmad(x[2],a=a,scale=scl,q.arg=q.arg,log=TRUE)
    }
    else -Inf    
}

a <- 1.35
q <- 3.3
scale <- 10/gamma(1 + 1/a)/gamma(q - 1/a)*  gamma(q) 

Initvrls <- function(pars,nseq,meanlog,sdlog,a,scale,q) {
    cbind(rlnorm(nseq,meanlog,sdlog),rsinmad(nseq,a,scale,q))
}

library(dream)
aa <- dream(logvrls,
        func.type="logposterior.density",
        pars=list(c(0,Inf),c(0,Inf)),
        FUN.pars=list(el=0.2,sdlog=0.2,a=a,scl=scale,q.arg=q),
        INIT=Initvrls,
        INIT.pars=list(meanlog=1,sdlog=0.1,a=a,scale=scale,q=q),
        control=list(nseq=3,thin.t=10)
        )

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

ks.test(as.numeric(aa$Seq[[2]][,2]),psinmad,a=a,scale=scale,q.arg=q)

lsinmad <- function(x,sample)
    sum(dsinmad(sample,a=x[1],scale=x[2],q.arg=x[3],log=TRUE))
 optim(c(2,20,2),lsinmad,method="BFGS",sample=aa$Seq[[1]][,2])

 qq <- eq(0.025,.975,by=0.025)   
 tst <- cbind(qq,
              sapply(aa$Seq,function(l)round(quantile(l[,2],qq),3)),
              round(qsinmad(qq,a,scale,q),3))
 colnames(tst) <- c("Quantile","S1","S2","S3","True")

 library(ggplot2)
 qplot(x=Quantile,y=value,
       data=melt(data.frame(tst),id=1), 
       colour=variable,group=variable,geom="line")

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

আমার প্রশ্ন হচ্ছে আমি কী ভুল করছি? আমার নিজস্ব অনুমান:

  1. এমসিএমসি এই ধরণের নমুনার জন্য উপযুক্ত নয়
  2. তাত্ত্বিক কারণে এমসিসিএম রূপান্তর করতে পারে না (বিতরণ ফাংশন প্রয়োজনীয় বৈশিষ্ট্যগুলি যেমন তারা যাই হোক না কেন পূরণ করে না)
  3. আমি মেট্রোপলিস অ্যালগরিদম সঠিকভাবে ব্যবহার করি না
  4. আমার বিতরণ পরীক্ষা সঠিক নয়, যেহেতু আমার কাছে স্বতন্ত্র নমুনা নেই।

ইন সিং-Maddala বন্টন লিংক, পিডিএফ দুটি প্যারামিটার রয়েছে - {C, ট}, এখনো আর ফাংশন dsinmadতিন প্যারামিটার নেয় অথবা আমি কিছু অনুপস্থিত করছি।
csgillespie

দুঃখিত, উইকিপিডিয়া লিঙ্কটি ভুল সূত্রটি উদ্ধৃত করে, প্রথম নজরে এটি ঠিক দেখাচ্ছিল, যখন আমি প্রশ্নটি রচনা করছিলাম। আমি একটি প্রস্তুত লিঙ্কটি পাইনি, সুতরাং আমি কেবল সূত্রটি প্রশ্নের মধ্যে রেখেছি।
এমপিটকাস

উত্তর:


3

আমি মনে করি অর্ডারটি সঠিক, তবে p (x) এবং p (y | x) এর জন্য নির্ধারিত লেবেলগুলি ভুল ছিল। মূল সমস্যাটি জানিয়েছে পি (y | এক্স) লগ-নরমাল এবং পি (এক্স) হ'ল সিং-মাদদালা। তাই এটা

  1. একটি সিং-মাদডালার কাছ থেকে এক্স তৈরি করুন এবং

  2. লগ-নরমাল থেকে একটি ওয়াই জেনারেট করুন যা উত্পন্ন এক্স এর একটি ভগ্নাংশ having


3

আসলে, আপনার MCMC করা উচিত নয়, যেহেতু আপনার সমস্যাটি এত সহজ। এই অ্যালগরিদম ব্যবহার করে দেখুন:

পদক্ষেপ 1: লগ নরমাল থেকে একটি এক্স উত্পন্ন করুন

পদক্ষেপ 2: এই এক্সটিকে স্থির করে রাখুন, সিংহ মাদডালা থেকে একটি ওয়াই তৈরি করুন।

ভাল খবর! নমুনা প্রস্তুত !!!


আমি ধরে নিয়েছি যে আপনি পদক্ষেপগুলি বিপরীত বলেছিলেন। তবে এটি যদি এত সহজ হয় তবে আমাদের গীবসের নমুনা কেন দরকার?
এমপিটিকাস

1
না, আমি আমার ক্রম 1 এবং 2 পদক্ষেপটি লিখেছিলাম। সর্বোপরি, এক্স এর উপর y এর বিতরণ শর্তসাপেক্ষে নির্দিষ্ট করা হয়েছে, সুতরাং আপনাকে অবশ্যই ওয়াইয়ের আগে একটি এক্স উত্পন্ন করতে হবে G গিবস নমুনা হিসাবে, এটি আরও জটিল সমস্যার জন্য বোঝানো আরও জটিল সমাধান। ইতিমধ্যে, আপনি যেমন বর্ণনা করেছেন, ততই সোজা, আইএমএইচও।
মোহিত

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