15
NU Science Journal 2012; 9(1): 30- 44 การวิเคราะห์เบส์จากโปรแกรมวินบัËกสู ่โปรแกรมอาร์ อัชฌา อระวีพร Bayesian Analysis from WinBUGS Program to R Program Autcha Araveeporn สาขาวิชาสถิติ คณะวิทยาศาสตร์ สถาบันเทคโนโลยีพระจอมเกล้าเจ้าคุณทหารลาดกระบัง กรุงเทพมหานคร *Corresponding author. E-mail: [email protected] บทคัดย่อ โปรแกรมวินบัËกเป็นโปรแกรมทางสถิติสําหรับการประมาณค่าประมาณเบส์โดยใช้วิธีของ มาร์คอฟ เชน มอนติคาร์โล (MCMC) ซึ ÉงชุดคําสัÉง R2WinBUGS สร้างขึ ÊนเพืÉออํานวยความสะดวกให้ ผู้ใช้สามารถเรียกโปรแกรมวินบัËกได้จากโปรแกรมอาร์ซึ ÉงสามารถเขียนคําสัÉง ข้อมูล และประมวลผล โดยใช้โปรแกรมวินบั Ëกพร้อมๆกับโปรแกรมอาร์ โดยผลลัพธ์ทีÉได้สามารถเรียกดูได้จากโปรแกรมอาร์ ซึ Éงบทความนี Êนําเสนอตัวอย่างจากตัวแบบเบส์เพืÉอวิเคราะห์ด้วยโปรแกรมวินบัËก และเขียนคําสัÉง จากโปรแกรมอาร์เพืÉอเรียกโปรแกรมวินบัËกมาประมวลผล ซึ Éงผลลัพธ์จากตัวประมาณทีÉได้ให้ค่าทีÉ ใกล้เคียงกัน คําสําคัญ: โปรแกรมวินบัËก โปรแกรมอาร์ มาร์คอฟ เชน มอนติคาร์โล Abstract WinBUGS is statistical software to estimate Bayes estimator using Markov Chain Monte Carlo (MCMC) method. The R2WinBUGS package provides convenient functions to call WinBUGS from R program. It automatically writes the scripts and data by WinBUGS processing with R program. After the WinBUGS process has finished, the results can seen from R program. This article shows the example from Bayesian analysis with WinBUGS program and the code from R program that linked to Win BUGS for processing. However, the output from 2 program is similar for parameter estimation. Keywords: WinBUGS program, R program, Markov Chain Monte Carlo

Bayesian Analysis from WinBUGS Program to R Program

  • Upload
    others

  • View
    10

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Bayesian Analysis from WinBUGS Program to R Program

NU Science Journal 2012; 9(1): 30- 44  

การวเคราะหเบสจากโปรแกรมวนบกสโปรแกรมอาร อชฌา อระวพร

Bayesian Analysis from WinBUGS Program to R Program

Autcha Araveeporn

สาขาวชาสถต คณะวทยาศาสตร สถาบนเทคโนโลยพระจอมเกลาเจาคณทหารลาดกระบง

กรงเทพมหานคร *Corresponding author. E-mail: [email protected]

บทคดยอ

โปรแกรมวนบกเปนโปรแกรมทางสถตสาหรบการประมาณคาประมาณเบสโดยใชวธของมารคอฟ เชน มอนตคารโล (MCMC) ซงชดคาสง R2WinBUGS สรางขนเพออานวยความสะดวกใหผใชสามารถเรยกโปรแกรมวนบกไดจากโปรแกรมอารซงสามารถเขยนคาสง ขอมล และประมวลผลโดยใชโปรแกรมวนบกพรอมๆกบโปรแกรมอาร โดยผลลพธทไดสามารถเรยกดไดจากโปรแกรมอาร ซงบทความนนาเสนอตวอยางจากตวแบบเบสเพอวเคราะหดวยโปรแกรมวนบก และเขยนคาสง จากโปรแกรมอารเพอเรยกโปรแกรมวนบกมาประมวลผล ซงผลลพธจากตวประมาณทไดใหคาทใกลเคยงกน

คาสาคญ: โปรแกรมวนบก โปรแกรมอาร มารคอฟ เชน มอนตคารโล

Abstract

WinBUGS is statistical software to estimate Bayes estimator using Markov Chain Monte Carlo (MCMC) method. The R2WinBUGS package provides convenient functions to call WinBUGS from R program. It automatically writes the scripts and data by WinBUGS processing with R program. After the WinBUGS process has finished, the results can seen from R program. This article shows the example from Bayesian analysis with WinBUGS program and the code from R program that linked to Win BUGS for processing. However, the output from 2 program is similar for parameter estimation. Keywords: WinBUGS program, R program, Markov Chain Monte Carlo

Page 2: Bayesian Analysis from WinBUGS Program to R Program

NU Science Journal 2012; 9(1) 31  

บทนา

กฎของเบสเปนสวนหนงของวชาความนาจะเปนโดยเปนการประมาณคาความนาจะเปนจากเหตการณหรอคาสงเกตของตวแปรสมโดยใชทฤษฎของเบส (Carlin and Louis, 2009) ซงเรมตนจากความนาจะเปนแบบมเงอนไข กฎการคณ และกฎความนาจะเปนรวม นอกจากนในวชาการอนมานเชงสถตกยงสามารถนาการวเคราะหตวแบบเบสมาใชในการประมาณคาแบบจด โดยพจาณาจากฟงกชนการแจกแจงของคาสงเกตของตวแปรสมเมอกาหนดคาพารามเตอรโดยเรยกวา ฟงกชนภาวะความนาจะเปน (Likelihood Function) ซงทราบลกษณะการแจกแจงของคาพารามเตอรซงเรยกวา ฟงกชนการแจกแจงโดยหลกเกณฑ (Prior Density Function) เพอใชประมาณคาพารามเตอรเมอกาหนดคาสงเกตจากฟงกชนการแจกแจงโดยประสบการณ (Posterior Density Function) วธการวเคราะหดวยตวแบบเบสคอนขางยงยากสาหรบผทไมถนดเนอหาวชาทางสถต จงไดมนกสถตพฒนาวธของ มารคอฟ เชน มอนตคารโล (Markov Chain Monte Carlo) หรอเรยกวาวธ MCMC โดยวธนเปนทนยมใชในการหาตวประมาณจากฟงกชนการแจกแจงโดยประสบการณจงมการพฒนาเปนโปรแกรมสาเรจรปเรยกวา โปรแกรมวนบก (WinBUGS) ซงยอมาจากคา Bayesian Inference Using Gibbs Sampling โดย Spiegelhalter และคณะ (2003) โปรแกรมวนบกเปนโปรแกรมทใชวธของ MCMC (Gilks et al., 1996)ในการวเคราะหตวแบบเบสทซบซอน ซงเปนการสมตวอยางดวยวธกบส (Gibbs Sampling) (Geman and Geman, 1984; Gelfand and Smith, 1990; Casella and George, 1992) เพอสรางคาจากวธ มารคอฟ เชน (Markov Chain) โดยการสมตวอยางจากการแจกแจง แลวจงใชวธการประมาณคาของมารคอฟ (Markov) ในการประมาณคาพารามเตอร ซงโปรแกรมวนบกเปนโปรแกรมทสามารถดาวนโหลดมาใชไดโดยไมเสยคาใชจายทเวบไซต http://www.mrc-bsu.cam.ac.uk/bugs/ ในการใชโปรแกรมวนบกผใชตองสรางตวแบบทใชในการประมวลผล เรยกขอมล และกาหนดคาเรมตนสาหรบจานวนรอบของมารคอฟ เชน ซงปญหาทเกดสาหรบผทใชโปรแกรมวนบกคอผลลพธทไดจากการประมวลผลแตละครงเกบอยในโปรแกรมวนบกเทานน แตกระนนในบางครงผใชตองการจาลองขอมลหลายๆ รอบเพอหาผลลพธจากการวเคราะหเบสและตองการเกบผลลพธในลกษณะของโปรแกรมอาร (R Program) (R Development Core Team, 2004) จงไดมการสรางชดคาสง R2WinBUGS เพอใชในการเรยกโปรแกรม WinBUGS เพอประมวลผลและกลบมาเกบผลลพธในโปรแกรมอาร

Page 3: Bayesian Analysis from WinBUGS Program to R Program

32 NU Science Journal 2012; 9(1)  

โปรแกรมอาร เปนโปรแกรมทเขยนเปนภาษาเพอใชในการวเคราะหขอมลทางสถต ผทตองการใชสามารถดาวนโหลดโดยไมเสยคาใชจายทเวบไซต http://www.R-project.org ซงโปรแกรมนไดพฒนามาจากภาษาเอส (S Language) โดย Becker และ Chambers (1984) Becker และคณะ, (1988) Chambers และ Hastie, (1992) Chambers, (1998) ในโปรแกรมอารมชดคาสงสาหรบวเคราะหขอมลในแตละประเภทอยมากมายแลวแตผใชตองการใชเรองใดกสามารถดาวนโหลดไดโดยไมเสยคาใชจาย สวนชดคาสง R2WinBUGS เปนชดคาสงหนงสาหรบผสนใจการวเคราะหขอมลในรปของการแจกแจงทเกยวของกนหลายๆขนหรอการวเคราะหเบส ซงสามารถดาวนโหลดเพอมาตดตงไดทางอนเตอรเนตขณะทเรยกใชอยในโปรแกรมอารและผใชควรจะดาวนโหลดชดคาสง coda (Plunmer et al., 2004) ซงใชสาหรบการวเคราะหผลลพธจากวนบก เพอใหการทางานสมบรณ ในบทความนไดนาเสนอวธการของมารคอฟ เชน มอนตคารโล (MCMC) ดวยวธการสมตวอยางจากวธคารคอฟ เชน วธการสมตวอยางแบบกบส และนาเสนอตวอยางเพอเปรยบเทยบการทางานของโปรแกรมวนบกและการเขยนชดคาสง R2WinBUGS ในโปรแกรมอาร

วธ มารคอฟ เชน มอนตคารโล (MCMC)

วธ MCMC เปนวธทนยมใชเมอไมทราบฟงกชนการแจกแจงบางสวน (Marginal Distribution) ของตวแปรสม โดยประกอบดวยการสมตวอยางตวแปรจากวธ มารคอฟ เชน (Markov Chain) จากการแจกแจงโดยหลกเกณฑของคาพารามเตอรทสนใน และวธการสมตวอยางแบบกบส (Gibbs sampling) ไดถกนามาใชในวธของ MCMC สาหรบประมาณคาพารามเตอรจากฟงกชนการแจกแจงโดยประสบการณ ขนตอนการสรางสมตวอยางจากจากวธ มารคอฟ เชน ประกอบดวย 1. กาหนดคาเรมตน (0)θ จากฟงกชนการแจกแจงโดยหลกเกณฑ 2. สรางคาจากขอ 1. มา T คาจนกระทงไดลกษณะการแจกแจงทตองการ 3. ตรวจสอบการแจกแจงในขอ 2. ถาไมเปนไปตามลกษณะทตองการใหสรางคามากขน 4. เมอคาทไดเปนไปตามทตองการเลอกคาทสงเกตทคา B เปนตนไป 5. พจารณาคา ( 1) ( 2) ( ){ , ,..., }B B Tθ θ θ+ + ในรปของตวอยางสาหรบวเคราะหฟงกชนจากการแจง

โดยประสบการณ 6. สรางกราฟเพอดลกษณะการแจกแจงของฟงกชนการแจกแจงโดยประสบการณ 7. คานวณคาเฉลย คากลาง คาสวนเบยงเบนมาตรฐาน จากฟงกชนการแจกแจงโดยประสบการณ

Page 4: Bayesian Analysis from WinBUGS Program to R Program

NU Science Journal 2012; 9(1) 33  

วธการสมตวอยางอกวธหนงทนยมใชกรณททราบการแจกแจงโดยประสบการณเมอกาหนดคาของตวแปรสม คอวธกบส ศกษาโดย (Geman and Geman, 1984) มขนตอนดงนคอ

1. กาหนดคาเรมตน (0)θ จากฟงกชนการแจกแจงโดยหลกเกณฑ 2. เมอ t = 1,2,…,T ทาซาตามขนตอน 2.1 กาหนด ( 1)tθ θ −= 2.2 สรางคา jθ จาก 1 1 1~ ( | ,..., , ,... , )j j j j df xθ θ θ θ θ θ− +

% เมอ j=1,…,d

2.3 กาหนดใหคา ( )tθ θ= โดยเกบคานไวสรางพารามเตอรใหมทรอบ t+1 ตามกระบวนการน

( )1

tθ จาก ( 1) ( 1) ( 1)1 2 3( | , ,..., , )t t t

pf xθ θ θ θ− − −

%

( )2

tθ จาก ( ) ( 1) ( 1)2 1 3( | , ,..., , )t t t

pf xθ θ θ θ− −

%

( )3

tθ จาก ( ) ( ) ( 1) ( 1)3 1 2 4( | , , ,..., , )t t t t

pf xθ θ θ θ θ− −

%

( )tjθ จาก ( ) ( ) ( 1) ( 1) ( 1)

1 2 1 1( | , ,..., , ,..., , )t t t t tj j j pf xθ θ θ θ θ θ− − −

− +%

( )tpθ จาก ( ) ( ) ( )

1 2 1( | , ,..., , )t t tp pf xθ θ θ θ −

%

คาพารามเตอรทไดจากการสมตวอยางแบบกบสสามารถสรปไดวา ( ) ( ) ( 1) ( 1) ( 1)

1 2 1 1( | , ,..., , ,..., , ) ( | )t t t t tj j j pf x f xθ θ θ θ θ θ θ− − −

− + ∝% %

เมอไดคาพารามเตอรทสรางจากวธของ มารคอฟ เชน และ การสมตวอยางแบบกบส เพอประมาณคาพารามเตอรในสถตแบบเบสโดยใชวธการประมาณคาดวยมอนตคารโล (Monte Carlo) เพอประมาณคาจากฟงกชนการแจกแจงภายหลง จาก

1 1( ( ) | ,..., ) ( | ,..., ) ( )n nE g x x f x x g dθ θ θ θ= ∫

ซงสามารถประมาณคา θ ไดโดย

( )

1

1 Tt

tTθ θ

=

= ∑

ตวอยางกรณตวแปรสมแบบตอเนอง (Ntzoufras, 2009) สมมตตวแปร X มการแจกแจงแบบปกตดวยคาเฉลย μ และคาความแปรปรวน 2σ ซงเปนคาพารามเตอร θ ทตองการประมาณสามารถเขยนไดในรปแบบ 2~ ( , ) , 1,...,ix Normal i nμ σ =

Page 5: Bayesian Analysis from WinBUGS Program to R Program

34 NU Science Journal 2012; 9(1)  

โดยฟงกชนภาวะความนาจะเปน (Likelihood Function) สามารถเขยนไดเปน

2

222

1

( )1( | , ) exp22

ni

i

xf x μμ σσπσ=

⎧ ⎫⎛ ⎞−⎪ ⎪= −⎨ ⎬⎜ ⎟⎪ ⎪⎝ ⎠⎩ ⎭

∏%

2 /2 22

1

1( 2 ) exp ( )2

nn

ii

xπσ μσ

=

⎛ ⎞= − −⎜ ⎟⎝ ⎠

2 /2 2 22

1

1( 2 ) exp ( 2 )2

nn

ii

x n n xπσ μ μσ

=

⎛ ⎞= − + −⎜ ⎟⎝ ⎠

เมอพจารณาฟงกชนการแจกแจงโดยหลกเกณฑเปนการแจกแจงแบบปกตทคาเฉลย 0μ และคาความแปรปรวน 2

0σ 20 0( ~ ( , ))Normalμ μ σ ซงเรยกวารปแบบการแจกแจงกอนแบบคสงยค

(Conjugate prior distribution) เมอฟงกชนภาวะความนาจะเปนเปนการแจกแจงปกต และฟงกชนการแจกแจงโดยหลกเกณฑเปนการแจกแจงแบบปกต ซงจะสามารถเขยนฟงกชนการแจกแจงโดยประสบการณคอ

2 2 2( | , ) ( | , ) ( | )f x f x gμ σ μ σ μ σ=% %

2 /2 2 22

1

2 1/2 20 02

0

1( 2 ) exp ( 2 )2

1( 2 ) exp ( )2

nn

ii

x n n xπσ μ μσ

πσ μ μσ

=

⎛ ⎞∝ − + −⎜ ⎟⎝ ⎠⎛ ⎞

× − −⎜ ⎟⎝ ⎠

2 202 2

0

1 1exp ( 2 ) ( 2 )2 2

n n xμ μ μ μμσ σ

⎛ ⎞∝ − − − −⎜ ⎟

⎝ ⎠

2 02 2 2 2

0 0

1 1exp 22

n n x μμ μσ σ σ σ

⎛ ⎞⎧ ⎫⎡ ⎤ ⎡ ⎤⎪ ⎪∝ − + − +⎜ ⎟⎨ ⎬⎢ ⎥ ⎢ ⎥⎜ ⎟⎪ ⎪⎣ ⎦ ⎣ ⎦⎩ ⎭⎝ ⎠

2 2 2 2

20 0 02 2 2 2

0 0

1exp 22

n n xn

σ σ σ μ σμ μσ σ σ σ

⎛ ⎞⎧ ⎫⎡ ⎤ ⎡ ⎤+ +⎪ ⎪∝ − −⎜ ⎟⎨ ⎬⎢ ⎥ ⎢ ⎥⎜ ⎟+⎪ ⎪⎣ ⎦ ⎣ ⎦⎩ ⎭⎝ ⎠

Page 6: Bayesian Analysis from WinBUGS Program to R Program

NU Science Journal 2012; 9(1) 35  

หรอคาพารามเตอร μ สามารถเขยนในรปการแจกแจงแบบปกตได

2 2 2 2

2 0 0 02 2 2 20 0

| , ~ ,n xx Normaln nσ μ σ σ σμ σσ σ σ σ

⎛ ⎞+⎜ ⎟+ +⎝ ⎠%

คาเฉลยของ μ จากการแจกแจงโดยประสบการณคอ

2 20 02 20

( | ) n xE xnσ μ σμσ σ

+=

+%

ตวอยางจากการจาลองขอมลเพอทดสอบโปรแกรมวนบกและชดคาสง R2WinBUGS

จาลองตวแปร X จากการแจงแจงแบบปกตงทคาเฉลย (μ ) เทากบ 1 ความแปรปรวน ( 2σ ) เทากบ 0.5 มา 50 คาสงเกตดงน

พบวาเมอนาคาสงเกตทง 50 คามาหาคาเฉลย ( x )ไดเทากบ 0.985 และกาหนดรปแบบการแจกแจงของคาสงเกตดงน

2~ ( , ) , 1,...,ix Normal i nμ σ = 2 2

0 0 0 0~ ( , ), 0, 100Normalμ μ σ μ σ= = แตในโปรแกรมวนบกกาหนดวา ~ (0,0.01) ~ ( , )Normal Normal mu tauμ โดยทคา

2

1 1 0.01100

tauσ

= = =

1.567 1.470 0.709 -0.253 1.372 2.143 0.747 1.073 0.840 0.434 1.659 1.027 0.744 0.634 1.598 1.266 1.548 0.596 1.263 2.087 0.178 1.114 2.138 0.105 0.531 1.927 0.156 0.303 0.928 0.411 1.588 0.862 1.415 0.867 -0.066 1.577 0.002 0.851 0.812 1.667 -0.107 0.418 0.705 1.412 0.166 1.018 1.012 1.779 1.183 1.814

Page 7: Bayesian Analysis from WinBUGS Program to R Program

36 NU Science Journal 2012; 9(1)  

เมอเลอกไอคอนทดาวนโหลดจากโปรแกรมวนบกจะปรากฏหนาแรกของโปรแกรมดงรป 1

รป 1 หนาแรกในการแสดงโปรแกรมวนบก

ผใชสามารถเขยนในโปรแกรมวนบกโดยตวแบบจะอยในเครองหมาย { } ไดดงรป 2

รป 2 หนาตางสาหรบประมวลผลการวเคราะหเบสจากโปรแกรมวนบก

วธการประมวลผลสามารถอานไดจากหนงสอ Bayesian Modeling Using WinBUGS หรอทเวบไซตทดาวนโหลดโปรแกรมวนบก นอกจากนทมรายละเอยดและขนตอนทเปนภาษาไทยสามารถศกษาไดจากบทความเรอง การหาตวประมาณเบสดวยโปรแกรมวนบก (อชฌา อระวพร, 2554)

Page 8: Bayesian Analysis from WinBUGS Program to R Program

NU Science Journal 2012; 9(1) 37  

นาตวแบบทสรางมาจากฟงกชนภาวะความนาจะเปนและฟงกชนการแจกแจงโดยหลกเกณฑ เมอตวแบบถกตอง ทาการเรยกขอมลมาประมวลผลท 10000 รอบจะไดผลลพธดงรป 3

รป 3 หนาตางแสดงผลลพธทไดจากประมวลผลการวเคราะหเบสดวยโปรแกรมวนบก

บางครงในการทางานทตองจาลองขอมลหลายๆรอบและประมวลผลจากโปรแกรมอารแตมความจาเปนตองวเคราะหดวยโปรแกรมวนบก ซงสามารถเชอมระหวางสองโปรแกรมดวยชดคาสง R2WinBUGS ในโปรแกรมอาร จะเรมตนการทางานดวยเครองหมาย > เสมอกอนทจะเขยนคาสงลงไป ตามขนตอนดงน

1. เรยกขอมลจากไฟลหรอสรางขอมลจากการแจกแจงทตองการและชดคาสง R2WinBUGS ดวย library(R2WinBUGS) ดงรป 4

รป 4 หนาจอของโปรแกรมอารและการเรยกชดคาสง R2WinBUGS

Page 9: Bayesian Analysis from WinBUGS Program to R Program

38 NU Science Journal 2012; 9(1)  

2. สรางฟงกชนสาหรบสรางตวแบบเพอวเคราะหตวแบบเบสซงสามารถนาคาสงมาจากโปรแกรมวนบกโดยตงชอไดตามทตองการ > bayesian <- function(){ + for (i in 1 : N) { + x[i] ~ dnorm(mu,tau)} + mu ~ dnorm(0, 0.01) + tau ~ dgamma(0.01, 0.01) + sigma.squared <- 1/tau + sigma <- sqrt(sigma.squared) + }

3. กาหนดชอของฟงกชนในขอ 2 โดยการสรางทสาหรบจดเกบไวจากคาสง > filename <- file.path(tempdir(), "bayesian.bug") > write.model(bayesian, filename)

4. กาหนดตวแปรทจะนาเขามาประมวลผลในโปรแกรมวนบกจากคาสง จากตวอยางนาตวแปร x และ คา N ดวยคาสง > data <- list("x", "N")

5. สรางคาเรมตนในรปของฟงกชนดวยคาสง > inits <- function(){list(mu = 1, tau = 2)} 6. กาหนดคาพารามเตอรทตองการใหประมวลผล ซงจากตวอยางตองการคา ,μ σ และ 2σจากคาสง > parameters <- list("mu", "sigma", "sigma.squared") 7. ใหโปรแกรมอารเรมการประมวลผลจากโปรแกรมวนบกโดยใสคาทกาหนดไวในขอ 4 5 และ 6 โดยใชคาสง > normal.sim <- bugs(data, inits,parameters, model.file = "bayesian.bug", + n.chain = 1, n.iter = 11000,n.burnin = 1000, n.thin = 1, + debug = TRUE, bugs.directory = "c:/Program Files/WinBUGS14/", + codaPkg = FALSE)

Page 10: Bayesian Analysis from WinBUGS Program to R Program

NU Science Journal 2012; 9(1) 39  

8. หลงจากโปรแกรมอารเรยกโปรแกรมวนบกเพอประมวลผลถาไมมขอผดพลาดใดๆหนาจอจะแสดงกลบทโปรแกรมอาร ใหใชคาสง > normal.sim$summary เพอแสดงคาประมาณพารามเตอรทไดจากโปรแกรมวนบกดงรป 5

รป 5 ผลลพธทไดจากโปรแกรมอารโดยชดคาสง R2WinBUGS

จากรป 5 พบวาตวประมาณทไดมคาเทากบคาทไดจากโปรแกรมวนบก และโปรแกรมอารโดยใชชดคาสงR2WinBUGS ไดคาเทากน โดยตวประมาณการแจกแจงโดยหลกเกณฑ μ มคาเทากบ 0.984 สวนคา σ มคาเทากบ 0.641 และ คา 2σ ทคาเทากบ 0.416

จากตวอยางขางบนตวประมาณทไดจากการแจกแจงโดยหลกเกณฑ μ มรปแบบเปนการแจกแจงแบบปกตท

2 2 2 22 0 0 0

2 2 2 20 0

| , ~ ,n xx Normaln nσ μ σ σ σμ σσ σ σ σ

⎛ ⎞+⎜ ⎟+ +⎝ ⎠%

คาเฉลยของ μ จากการแจกแจงโดยประสบการณคอ

2 20 02 20

( | ) n xE xnσ μ σμσ σ

+=

+%

(50 0.985 100) (0 0.416)(50 100) 0.416

× × + ×=

× +

= 0.984 คาทไดจากตวประมาณเบสจากฟงกชนการแจกแจงโดยหลกเกณฑใหคาใกลเคยงกบ

คาพารามเตอรทประมาณไดจากโปรแกรมวนบกและโปรแกรมอารโดยใชชดคาสง R2WinBUGS

Page 11: Bayesian Analysis from WinBUGS Program to R Program

40 NU Science Journal 2012; 9(1)  

ตวอยางกรณตวแปรสมแบบไมตอเนอง (Ntzoufras, 2009)

สมมตตวแปร X มการแจกแจงแบบทวนาม เปนจานวนความสาเรจทเกดขนจากการกระทา

iN ครง ดวยคาความนาจะเปนทจะเกดความสาเรจ p เปนคาพารามเตอร θ ทตองการประมาณสามารถเขยนไดในรปแบบ

~ ( ) , 1,...,ix Binomial p i n=

โดยฟงกชนภาวะความนาจะเปน (Likelihood Function) สามารถเขยนไดเปน

1

( | ) (1 )i i i

ni x N x

i i

Nf x p p p

x−

=

⎧ ⎫⎛ ⎞⎪ ⎪= −⎨ ⎬⎜ ⎟⎪ ⎪⎝ ⎠⎩ ⎭

∏%

1 1 1

1

(1 )

n n n

i i ii i i

n x N xi

i i

Np p

x= = =

=

∑ ∑ ∑⎛ ⎞= −⎜ ⎟

⎝ ⎠∏

1

(1 )n

i nx N nx

i i

Np p

x−

=

⎛ ⎞= −⎜ ⎟

⎝ ⎠∏

เมอ 1

n

ii

N N=

= ∑ คอจานวนของการทดลองเบอรนลลในแตละครง พจารณาฟงกชนการแจกแจงโดย

หลกเกณฑเปนการแจกแจงแบบเบตามคาพารามเตอรคอ a และ b ( ~ ( , ))p Beta a b มฟงกชนการแจกแจงความนาจะเปนดงน

1 1( ) ( )( ) (1 ) , 0 1( )

a ba bg p p p pa b

− −Γ Γ= − < <

Γ +

ซงเรยกวารปแบบการแจกแจงกอนแบบคสงยค (Conjugate prior distribution) เมอฟงกชนภาวะความนาจะเปนเปนการแจกแจงทวนาม และฟงกชนการแจกแจงโดยหลกเกณฑเปนการแจกแจงแบบเบตา ซงจะสามารถเขยนฟงกชนการแจกแจงโดยประสบการณคอ

( | ) ( | ) ( )f p x f x p g p=% %

1 1

1

( ) ( )(1 ) (1 )( )

ni nx N nx a b

i i

N a bp p p px a b

− − −

=

⎛ ⎞ Γ Γ∝ − × −⎜ ⎟ Γ +⎝ ⎠∏

1 1(1 )nx a N nx bp p+ − − + −∝ − หรอคาพารามเตอร p สามารถเขยนในรปการแจกแจงเบตาได

| ~ ( , )p x Beta nx a N nx b+ − +%

Page 12: Bayesian Analysis from WinBUGS Program to R Program

NU Science Journal 2012; 9(1) 41  

คาเฉลยของ p จากการแจกแจงโดยประสบการณคอ

( | ) nx aE p xN a b

+=

+ +%

ตวอยางจากการจาลองขอมลเพอทดสอบโปรแกรมวนบกและชดคาสง R2WinBUGS

จาลองตวแปร X จากการแจงแจงทวนามทคาความนาจะเปนทจะเกดความสาเรจ 0.2 มา 30 คาสงเกต โดยในแตละคาสงเกตเปนการทดลองแบบเบอรนลล 30 ครง ดงน

9 8 3 7 4 4 5 7 6 8 3 8 3 9 7 6 3 4 8 7 7 7 2 9 4 5 8 5 2 10

พบวาเมอนาคาสงเกตทง 30 คามาหาคาเฉลย ( x )ไดเทากบ 5.933 และกาหนดรปแบบการแจกแจงของคาสงเกตดงน ~ ( ) , 1,...,ix Binomial p i n=

~ ( , ), 1, 1p Beta a b a b= = นาขอมลทจาลองมาวเคราะหดวยโปรแกรมวนบกโดยดาวนโหลดจากเวบไซตทกลาวมาแลว และเขยนรปแบบฟงกชนพรอมประมวลผลไดผลลพธดงรป 6

รป 6 หนาตางแสดงผลลพธทไดจากประมวลผลการวเคราะหเบสดวยโปรแกรมวนบก

Page 13: Bayesian Analysis from WinBUGS Program to R Program

42 NU Science Journal 2012; 9(1)  

จากรป 6 พบวาตวประมาณทไดจากโปรแกรมวนบก ใหคา p เทากบ 0.1984 และเมอใชโปรแกรมอารโดยเรยกชดคาสง R2WinBUGS ความหมายไดกลาวมาแลวในหวขอ 3.2 จะไดผลลพธดงรป 7 ซงไดคา p เทากบ 0.2 ซงมคาใกลเคยงกนเนองจากอาจเกดจากการปดตาแหนงของทศนยม

จากตวอยางท 4 ตวประมาณทไดจากการแจกแจงโดยหลกเกณฑ p มรปแบบเปนการแจกแจงแบบเบตาท

| ~ ( , )p x Beta nx a N nx b+ − +%

คาเฉลยของ p จากการแจกแจงโดยประสบการณคอ

( | ) nx aE p xN a b

+=

+ +%

(30 5.933) 1(30 30) 1 1

× +=

× + +

= 0.1984 คาทไดจากตวประมาณเบสจากฟงกชนการแจกแจงโดยหลกเกณฑใหคาใกลเคยงกบ

คาพารามเตอรทประมาณ ไดจากโปรแกรมวนบกและโปรแกรมอารโดยใชชดคาสง R2WinBUGS

รป 7 ผลลพธทไดจากโปรแกรมอารโดยชดคาสง R2WinBUGS

Page 14: Bayesian Analysis from WinBUGS Program to R Program

NU Science Journal 2012; 9(1) 43  

สรป

การประมาณคาเบสดวยวธการทางสถตมความยงยากในการคานวณและการพสจน เนองจากแตละตวแปรอาจมมความเกยวของกบรปแบบการแจกแจงหลายรปแบบ การใชโปรแกรมสาเรจรปมาชวยในการวเคราะหทาใหมความสะดวกมากยงขน โดยเฉพาะ โปรแกรมอารเปนโปรแกรมทนยมใชในตางประเทศเนองจากผใชสามารถดาวนโหลดโปรแกรมมาใชไดโดยไมเสยคาใชจายและไมมปญหาเรองลขสทธ ซงไดมการรวมมอจากองคกรตางๆทวโลกทสรางโปรแกรมวเคราะหขอมลทางสถต และแจกจายแกผสนใจฟร แตโปรแกรมนคอนขางใชยาก ผใชไมคนเคยจงไมไดรบความนยมในประเทศไทยเนองจากทกคาสงเปนภาษาองกฤษ แตโปรแกรมอารมประสทธภาพและมความหลากหลายในการใชงานทางสถตทตวแบบทยงยากซบซอน สวนโปรแกรมวนบกเปนแกปญหาการประมาณคาจากตวประมาณเบสเทานนแตโปรแกรมอารสามารถใชงานไดหลากหลายมากกวาดงนนการทสามารถเรยกโปรแกรมวนบกเพอมาประมวลผลในโปรแกรมอารชวยใหการทางานทตองมการจาลองปญหาซาหลายๆรอบเพอเกบขอมลในโปรแกรมอารสะดวกมากขนและไดผลลพธใกลเคยงกน การใชชดคาสง R2WinBUGS ในโปรแกรมอาร ผใชควรจะรความหมายในคาสงตางๆทเขยนขนในการเรยกโปรแกรมวนบกมาประมวลผล ซงจะประโยชนในการนาโปรแกรมทงสองไปใชประยกตตวสถตเบสกบงานดานอนๆไดมากยงขน

เอกสารอางอง

อชฌา อระวพร. (2554). การหาตวประมาณเบสดวยโปรแกรมวนบก. วารสารวทยาศาสตรลาดกระบง. 20(2), 45-60.

Becker, R.A. and Chambers, J.M. (1984). S. An Interactive Environment for Data Analysis and Graphics. Wadsworth and Brooks/Cole, Monterey.

Becker, R. A., Chambers, J. M., and Wilk, A. R. (1988). The NEW S Language-A Programming Environment for Data Analysis and Graphics. Chapman & Hall, New York.

Carlin, B. P. and Louis, T. A. (2009). Bayesian Methods for Data analysis. Chapman & Hall / CRC, Florida.

Casella, G. and George , E.I. (1992). Explaining the Gibbs Sampler. The American Statistician, 46, 167-174.

Chambers, J. M. (1998). Programming with Data. A Guide to the S Language. Springer-Verlag, New York.

Page 15: Bayesian Analysis from WinBUGS Program to R Program

44 NU Science Journal 2012; 9(1)  

Chambers, J. M. and Hastie, T. J. (1992). Statistical Models in S. Chapman & Hall, NewYork. Gelfand, A.E. and Smith, A.F.M. (1990). Sampling-based Approaches to Calculating Marginal

Densities. Journal of the American Statistical Association, 85, 398-409. Geman, S. and Geman, D. (1984). Stochastic Relaxation, Gibbs Distribution and the Bayesian

Restoration of Images. IEEE Transactions on Pattern analysis and Machine Intelligence, 6, 721-741.

Gilk, W., Richardson, S. and Spiegelhalter. D. (1996). Markov Chain Monte Carlo in Practice. Chapman & Hall, London.

Ntzoufras, I. (2009). Bayesian Modeling Using WinBUGS, John Wiley & Sons, Inc., Hoboken, New Jersey, 2009.

Plummer, M., Best, N.G., Cowles, K., and Vines, K. (2004). coda : Output Analysis and Diagnostics for MCMC. R package version 0.9-1, URL http://www-fis.iarc.fr/coda/.

R Development Core Team. (2004). R: A Language and Environment for Statistical Computing. R Foundation forStatistical Computing, Vienna, Austria.

Spiegelhalter, D., Thomas, A., Best, N. and Lunn, D. (2003). WinBUGS User Manual, Version 1.4 , MRC Biostatistics Unit, Institute of Public Health and Department of Epidemiology and Public Health, Imperial College School of Medicine, UK.