คำถามติดแท็ก jags

"JAGS เป็นเพียงตัวอย่าง Gibbs อีกตัวหนึ่งเป็นโปรแกรมสำหรับการวิเคราะห์โมเดลลำดับชั้นแบบเบย์โดยใช้การจำลอง Markov Chain Monte Carlo (MCMC) ซึ่งไม่เหมือนกับ BUGS โดยสิ้นเชิง" (http://mcmc-jags.sourceforge.net/)

4
OpenBugs กับ JAGS
ฉันกำลังจะลองใช้สภาพแวดล้อมแบบ BUGS สำหรับการประเมินแบบจำลองของเบย์ มีข้อดีที่สำคัญที่ต้องพิจารณาในการเลือกระหว่าง OpenBugs หรือ JAGS หรือไม่? มีแนวโน้มว่าจะแทนที่คนอื่นในอนาคตอันใกล้? ฉันจะใช้ตัวอย่างกิ๊บส์ที่เลือกกับอาร์ฉันยังไม่มีแอปพลิเคชันเฉพาะ แต่ฉันกำลังตัดสินใจว่าจะเข้าร่วมและเรียนรู้ใด
41 r  software  bugs  jags  gibbs 

1
การกระจายของพารามิเตอร์ใน BUGS และ R แตกต่างกันอย่างไร?
ฉันได้พบการแจกแจงบางอย่างซึ่ง BUGS และ R มีพารามิเตอร์ต่างกัน: Normal, log-Normal และ Weibull สำหรับแต่ละสิ่งเหล่านี้ฉันรวบรวมว่าพารามิเตอร์ตัวที่สองที่ใช้โดย R จำเป็นต้องแปลงผกผัน (1 / พารามิเตอร์) ก่อนที่จะใช้ใน BUGS (หรือ JAGS ในกรณีของฉัน) ไม่มีใครทราบรายการที่ครอบคลุมของการเปลี่ยนแปลงเหล่านี้ที่มีอยู่ในปัจจุบัน? ที่ใกล้เคียงที่สุดที่ฉันสามารถหาได้คือการเปรียบเทียบการแจกแจงในตารางที่ 7 ของคู่มือผู้ใช้ JAGS 2.2.0กับผลลัพธ์?rnormอื่น ๆ และอาจเป็นข้อความความน่าจะเป็นบางอย่าง วิธีนี้ดูเหมือนจะต้องการการแปลงที่จะต้องมีการอนุมานจากไฟล์ PDF แยกต่างหาก ฉันต้องการหลีกเลี่ยงงานนี้ (และข้อผิดพลาดที่เป็นไปได้) หากทำไปแล้วหรือเริ่มรายการที่นี่ ปรับปรุง ตามคำแนะนำของเบ็นฉันได้เขียนฟังก์ชั่นต่อไปนี้เพื่อแปลงดาต้าเฟรมของพารามิเตอร์จาก R เป็น BUGS parameterization ##' convert R parameterizations to BUGS paramaterizations ##' ##' R …

2
การกระจายก่อนหน้านี้สามารถ / ควรใช้สำหรับความแปรปรวนในตัวแบบเบย์เอซันแบบลำดับชั้นเมื่อความแปรปรวนเฉลี่ยมีความน่าสนใจอย่างไร
ในกระดาษของเขาอ้างกันอย่างแพร่หลายกระจายก่อนหน้าสำหรับพารามิเตอร์ความแปรปรวนในรูปแบบลำดับชั้น (916 การอ้างอิงจนถึง Google Scholar) Gelman เสนอว่าการแจกแจงก่อนหน้าแบบไม่ให้ข้อมูลที่ดีสำหรับความแปรปรวนในแบบจำลอง Bayesian แบบลำดับชั้นคือการกระจายแบบสม่ำเสมอและการกระจายครึ่งหนึ่ง หากฉันเข้าใจสิ่งที่ถูกต้องสิ่งนี้จะทำงานได้ดีเมื่อเป็นพารามิเตอร์ตำแหน่ง (เช่นค่าเฉลี่ย) เป็นสิ่งที่น่าสนใจหลัก บางครั้งพารามิเตอร์ความแปรปรวนเป็นที่สนใจหลักอย่างไรก็ตามเช่นเมื่อวิเคราะห์ข้อมูลการตอบสนองของมนุษย์จากงานเวลาหมายถึงความแปรปรวนของเวลามักจะวัดที่น่าสนใจ ในกรณีเหล่านั้นมันไม่ชัดเจนสำหรับฉันว่าความสามารถแปรผันตามลำดับชั้นได้อย่างไรเช่นการแจกแจงแบบเดียวกันเนื่องจากฉันหลังจากการวิเคราะห์ต้องการได้รับความน่าเชื่อถือของความแปรปรวนเฉลี่ยทั้งในระดับผู้เข้าร่วมและในระดับกลุ่ม คำถามของฉันคือ: การกระจายแบบใดที่แนะนำเมื่อสร้างแบบจำลองแบบเบย์แบบลำดับชั้นเมื่อความแปรปรวนของข้อมูลเป็นความสนใจหลัก ฉันรู้ว่าการแจกแจงแกมมาสามารถแก้ไขได้โดยระบุค่าเฉลี่ยและ SD ยกตัวอย่างเช่นแบบลำดับชั้นด้านล่างเป็นจากหนังสือ Kruschke ของการทำเบส์วิเคราะห์ข้อมูล แต่ Gelman สรุปปัญหาบางอย่างกับการกระจายแกมม่าในบทความของเขาและฉันจะขอบคุณสำหรับคำแนะนำทางเลือกโดยเฉพาะอย่างยิ่งทางเลือกที่ไม่ยากที่จะทำงานใน BUGS / JAGS

2
พารามิเตอร์ที่ไม่มีตัวคั่นที่กำหนดใน Stan
ผมได้เริ่มต้นเพียงเพื่อเรียนรู้ที่จะใช้สแตนrstanและ นอกจากว่าฉันมักจะสับสนเกี่ยวกับวิธีการทำงานของ JAGS / BUGS ฉันคิดว่าคุณต้องกำหนดการแจกจ่ายก่อนหน้าบางชนิดสำหรับพารามิเตอร์ทุกตัวในโมเดลที่จะดึงมา ดูเหมือนว่าคุณไม่จำเป็นต้องทำสิ่งนี้ใน Stan ตามเอกสารประกอบของมัน นี่คือรูปแบบตัวอย่างที่พวกเขาให้ที่นี่ data { int<lower=0> J; // number of schools real y[J]; // estimated treatment effects real<lower=0> sigma[J]; // s.e. of effect estimates } parameters { real theta[J]; real mu; real<lower=0> tau; } model { theta ~ normal(mu, tau); y ~ normal(theta, …

3
การเลือกตัวแปรแบบเบย์ - ใช้งานได้จริงหรือ
ฉันคิดว่าฉันอาจเล่นกับการเลือกตัวแปรแบบเบย์บางอย่างหลังจากโพสต์บล็อกที่ดีและเอกสารที่เชื่อมโยงอยู่ในนั้น ฉันเขียนโปรแกรมในrjags (ที่ฉันค่อนข้างใหม่) และดึงข้อมูลราคาสำหรับ Exxon Mobil พร้อมกับบางสิ่งที่ไม่น่าจะอธิบายผลตอบแทน (เช่นราคาของแพลเลเดียม) และสิ่งอื่น ๆ ที่ควรมีความสัมพันธ์สูง (เช่น SP500 ) วิ่งlm()เราจะเห็นว่ามีหลักฐานที่ชัดเจนของแบบจำลองที่มีพารามิเตอร์มากเกินไป แต่แพลเลเดียมนั้นควรได้รับการยกเว้น: Call: lm(formula = Exxon ~ 0 + SP + Palladium + Russell + OilETF + EnergyStks, data = chkr) Residuals: Min 1Q Median 3Q Max -1.663e-03 -4.419e-04 3.099e-05 3.991e-04 1.677e-03 Coefficients: Estimate Std. Error …

1
การถดถอยโลจิสติกแบบเบย์ปกติใน JAGS
มีเอกสารทางคณิตศาสตร์มากมายที่อธิบาย Bayesian Lasso แต่ฉันต้องการทดสอบและแก้ไขรหัส JAGS ที่ฉันสามารถใช้ได้ ใครบางคนสามารถโพสต์ตัวอย่างรหัส BUGS / JAGS ที่ใช้การถดถอยโลจิสติกปกติ? รูปแบบใด ๆ (L1, L2, Elasticnet) จะดี แต่ Lasso เป็นที่ต้องการ ฉันยังสงสัยว่ามีกลยุทธ์การใช้งานทางเลือกที่น่าสนใจหรือไม่

2
MCMC กำลังรวมเป็นค่าเดียวหรือไม่
ฉันกำลังพยายามปรับให้เข้ากับโมเดลลำดับชั้นโดยใช้ jags และแพ็คเกจ rjags ตัวแปรผลลัพธ์ของฉันคือ y ซึ่งเป็นลำดับของการทดลองเบอโนลลี ฉันมี 38 วิชามนุษย์ที่มีประสิทธิภาพภายใต้สองประเภท: P เมตรและจากการวิเคราะห์ของฉันลำโพงทุกคนมีความน่าจะเป็นของความสำเร็จในหมวดหมู่ของ Pและความน่าจะเป็นของความสำเร็จในหมวดหมู่ของ M \ฉันยังสมมติว่ามีบาง hyperparameter ระดับชุมชนของ P และ M:และ\θpθp\theta_pθp×θmθp×θm\theta_p\times\theta_mμpμp\mu_pμmμm\mu_m ดังนั้นสำหรับผู้พูดทุกคน: และที่และควบคุมวิธีแหลมกระจายอยู่รอบ ๆและ\θp∼beta(μp×κp,(1−μp)×κp)θp∼beta(μp×κp,(1−μp)×κp)\theta_p \sim beta(\mu_p\times\kappa_p, (1-\mu_p)\times\kappa_p)θm∼beta(μm×κm,(1−μm)×κm)θm∼beta(μm×κm,(1−μm)×κm)\theta_m \sim beta(\mu_m\times\kappa_m, (1-\mu_m)\times\kappa_m)κpκp\kappa_pκmκm\kappa_mμpμp\mu_pμmμm\mu_m นอกจากนี้ยัง ,B_m)μp∼beta(Ap,Bp)μp∼beta(Ap,Bp)\mu_p \sim beta(A_p, B_p)μm∼beta(Am,Bm)μm∼beta(Am,Bm)\mu_m \sim beta(A_m, B_m) นี่คือรูปแบบ jags ของฉัน: model{ ## y = N bernoulli trials ## Each speaker …

1
วิธีการสร้างการทำนายด้วย rjags?
ฉันใช้ rjags เพื่อรัน MCMC ในรูปแบบที่ระบุในภาษา JAGS มีวิธีที่ดีในการแยกโมเดลนั้นและทำการทำนายด้วยหรือไม่ (ใช้การแจกแจงหลังของพารามิเตอร์ของฉัน)? ฉันสามารถระบุรุ่นใน R อีกครั้งและเสียบโหมดของพารามิเตอร์โปสเตอร์ของฉัน ฉันแค่สงสัยว่ามีวิธีการทำซ้ำซ้อนน้อยลงหรือไม่ ฉันเชื่อว่าhttp://sourceforge.net/p/mcmc-jags/discussion/610037/thread/0ecab41cกำลังถามคำถามเดียวกัน
12 r  jags 

2
ฉันจะตั้งค่าปัวส์ซองแบบไม่ต้องพองได้ใน JAGS ได้อย่างไร
ฉันกำลังพยายามตั้งค่าโมเดลปัวซองที่ไม่ทำให้พองใน R และ JAGS ฉันยังใหม่กับ JAGS และฉันต้องการคำแนะนำเกี่ยวกับวิธีการทำเช่นนั้น ฉันได้ลองทำสิ่งต่อไปนี้โดยที่ y [i] เป็นตัวแปรที่สังเกตได้ model { for (i in 1:I) { y.null[i] <- 0 y.pois[i] ~ dpois(mu[i]) pro[i] <- ilogit(theta[i]) x[i] ~ dbern(pro[i]) y[i] <- step(2*x[i]-1)*y.pois[i] + (1-step(2*x[i]-1))*y.null[i] log(mu[i]) <- bla + bla +bla + .... theta[i] <- bla + bla + bla …

2
โปรแกรมเช่น BUGS / JAGS จะกำหนดการกระจายแบบมีเงื่อนไขสำหรับการสุ่มตัวอย่างแบบกิ๊บส์อย่างไร
ดูเหมือนว่าเงื่อนไขแบบเต็มมักจะยากที่จะรับมา แต่โปรแกรมเช่น JAGS และ BUGS จะได้มาโดยอัตโนมัติ บางคนสามารถอธิบายได้ว่าพวกเขาสร้างอัลกอริธึมแบบเต็มรูปแบบสำหรับสเปคแบบใดก็ได้หรือไม่?

1
การจัดการความสัมพันธ์อัตโนมัติสูงใน MCMC
ฉันกำลังสร้างแบบจำลองเบย์แบบลำดับชั้นที่ค่อนข้างซับซ้อนสำหรับการวิเคราะห์เมตาโดยใช้ R และ JAGS ลดความซับซ้อนของบิตสองระดับที่สำคัญของแบบจำลองมี โดยที่เป็นข้อสังเกตที่จุดสิ้นสุด (ในกรณีนี้จีเอ็มเทียบกับการปลูกพืชที่ไม่ใช่จีเอ็ม) ในการศึกษา ,เป็นผลสำหรับการศึกษา , s เป็นผลกระทบของตัวแปรระดับการศึกษาต่างๆ (สถานะการพัฒนาทางเศรษฐกิจของประเทศที่ ทำการศึกษาชนิดพันธุ์พืชวิธีการศึกษา ฯลฯ ) จัดทำดัชนีโดยกลุ่มฟังก์ชันและyij=αj+ϵiyij=αj+ϵi y_{ij} = \alpha_j + \epsilon_i αj=∑hγh(j)+ϵjαj=∑hγh(j)+ϵj\alpha_j = \sum_h \gamma_{h(j)} + \epsilon_jyijyijy_{ij}iiijjjαjαj\alpha_jjjjγγ\gammahhhϵϵ\epsilons เป็นเงื่อนไขข้อผิดพลาด โปรดทราบว่า s ไม่ใช่สัมประสิทธิ์ของตัวแปรจำลอง แต่มีตัวแปรแตกต่างกันสำหรับค่าระดับการศึกษาที่แตกต่างกัน ตัวอย่างเช่นมีสำหรับประเทศกำลังพัฒนาและสำหรับประเทศที่พัฒนาแล้ว γγ\gammaγγ\gammaγdevelopingγdeveloping\gamma_{developing}γdevelopedγdeveloped\gamma_{developed} ฉันสนใจที่จะประเมินค่าของ s เป็นหลัก ซึ่งหมายความว่าการทิ้งตัวแปรระดับการศึกษาจากตัวแบบไม่ใช่ตัวเลือกที่ดี γγ\gamma มีความสัมพันธ์สูงระหว่างตัวแปรระดับการศึกษาหลายอย่างและฉันคิดว่าสิ่งนี้กำลังสร้างความสัมพันธ์อัตโนมัติขนาดใหญ่ในเครือข่าย MCMC ของฉัน พล็อตการวินิจฉัยนี้แสดงให้เห็นถึงวิถีลูกโซ่ (ซ้าย) และผลสัมพันธ์อัตโนมัติ (ขวา): จากผลของความสัมพันธ์อัตโนมัติฉันได้ขนาดตัวอย่างที่มีประสิทธิภาพ 60-120 จาก …

3
การถดถอยทั่วไปแบบถ่วงน้ำหนักใน BUGS, JAGS
ในRเราสามารถ "น้ำหนักก่อนหน้า" การglmถดถอยผ่านพารามิเตอร์น้ำหนัก ตัวอย่างเช่น: glm.D93 <- glm(counts ~ outcome + treatment, family = poisson(), weights=w) วิธีนี้สามารถทำได้ในJAGSหรือBUGSรูปแบบ? ฉันพบบทความบางส่วนเกี่ยวกับเรื่องนี้ แต่ไม่มีบทความใดแสดงให้เห็น ฉันสนใจตัวอย่างปัวซองและการถดถอยโลจิสติกเป็นส่วนใหญ่

2
โมเดลลำดับชั้นสำหรับการเปรียบเทียบหลายรายการ - บริบทผลลัพธ์หลายรายการ
ฉันเพิ่งได้รับการอ่านของเจลแมนทำไมเรา (ปกติ) ไม่ต้องกังวลกับการเปรียบเทียบหลาย ๆครั้ง โดยเฉพาะอย่างยิ่งในส่วน "ผลลัพธ์ที่หลากหลายและความท้าทายอื่น ๆ "กล่าวถึงการใช้แบบจำลองลำดับชั้นสำหรับสถานการณ์เมื่อมีมาตรการที่เกี่ยวข้องหลายรายการจากบุคคล / หน่วยเดียวกันในเวลาและเงื่อนไขที่แตกต่างกัน ดูเหมือนว่าจะมีคุณสมบัติที่ต้องการจำนวนมาก ฉันเข้าใจว่านี่ไม่จำเป็นต้องเป็นสิ่งที่เบย์ ใครบางคนสามารถแสดงให้ฉันเห็นวิธีการสร้างโมเดลหลายตัวแปรหลายระดับอย่างถูกต้องโดยใช้ rjags และ / หรือ lmer (JAGS และ BUGS ปกติควรจะดีเช่นกัน ผลลัพธ์ที่ตรงกันข้าม ประเภทของสถานการณ์ที่ฉันต้องการให้แบบจำลองนั้นสะท้อนให้เห็นในข้อมูลของเล่นด้านล่าง (หลายตัวแปร, การวัดซ้ำ): set.seed(69) id <- factor(rep(1:20, 2)) # subject identifier dv1 <- c(rnorm(20), rnorm(20, 0.8, 0.3)) # dependent variable 1 data for 2 conditions dv2 <- …

2
ฉันจะสร้างแบบจำลองสัดส่วนด้วย BUGS / JAGS / STAN ได้อย่างไร
ฉันกำลังพยายามสร้างแบบจำลองที่การตอบสนองเป็นสัดส่วน (อันที่จริงแล้วมันคือส่วนแบ่งของคะแนนโหวตที่บุคคลได้รับจากการเลือกตั้ง) การกระจายของมันไม่ปกติดังนั้นฉันตัดสินใจที่จะจำลองด้วยการแจกแจงแบบเบต้า ฉันยังมีผู้ทำนายหลายคน อย่างไรก็ตามฉันไม่รู้วิธีเขียนใน BUGS / JAGS / STAN (JAGS จะเป็นตัวเลือกที่ดีที่สุดของฉัน แต่มันก็ไม่สำคัญอะไร) ปัญหาของฉันคือฉันสร้างผลรวมของพารามิเตอร์โดยตัวทำนาย แต่แล้วฉันจะทำอย่างไรกับมัน? รหัสจะเป็นแบบนี้ (ในรูปแบบของ JAGS) แต่ฉันไม่รู้วิธี "ลิงก์" y_hatและyพารามิเตอร์ for (i in 1:n) { y[i] ~ dbeta(alpha, beta) y_hat[i] <- a + b * x[i] } ( y_hatเป็นเพียงผลคูณของพารามิเตอร์และตัวทำนายดังนั้นความสัมพันธ์ที่กำหนดขึ้นได้aและbเป็นสัมประสิทธิ์ที่ฉันพยายามประเมินxเป็นตัวทำนาย) ขอบคุณสำหรับคำแนะนำของคุณ!

2
การเซ็นเซอร์ / การตัดปลายใน JAGS
ฉันมีคำถามเกี่ยวกับวิธีแก้ไขปัญหาการตรวจสอบใน JAGS ฉันสังเกตการผสมแบบสองตัวแปรตามปกติซึ่งค่า X มีข้อผิดพลาดในการวัด ฉันต้องการจำลอง 'ค่าเฉลี่ย' ที่แท้จริงของค่าการตรวจสอบที่สังเกตได้ ⌈xtrue+ϵ⌉=xobserved ϵ∼N(0,sd=.5)⌈xtrue+ϵ⌉=xobserved ϵ∼N(0,sd=.5)\begin{align*} \lceil x_{true}+\epsilon \rceil = x_{observed} \ \epsilon \sim N(0,sd=.5) \end{align*} นี่คือสิ่งที่ฉันมีตอนนี้: for (i in 1:n){ x[i,1:2]~dmnorm(mu[z[i],1:2], tau[z[i],1:2,1:2]) z[i]~dcat(prob[ ]) } Y ยังมีข้อผิดพลาดในการวัด สิ่งที่ฉันต้องการทำคืออะไรเช่นนี้: for (i in 1:n){ x_obs[i] ~ dnorm(x_true[i],prec_x)I(x_true[i],) y_obs[i] ~ dnorm(y_true[i],prec_y) c(x_true[i]:y_true[i])~dmnorm(mu[ z [ i ],1:2], tau[z[i],1:2,1:2]) …

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.