লগ-নরমাল এর মতো খুব স্কিউড ডিস্ট্রিবিউশনের ফলে সঠিক বুটস্ট্র্যাপের আত্মবিশ্বাসের বিরতি ঘটে না। এখানে একটি উদাহরণ দেখাচ্ছে যা বাম এবং ডান লেজের অঞ্চলগুলি আদর্শ 0.025 থেকে অনেক দূরে, আপনি আর-তে কোন বুটস্ট্র্যাপ পদ্ধতি ব্যবহার করে দেখেন:
require(boot)
n <- 25
B <- 1000
nsim <- 1000
set.seed(1)
which <- c('basic', 'perc', 'norm', 'bca', 'stud')
mul <- 0; sdl <- 1.65 # on log scale
dist <- c('normal', 'lognormal')[2]
switch(dist, normal = {g <- function(x) x; mu <- mul},
lognormal = {g <- exp; mu <- exp(mul + sdl * sdl / 2)})
count <- matrix(0, nrow=length(which), ncol=2,
dimnames=list(which, c('lower', 'upper')))
stat <- function(x, j) {
## See http://www.psychology.mcmaster.ca/bennett/boot09/percentileT.pdf
x <- x[j]
m <- mean(x)
s <- sd(x)
n <- length(x)
sem <- s / sqrt(n)
m.var <- sem ^ 2
c(m, m.var)
}
for(i in 1 : nsim) {
if(i %% 100 == 0) cat(i, '')
x <- g(rnorm(n, mul, sdl))
b <- boot(x, stat, R=B)
ci <- boot.ci(b, type=which)
for(w in which) {
nam <- switch(w, perc='percent', norm='normal', basic='basic',
stud='student', bca='bca')
z <- rev(rev(ci[[nam]])[1:2])
count[w, 'lower'] <- count[w, 'lower'] + (z[1] > mu)
count[w, 'upper'] <- count[w, 'upper'] + (z[2] < mu)
}
}
cat('\n')
count / nsim
ফলাফল নীচে:
lower upper
basic 0.000 0.329
perc 0.003 0.257
norm 0.000 0.287
bca 0.015 0.185
stud 0.005 0.129
জন্য একক একক প্রয়াস এখনও পর্যাপ্তরূপে সঠিক কভারেজ প্রদান করবেন না:
lower upper
basic 0.001 0.114
perc 0.005 0.093
norm 0.002 0.102
bca 0.017 0.067
stud 0.011 0.058
লগইনরমাল বিতরণ থেকে নমুনা নিলে অভিজ্ঞতার সম্ভাবনাও সঠিক আত্মবিশ্বাসের ব্যবধান সরবরাহ করতে ব্যর্থ হয়।
লক্ষ্যগুলি পুনরুদ্ধার করার জন্য, আমি একটি জনসাধারণের জন্য আস্থার ব্যবধান পাওয়ার জন্য একটি সাধারণভাবে প্রয়োগযোগ্য পদ্ধতির সন্ধান করছি যার অর্থ এটি
- যদি কাঁচা ডেটা বিতরণ অসম্পৃক্ত হয় তবে অন্তরটি অসম্পূর্ণ হয়
- উভয় লেজগুলিতে ব্যবধানের সঠিক কভারেজ রয়েছে (উদাহরণস্বরূপ, উভয় ক্ষেত্রে 0.025 ত্রুটির সম্ভাবনা)
- পদ্ধতিটি অন্তর্নিহিত বিতরণ বা বিতরণকে প্রতিসাম্য তৈরি করার জন্য প্রয়োজনীয় রূপান্তর সম্পর্কে কোনও নির্দিষ্টকরণ বিশ্লেষকের প্রয়োজন হয় না
এটি নিয়ে ভাবতে অবিরত হওয়ার জন্য, আমি যে সমস্যাটি নিয়ে আলোচনা করতে চাইছি তা ধারণাকে ধারণ করার দুটি বিস্তৃত উপায় রয়েছে।
- যদিও কোনও একক বুটস্ট্র্যাপ চূড়ান্ত স্কিউ বিতরণ থেকে নমুনাগুলির জন্য যথাযথভাবে সঠিক আত্মবিশ্বাসের সীমা না দেয়, ডাবল বুটস্ট্র্যাপ উভয় লেজের মধ্যে আস্থা আস্থা উল্লেখযোগ্যভাবে উন্নত করতে পারে improve নানক্রভিসের কিছু দুর্দান্ত ফলাফল রয়েছে এবং এটি একটি দুর্দান্ত গণনা অ্যালগরিদম সরবরাহ করে। তবে কোনও সফ্টওয়্যারই আমি এর প্রয়োগগুলি খুঁজে পেল না।
আর কোড চিত্রিত 1. উপরে:
## Exact CI for median from DescTools package SignTest.default
## See also ttp://www.stat.umn.edu/geyer/old03/5102/notes/rank.pdf,
## http://de.scribd.com/doc/75941305/Confidence-Interval-for-Median-Based-on-Sign-Test
cimed <- function(x, alpha=0.05, na.rm=FALSE) {
if(na.rm) x <- x[! is.na(x)]
n <- length(x)
k <- qbinom(p=alpha / 2, size=n, prob=0.5, lower.tail=TRUE)
## Actual CL: 1 - 2 * pbinom(k - 1, size=n, prob=0.5) >= 1 - alpha
sort(x)[c(k, n - k + 1)]
}
n <- 20
m <- 20000
cil <- cilt <- 0
z <- qt(0.975, n - 1)
for(i in 1 : m) {
x <- rnorm(n)
cil <- cil + diff(cimed(x))
cilt <- cilt + 2 * z * sqrt(var(x) / n)
}
cil <- cil / m
cilt <- cilt / m
c(cil, cilt, cilt / cil, cil / cilt)