แนวทางของเบย์ต่อปัญหาของคุณคือการพิจารณาความน่าจะเป็นด้านหลังของแบบจำลองเนื่องจากชุดของจุดข้อมูล ,M∈{Normal,Log-normal}X={x1,...,xN}
P(M∣X)∝P(X∣M)P(M).
ส่วนที่ยากจะได้รับโอกาสร่อแร่ ,
P(X∣M)=∫P(X∣θ,M)P(θ∣M)dθ.
สำหรับทางเลือกหนึ่งของ , ความน่าจะเป็นชายขอบของเกาส์สามารถหาได้ในรูปแบบปิด เนื่องจากการบอกว่ากระจายตามปกติจะเหมือนกับการบอกว่า } มีการกระจายตามปกติคุณควรจะสามารถใช้โอกาสในการเข้าสู่ระบบปกติเหมือนกันได้ รูปแบบเช่นเดียวกับรูปแบบเกาส์โดยนำไปใช้กับแทนXจำไว้ว่าให้คำนึงถึงการเปลี่ยนแปลงของยาโคบเท่านั้นp(θ∣M)XY={logx1,...,logxNYX
P(X∣M=Log-Normal)=P(Y∣M=Normal)⋅∏i∣∣∣1xi∣∣∣.
สำหรับวิธีนี้คุณต้องเลือกการกระจายตัวของพารามิเตอร์ - ที่นี่น่าจะเป็น - และความน่าจะเป็นก่อนหน้านี้ .P(θ∣M)P(σ2,μ∣M=Normal)P(M)
ตัวอย่าง:
สำหรับฉันเลือกกระจายปกติผกผันแกมมากับพารามิเตอร์100P(μ,σ2∣M=Normal)m0=0,v0=20,a0=1,b0=100
จากข้อมูลของเมอร์ฟี (2007) (สมการ 203) ความเป็นไปได้ที่จะเกิดการกระจายตัวแบบปกตินั้น
P(X∣M=Normal)=|vN|12|v0|12ba00baNnΓ(aN)Γ(a0)1πN/22N
โดยที่และคือพารามิเตอร์ของ posterior (สมการที่ 196 ถึง 200)aN,bN,vNP(μ,σ2∣X,M=Normal)
vNmNaNbN=1/(v−10+N),=(v−10m0+∑ixi)/vN,=a0+N2,=b0+12(v−10m20−v−1Nm2N+∑ix2i).
ฉันใช้พารามิเตอร์ไฮเปอร์พารามิเตอร์เดียวกันสำหรับการแจกแจงล็อก - ปกติ
P(X∣M=Log-normal)=P({logx1,...,logxN}∣M=Normal)⋅∏i∣∣∣1xi∣∣∣.
สำหรับความน่าจะเป็นก่อนบันทึกปกติ ,และข้อมูลที่ดึงมาจากการแจกแจงบันทึกปกติต่อไปนี้P ( M = บันทึกปกติ) = 0.10.1P(M=Log-normal)=0.1
หลังมีพฤติกรรมเช่นนี้:
เส้นทึบแสดงความน่าจะเป็นด้านหลังเฉลี่ยสำหรับการดึงจุดข้อมูลแตกต่างกัน โปรดทราบว่าสำหรับข้อมูลน้อยถึงไม่มีเลยความเชื่อนั้นใกล้เคียงกับความเชื่อเดิม สำหรับจุดข้อมูลประมาณ 250 จุดอัลกอริทึมนั้นเกือบจะแน่นอนว่าข้อมูลนั้นมาจากการแจกแจงแบบล็อก - ปกติN
เมื่อนำสมการไปใช้งานมันจะเป็นความคิดที่ดีที่จะทำงานกับ log-densities แทนความหนาแน่น แต่ไม่อย่างนั้นมันควรตรงไปตรงมา นี่คือรหัสที่ฉันใช้ในการสร้างแปลง:
https://gist.github.com/lucastheis/6094631