الگوریتم متروپلیس-هستینگ (MH)

امتیاز کاربران

ستاره فعالستاره فعالستاره فعالستاره فعالستاره فعال
 

همان طور  که می دانیم  الگوریتم متروپولیس-هستینگ (MH) شامل مراحل زیر می‌باشد:

  • \[Y_t \sim q(y|x^t)\]  را تولید کنید.
  • \[X^{t+1}=\begin{cases} Y^t, & \text{with probability} \quad \rho(x^t,Y_t), \\ x^t, & \text{with probability} \quad 1-\rho(x^t,Y_t), \end{cases}\]

که در آن \(\rho(x,y)=\min \left( \frac{f(y)}{f(x)}*\frac{q(x|y)}{q(y|x)},1 \right)\).

 حال چنانچه \(q\) دارای توزیع متقارن باشد؛ نسبت \(q(x|y)/q(y|x)\)  برابر مقدار یک خواهد شد؛ در این حالت مقدار احتمال برابر \(\rho(x,y)=\min( f(y)/f(x),1) \) خواهد بود . و   این حالت خاص، بنام الگوریتم متروپولیس  شناخته می شود.

 

به عنوان مثال زمانی که \(q\) دارای توزیع نرمال (گاوسی) است، به دلیل تقارن این توزیع، شاهد الگوریتم متروپلیس هستیم.

حال به معرفی الگوریتم MH قدم زدن تصادفی می پردازیم.

در یک قدم زدن تصادفی(Random Walk) توزیع پیشنهادی در هر مرحله تغییراتی دارد و مجدداً در آخرین مقدار تولیدی از زنجیر مرکزی می گردد. به طور کلی، در قدم زدن تصادفی توزیع پیشنهادی، گاوسی می باشد که در این حالت قدم زدن تصادفی قید تقارن را برآورده می نماد و بنابراین الگوریتم متروپلیس را شاهد هسنیم.  (قدم زدن تصادفی نما با یک توزیع متقارن تشریح گردد!!! )

در پایان به اینکه توجه شود که در الگوریتم های غیر قدم زدن تصادفی، همانند MH و متروپولیس، توزیع های پیشنهادی ثابت هستند. در حالی که در حالت قدم زدن تصادفی، مرکز توزیع پیشنهادی در هر تکرار تغییر می کند.

الگوریتم متروپلیس و قدم زدن تصادفی را در نرم R و به صورت زیر می توان پیاده سازی نمود:

قبل از ارائه کد توجه شما را به تعریف عناوینی  که برای متغیرها و توابع استفاده شده، جلب می نماییم تا یک فهم مشترک ایجاد گردد: 

ردیف

علامت

توضیحات

1

F_sample

توزیعی که از آن قصد داریم نمونه تولید کنیم

2

F_prop

توزیع پیشنهادی که معادل \(q\) در تعریف فوق می باشد.

3

I

 تعداد تکرار، که معادل تعداد نمونه می باشد

4

LogR

لگاریتم نسبت چگالی ها که در محاسبه \(\rho\) وجود دارد

 

تابع الگوریتم متروپلیس (و قدم زدن تصادفی) در نرم افزار R

Metropolis <- function(F_sample # distribution we want to sample

                      , F_prop  # proposal distribution 

                    , I=1e5   # iterations

               ){

  y = rep(NA,T)

  y[1] = 0    # starting location for random walk

  accepted = c(1)

  for(t in 2:I)    {

    #y.prop <- rnorm(1, y[t-1], sqrt(sigma2) ) # random walk proposal

  y.prop <- F_prop(y[t-1]) # implementation assumes a random walk. 

                             # discard this input for a fixed proposal distribution

    # We work with the log-likelihoods for numeric stability.

    logR = sum(log(F_sample(y.prop))) -

           sum(log(F_sample(y[t-1])))    

    R = exp(logR)

    u <- runif(1)        ## uniform variable to determine acceptance

  if(u < R){           ## accept the new value

      y[t] = y.prop

    accepted = c(accepted,1)

    }    

    else{

      y[t] = y[t-1]      ## reject the new value

      accepted = c(accepted,0)

    }    

  }

  return(list(y, accepted))

}

## Source of context "http://stats.stackexchange.com/questions/64293/understanding-metropolis-hastings-with-asymmetric-proposal-distribution"

 

برای اجرای شبیه سازی با الگوریتم متروپلیس کافیست که در تعریف  F_prop ، آن را ثابت نماییم، برای درک بهتر این موضوع دو تعریف زیر را مد نظر قرار دهید:

 

Ex 1:F_prop = function(x){rnorm(1, -5, sqrt(0.5) )}

Ex 2:F_prop = function(x){rnorm(1, x, sqrt(0.5) )} 

 

که به طور واضح Ex2 ، الگوریتم قدم زدن تصادفی را نشان می دهد.

 

 

 

شماره تماس:   09300023999

رایانامه:  این آدرس ایمیل توسط spambots حفاظت می شود. برای دیدن شما نیاز به جاوا اسکریپت دارید

 

Tags: پروژه های آماری مقالات رایگان

دیدگاه‌ها   

0 #1 تشکرreza 1395-01-11 12:43
از شما بابت گذاشتن این مطالب خیلی خیلی ممنونم
نقل قول کردن

نوشتن دیدگاه


تصویر امنیتی
تصویر امنیتی جدید

دفاتر ما

تماس با ما آمادگی داریم تا با شبکه ای از همکاران و مشاوران در هر یک از شهرهای بزرگ (تهران-اصفهان-مشهد-زنجان-... )در کنار شما باشیم 

 با ما در تماس باشید

نظر کاربران

  • مهدی یار

    با تشکر از تمامی زحمات دست اندرکارن و زحمت کشان، برای همگی آرزوی سلامتی و بهروزی دارم
  • پری کرمی

    به کارهای خوبتون ادامه بدید. لطفا برای ارسال مطالب و درج اون قسمتی را تعبیه کنید
  • فاطمه بهرامی

    آقای تازیکه امیدوارم در کار خود موفق و پیروز باشد.
  • 1
  • 2
  • 3

آخرین نظرات

  • سلام خسته نباشید من فیلم اموزشی نرمافزار ایزی فیت رو خیلی ...

    ادامه مطلب ..و

     
  • احسنت بر شما. آموزش بسیار خوبی بود. * نتیجه گیری: مطابق نتایج ...

    ادامه مطلب ..و

آمار سایت