มีหลายวิธีในการคำนวณช่วงความเชื่อมั่นสำหรับค่าเฉลี่ยของการแจกแจงแบบปกติ ฉันจะนำเสนอสองวิธี: โอกาสในการ Bootstrap และ Profile ฉันจะนำเสนอการอภิปรายเกี่ยวกับ Jeffreys ก่อน
เงินทุน
สำหรับ MLE
ในกรณีนี้ MLE ของสำหรับตัวอย่างมี(μ,σ)(x1,...,xn)
μ^=1n∑j=1nlog(xj);σ^2=1n∑j=1n(log(xj)−μ^)2.
จากนั้น MLE ของค่าเฉลี่ยเป็น2/2) โดยการ resampling เราสามารถรับตัวอย่าง bootstrapของและการใช้สิ่งนี้เราสามารถคำนวณช่วงความเชื่อมั่นbootstrap ได้หลายอย่าง รหัสต่อไปนี้แสดงวิธีรับสิ่งเหล่านี้δ^=exp(μ^+σ^2/2) δδ^R
rm(list=ls())
library(boot)
set.seed(1)
# Simulated data
data0 = exp(rnorm(100))
# Statistic (MLE)
mle = function(dat){
m = mean(log(dat))
s = mean((log(dat)-m)^2)
return(exp(m+s/2))
}
# Bootstrap
boots.out = boot(data=data0, statistic=function(d, ind){mle(d[ind])}, R = 10000)
plot(density(boots.out$t))
# 4 types of Bootstrap confidence intervals
boot.ci(boots.out, conf = 0.95, type = "all")
สำหรับค่าเฉลี่ยตัวอย่าง
ตอนนี้พิจารณาตัวประมาณแทนที่จะเป็น MLE ตัวประมาณประเภทอื่น ๆ อาจได้รับการพิจารณาเช่นกันδ~= x¯
rm(list=ls())
library(boot)
set.seed(1)
# Simulated data
data0 = exp(rnorm(100))
# Statistic (MLE)
samp.mean = function(dat) return(mean(dat))
# Bootstrap
boots.out = boot(data=data0, statistic=function(d, ind){samp.mean(d[ind])}, R = 10000)
plot(density(boots.out$t))
# 4 types of Bootstrap confidence intervals
boot.ci(boots.out, conf = 0.95, type = "all")
ความเป็นไปได้ของโปรไฟล์
สำหรับความหมายของความน่าจะเป็นและความน่าจะเป็นรายละเอียดฟังก์ชั่นที่เห็น การใช้คุณสมบัติค่าคงที่ของความน่าจะเป็นเราสามารถแก้ไขพารามิเตอร์ดังต่อไปนี้โดยที่จากนั้นคำนวณตัวเลข ความน่าจะเป็นรายละเอียดของ\( μ , σ) → ( δ, σ)δ= ประสบการณ์( μ + σ2/ 2)δ
Rพี( δ) = supσL (δ, σ)จีบδ, σL (δ, σ).
ฟังก์ชั่นนี้รับค่าเป็นช่วงเวลาของระดับมีความมั่นใจโดยประมาณเราจะใช้คุณสมบัตินี้เพื่อสร้างช่วงความเชื่อมั่นสำหรับรหัสต่อไปนี้แสดงวิธีรับช่วงเวลานี้ .( 0 , 1 ]0.147 95 %δR
set.seed(1)
# Simulated data
data0 = exp(rnorm(100))
# Log likelihood
ll = function(mu,sigma) return( sum(log(dlnorm(data0,mu,sigma))))
# Profile likelihood
Rp = function(delta){
temp = function(sigma) return( sum(log(dlnorm(data0,log(delta)-0.5*sigma^2,sigma)) ))
max=exp(optimize(temp,c(0.25,1.5),maximum=TRUE)$objective -ll(mean(log(data0)),sqrt(mean((log(data0)-mean(log(data0)))^2))))
return(max)
}
vec = seq(1.2,2.5,0.001)
rvec = lapply(vec,Rp)
plot(vec,rvec,type="l")
# Profile confidence intervals
tr = function(delta) return(Rp(delta)-0.147)
c(uniroot(tr,c(1.2,1.6))$root,uniroot(tr,c(2,2.3))$root)
⋆เบย์
ในส่วนนี้ขั้นตอนวิธีทางเลือกบนพื้นฐานของมหานคร-เฮสติ้งส์สุ่มตัวอย่างและการใช้ฟรีย์ก่อนหน้านี้สำหรับการคำนวณช่วงเวลาที่น่าเชื่อถือสำหรับจะนำเสนอδ
โปรดจำไว้ว่าJeffreys ก่อนหน้าสำหรับในรูปแบบ lognormal คือ( μ , σ)
π( μ , σ) ∝ σ- 2,
และสิ่งนี้ก่อนหน้านี้ไม่แปรเปลี่ยนภายใต้ reparameterisations ก่อนนี้เป็นที่ไม่เหมาะสม แต่หลังของพารามิเตอร์ที่เหมาะสมคือถ้าขนาดของกลุ่มตัวอย่าง2 รหัสต่อไปนี้แสดงวิธีรับช่วงความน่าเชื่อถือ 95% โดยใช้แบบจำลอง Bayesian นี้n ≥ 2R
library(mcmc)
set.seed(1)
# Simulated data
data0 = exp(rnorm(100))
# Log posterior
lp = function(par){
if(par[2]>0) return( sum(log(dlnorm(data0,par[1],par[2]))) - 2*log(par[2]))
else return(-Inf)
}
# Metropolis-Hastings
NMH = 260000
out = metrop(lp, scale = 0.175, initial = c(0.1,0.8), nbatch = NMH)
#Acceptance rate
out$acc
deltap = exp( out$batch[,1][seq(10000,NMH,25)] + 0.5*(out$batch[,2][seq(10000,NMH,25)])^2 )
plot(density(deltap))
# 95% credibility interval
c(quantile(deltap,0.025),quantile(deltap,0.975))
โปรดทราบว่าพวกเขามีความคล้ายคลึงกันมาก