เนื่องจากฉันเป็นวิศวกรซอฟต์แวร์พยายามที่จะเรียนรู้สถิติเพิ่มเติมคุณจะต้องยกโทษให้ฉันก่อนที่ฉันจะเริ่มนี่เป็นดินแดนใหม่ที่ร้ายแรง ...
ฉันได้เรียนรู้PyMCและทำงานผ่านตัวอย่างง่ายๆ (จริง ๆ ) จริงๆ ปัญหาหนึ่งที่ฉันไม่สามารถทำงานได้ (และไม่สามารถหาตัวอย่างที่เกี่ยวข้องได้) คือการปรับโมเดลให้สอดคล้องกับข้อมูลที่สร้างจากการแจกแจงปกติสองแบบ
บอกว่าฉันมี 1,000 ค่า 500 สร้างขึ้นจากNormal(mean=100, stddev=20)
และอีก 500 Normal(mean=200, stddev=20)
สร้างขึ้นจาก
ถ้าฉันต้องการให้พอดีกับแบบจำลองพวกเขาเช่นกำหนดสองวิธีและส่วนเบี่ยงเบนมาตรฐานเดียวโดยใช้ PyMC ฉันรู้ว่ามันเป็นสิ่งที่ตามแนว ...
mean1 = Uniform('mean1', lower=0.0, upper=200.0)
mean2 = Uniform('mean2', lower=0.0, upper=200.0)
precision = Gamma('precision', alpha=0.1, beta=0.1)
data = read_data_from_file_or_whatever()
@deterministic(plot=False)
def mean(m1=mean1, m2=mean2):
# but what goes here?
process = Normal('process', mu=mean, tau=precision, value=data, observed=True)
นั่นคือกระบวนการสร้างเป็นปกติ แต่ mu เป็นหนึ่งในสองค่า ผมก็ไม่ทราบวิธีการที่จะเป็นตัวแทนของ "การตัดสินใจ" ระหว่างว่าค่ามาจากหรือm1
m2
บางทีฉันอาจใช้วิธีการที่ผิดในการสร้างแบบจำลองนี้หรือไม่ ทุกคนสามารถชี้ให้ฉันเป็นตัวอย่างได้หรือไม่? ฉันสามารถอ่าน BUGS และ JAGS ได้