एक तार्किक वितरण के माध्यम के लिए आत्मविश्वास अंतराल की गणना के लिए कई तरीके हैं। मैं दो तरीके प्रस्तुत करने जा रहा हूं: बूटस्ट्रैप और प्रोफाइल संभावना। मैं पहले जेफ्री पर एक चर्चा भी प्रस्तुत करूंगा।
बूटस्ट्रैप
MLE के लिए
इस मामले में, नमूने के लिए का MLE हैं( μ , σ)( x)1, । । । , एक्सn)
μ^= 1nΣज = १nलॉग( x)जे) ;σ^2= 1nΣज = १n( लॉग( x)जे) - μ^)2।
फिर, माले का MLE । फिर से शुरू करके हम का बूटस्ट्रैप नमूना प्राप्त कर सकते हैं और, इसका उपयोग करके, हम कई बूटस्ट्रैप विश्वास अंतराल की गणना कर सकते हैं। निम्न कोड दिखाता है कि इन्हें कैसे प्राप्त किया जाए।δ^= ऍक्स्प( μ^+ σ^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 के बजाय अनुमानक पर विचार कर रहा है। अन्य प्रकार के अनुमानक भी माने जा सकते हैं।δ~= एक्स¯
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)δ
आरपी( δ) = सुपσएल (δ, σ)सुड़कनाδ, σएल (δ, σ)।
यह फ़ंक्शन में मान लेता है , स्तर अंतराल में का अनुमानित आत्मविश्वास है । हम इस संपत्ति का उपयोग लिए एक विश्वास अंतराल के निर्माण के लिए करने जा रहे हैं । निम्नलिखित कोड दिखाता है कि इस अंतराल को कैसे प्राप्त किया जाए। ।( 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)
⋆ _ बायेसियन
इस खंड में, मेट्रोपोलिस-हेस्टिंग्स के नमूने के आधार पर एक वैकल्पिक एल्गोरिथ्म और पूर्व में जेफ्री के उपयोग के लिए, लिए एक विश्वसनीयता अंतराल की गणना के लिए प्रस्तुत किया गया है।δ
याद रखें कि पहले जेफ्रीज के लिए एक lognormal मॉडल में है( μ , σ)
π( μ , σ) अल्फा σ- २,
और यह कि यह पूर्व पुनर्संरचना के तहत अपरिवर्तनीय है। यह पूर्व अनुचित है, लेकिन मापदंडों का पीछे होना उचित है यदि नमूना आकार । निम्न कोड दिखाता है कि इस बायेसियन मॉडल का उपयोग करके 95% विश्वसनीयता अंतराल कैसे प्राप्त करें।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))
ध्यान दें कि वे बहुत समान हैं।