พารามิเตอร์ที่ไม่มีตัวคั่นที่กำหนดใน Stan


15

ผมได้เริ่มต้นเพียงเพื่อเรียนรู้ที่จะใช้สแตน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, sigma);
} 

ทั้งmuมิได้tauมีการกำหนดไพรเออร์ ในการแปลงแบบจำลอง JAGS ของฉันเป็นสแตนฉันพบว่ามันใช้งานได้หากฉันปล่อยพารามิเตอร์จำนวนมาก

ปัญหาคือฉันไม่เข้าใจสิ่งที่สแตนกำลังทำอยู่เมื่อฉันมีพารามิเตอร์ที่ไม่มีนักบวชที่กำหนดไว้ มันเป็นค่าเริ่มต้นกับสิ่งที่ต้องการกระจายเครื่องแบบหรือไม่ นี่เป็นหนึ่งในคุณสมบัติพิเศษของ HMC ซึ่งไม่จำเป็นต้องมีการกำหนดไว้ล่วงหน้าสำหรับทุกพารามิเตอร์หรือไม่

คำตอบ:


18

จาก (เวอร์ชันก่อนหน้า) คู่มืออ้างอิงของ Stan:

การไม่ระบุล่วงหน้าจะเทียบเท่ากับการระบุชุดก่อน

ชุดก่อนหน้าจะเหมาะสมก็ต่อเมื่อพารามิเตอร์ถูก จำกัด ขอบเขต [... ]

นักบวชที่ไม่เหมาะสมยังได้รับอนุญาตในโปรแกรมของสแตน เกิดขึ้นจากพารามิเตอร์ที่ไม่มีข้อ จำกัด โดยไม่มีการสุ่มตัวอย่าง ในบางกรณีการไม่เหมาะสมก่อนอาจนำไปสู่การหลังที่เหมาะสม แต่มันก็ขึ้นอยู่กับผู้ใช้ที่จะรับประกันว่าข้อ จำกัด ในพารามิเตอร์ (s) หรือข้อมูลให้มั่นใจความเหมาะสมของหลัง

(ดูส่วน C.3 ในเวอร์ชั่น 1.0.1 )

เหตุผลพื้นฐานที่ว่านี้ก็โอเคใน Stan แต่ไม่ใช่ใน BUGS อาจเกี่ยวข้องกับข้อเท็จจริงที่ว่าใน BUGS โมเดล "โปรแกรม" ของคุณกำลังระบุรูปแบบกราฟิกที่เป็นทางการในขณะที่ Stan คุณกำลังเขียนฟังก์ชันเล็กน้อยเพื่อคำนวณความน่าจะเป็นร่วม ฟังก์ชั่นความหนาแน่น การไม่ระบุค่าที่เหมาะสมก่อนสำหรับตัวแปรทั้งหมดอาจทำให้คุณสมบัติทางการของโมเดลกราฟิกดีขึ้น

อย่างไรก็ตามสำหรับ Hamiltonian MC คุณเพียงแค่ต้อง (ตัวเลข) คำนวณฟังก์ชันความหนาแน่นของข้อต่อ (แม้จะไม่เหมาะสม) ก่อนหน้านี้มีส่วนช่วยให้เกิดความหนาแน่นของคำศัพท์และตราบใดที่คนหลังมีความเหมาะสม (ความน่าจะเป็นรวมแน่นอน) - ซึ่งมันจะเป็นไปได้ด้วยฟังก์ชันความน่าจะเป็นที่สมเหตุสมผล - มันสามารถละเว้นได้ใน HMC โครงการ


8

จากสแตนอ้างอิง v1.0.2 (pg 6, เชิงอรรถ 1)

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

ทั้งคู่muและsigmaมีชุดนักบวชที่ไม่เหมาะสม

ภายใต้ประทุนmuและsigmaถือว่าแตกต่างกัน sigmaถูกกำหนดด้วยขอบเขตล่าง ตัวอย่างจากสแตนlog(sigma)(ด้วยการปรับจาโคเบียนสำหรับการเปลี่ยนแปลง) สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับการแปลงสัญญาณให้ดูบทที่ 27 (หน้า 153)


ดังนั้นฉันชัดเจนเกี่ยวกับเรื่องนี้ถ้าตัวอย่าง STAN ในระดับ log (sigma) flat ก่อนหน้านี้ยังคงอยู่เหนือ sigma และไม่เกิน log (sigma)
Rasmus Bååth

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