นี่คือตัวอย่างของการประมาณค่าเฉลี่ยจากข้อมูลต่อเนื่องปกติ อย่างไรก็ตามก่อนที่จะเจาะลึกลงไปในตัวอย่างโดยตรงฉันต้องการตรวจสอบคณิตศาสตร์บางอย่างสำหรับตัวแบบข้อมูลแบบเบย์แบบ Normal-Normalθ
พิจารณาตัวอย่างที่สุ่มจากค่าอย่างต่อเนื่อง n แสดงโดยy_n นี่คือเวกเตอร์หมายถึงข้อมูลที่รวบรวม รูปแบบความน่าจะเป็นสำหรับข้อมูลปกติที่มีความแปรปรวนที่รู้จักและตัวอย่างที่เป็นอิสระและการกระจาย (iid) เหมือนกันคือy1,...,yny=(y1,...,yn)T
y1,...,yn|θ∼N(θ,σ2)
หรือตามที่เขียนโดย Bayesian
y1,...,yn|θ∼N(θ,τ)
โดยที่ ; เรียกแม่นยำτ=1/σ2τ
ด้วยสัญกรณ์นี้ความหนาแน่นของจึงเป็นเช่นนั้นyi
f(yi|θ,τ)=(√τ2π)×exp(−τ(yi−θ)2/2)
สถิติแบบดั้งเดิม (คือความเป็นไปได้สูงสุด) ทำให้เราประมาณθ^=y¯
ในมุมมองแบบเบย์เราจะเพิ่มโอกาสสูงสุดด้วยข้อมูลก่อนหน้า ทางเลือกของไพรเออร์สำหรับข้อมูลแบบนี้ปกติเป็นอีกหนึ่งกระจายปกติ\การแจกแจงแบบปกติจะรวมกันกับการแจกแจงแบบปกติθ
θ∼N(a,1/b)
การกระจายด้านหลังที่เราได้รับจากโมเดลข้อมูล Normal-Normal (หลังจากพีชคณิตจำนวนมาก) เป็นอีกการแจกแจงแบบปกติ
θ|y∼N(bb+nτa+nτb+nτy¯,1b+nτ)
ความแม่นยำด้านหลังคือและค่าเฉลี่ยถ่วงน้ำหนักระหว่างและ ,{y}b+nτay¯bb+nτa+nτb+nτy¯
ประโยชน์ของวิธีการแบบเบย์นี้มาจากข้อเท็จจริงที่ว่าคุณได้รับการกระจายของไม่ใช่แค่การประมาณเนื่องจากถูกมองว่าเป็นตัวแปรสุ่มแทนที่จะเป็นค่าคงที่ (ไม่ทราบ) นอกจากนี้การประมาณในโมเดลนี้เป็นค่าเฉลี่ยถ่วงน้ำหนักระหว่างค่าเฉลี่ยเชิงประจักษ์และข้อมูลก่อนหน้าθ|yθθ
ที่กล่าวว่าตอนนี้คุณสามารถใช้ตัวอย่างตำราข้อมูลปกติเพื่อแสดงสิ่งนี้ ฉันจะใช้ชุดข้อมูลairquality
ภายใน R พิจารณาปัญหาของการประมาณความเร็วลมเฉลี่ย (MPH)
> ## New York Air Quality Measurements
>
> help("airquality")
>
> ## Estimating average wind speeds
>
> wind = airquality$Wind
> hist(wind, col = "gray", border = "white", xlab = "Wind Speed (MPH)")
>
> n = length(wind)
> ybar = mean(wind)
> ybar
[1] 9.957516 ## "frequentist" estimate
> tau = 1/sd(wind)
>
>
> ## but based on some research, you felt avgerage wind speeds were closer to 12 mph
> ## but probably no greater than 15,
> ## then a potential prior would be N(12, 2)
>
> a = 12
> b = 2
>
> ## Your posterior would be N((1/))
>
> postmean = 1/(1 + n*tau) * a + n*tau/(1 + n*tau) * ybar
> postsd = 1/(1 + n*tau)
>
> set.seed(123)
> posterior_sample = rnorm(n = 10000, mean = postmean, sd = postsd)
> hist(posterior_sample, col = "gray", border = "white", xlab = "Wind Speed (MPH)")
> abline(v = median(posterior_sample))
> abline(v = ybar, lty = 3)
>
> median(posterior_sample)
[1] 10.00324
> quantile(x = posterior_sample, probs = c(0.025, 0.975)) ## confidence intervals
2.5% 97.5%
9.958984 10.047404
ในการวิเคราะห์นี้ผู้วิจัย (คุณ) สามารถพูดได้ว่าข้อมูลที่ได้รับ + ข้อมูลก่อนหน้าการประมาณค่าลมเฉลี่ยของคุณโดยใช้เปอร์เซ็นไทล์ที่ 50 ความเร็วควรเป็น 10.00324 มากกว่าการใช้ค่าเฉลี่ยจากข้อมูล นอกจากนี้คุณยังได้รับการแจกแจงแบบเต็มซึ่งคุณสามารถแยกช่วงเวลาที่น่าเชื่อถือ 95% โดยใช้ปริมาณ 2.5 และ 97.5
ด้านล่างฉันมีข้ออ้างอิงสองข้อฉันขอแนะนำให้อ่านบทความสั้น ๆ ของ Casella มันมีจุดมุ่งหมายเฉพาะในวิธีการทดลองแบบเบย์ แต่อธิบายวิธีการแบบเบย์แบบทั่วไปสำหรับรุ่นปกติ
อ้างอิง:
Casella, G. (1985) การวิเคราะห์ข้อมูลเชิงประจักษ์เบย์เบื้องต้น. นักสถิติชาวอเมริกัน, 39 (2), 83-87
Gelman, A. (2004) การวิเคราะห์ข้อมูลแบบเบย์ (ฉบับที่ 2, ตำราทางวิทยาศาสตร์สถิติ) Boca Raton, Fla .: Chapman & Hall / CRC