Відповіді:
Це питання, яке охоплює загальну ситуацію, заслуговує на просту, не приблизну відповідь. На щастя, є одна.
Припустимо, є незалежними значеннями від невідомого розподілу , квантиль якого я напишу . Це означає, що кожен має шанс (принаймні) бути меншим або рівним . Отже, число менше або рівне має двочлен розподіл.
Мотивовані цим простим роздумом, Джеральд Хан та Вільям Мекер у своєму підручнику " Статистичні інтервали" (Wiley 1991) пишуть
Отримується двосторонній консервативний вільний від розподілу інтервал довіри для ... як
де - статистика порядку вибірки. Вони продовжують говорити
Можна вибирати цілі числа симетрично (або майже симетрично) навколо q ( n + 1 ) і максимально близько один до одного з дотриманням вимог, що B ( u - 1 ; n , q ) - B ( l - 1 ; n , q ) ≥ 1 - α .
Вираз ліворуч - це ймовірність, що змінна Binomial має одне із значень { l , l + 1 , … , u - 1 } . Очевидно, це ймовірність, що кількість значень даних X i, що потрапляють у нижчі 100 q % розподілу, не є ні занадто малою (менше l ), ні занадто великою ( u або більшою).
Хан і Мікер випливають з корисними зауваженнями, які я процитую.
Попередній інтервал є консервативним, оскільки фактичний рівень довіри, заданий лівою частиною рівняння , перевищує задане значення 1 - α . ...
Іноді неможливо побудувати статистичний інтервал без розподілу, який має хоча б бажаний рівень довіри. Ця проблема особливо гостра при оцінці відсотків у хвості розподілу з невеликої вибірки. ... У деяких випадках аналітик може впоратися з цією проблемою, вибравши і u несиметрично. Іншою альтернативою може бути використання зниженого рівня довіри.
Давайте попрацюємо на прикладі (також надані Hahn & Meeker). Вони постачають впорядкований набір "вимірювань сполуки в хімічному процесі" і просять 100 ( 1 - α ) = 95 % довірчий інтервал для q = 0,90 перцентиля. Вони стверджують, що l = 85 і u = 97 буде працювати.
Загальна ймовірність цього інтервалу, як показано синіми смужками на малюнку, становить : це так близько, як можна дістатись до 95 % , але все ще бути вище цього, вибравши два обрізи та виключивши всі шанси на лівий хвіст і правий хвіст, що знаходиться поза межами цих обрізів.
Ось дані, наведені в порядку, не виводячи значення з середини:
по величині в 24,33 і 97 - е по величині є 33,24 . Отже, інтервал становить [ 24,33 , 33,24 ] .
Давайте ще раз інтерпретуємо це. Ця процедура повинна мати принаймні шансів покрити 90- й перцентиль. Якщо цей перцентиль насправді перевищує 33,24 , це означає, що ми спостерігали 97 або більше зі 100 значень у нашому зразку, які нижче 90- го перцентилету. Це занадто багато. Якщо цей перцентиль менший за 24,33 , це означає, що у нашому зразку ми спостерігали 84 або менші значення, що нижче 90- го перцентилету. Це занадто мало. В будь-якому випадку - точно так, як зазначено червоними смужками на рисунку - це буде свідченням проти перцентиля, що лежить в цьому інтервалі.
Один із способів знайти хороший вибір і u - це пошук відповідно до ваших потреб. Ось це метод , який починається з симетричним приблизними інтервалом , а потім пошук шляхом зміни як л і U на величині до 2 , з тим , щоб знайти інтервал з хорошим покриттям (якщо це можливо). Це проілюстровано кодом. Він встановлюється для перевірки покриття в попередньому прикладі на нормальне розподіл. Його вихід єR
Середнє покриття моделювання склало 0,9503; очікуване покриття - 0,9523
Згода між імітацією та очікуванням відмінна.
#
# Near-symmetric distribution-free confidence interval for a quantile `q`.
# Returns indexes into the order statistics.
#
quantile.CI <- function(n, q, alpha=0.05) {
#
# Search over a small range of upper and lower order statistics for the
# closest coverage to 1-alpha (but not less than it, if possible).
#
u <- qbinom(1-alpha/2, n, q) + (-2:2) + 1
l <- qbinom(alpha/2, n, q) + (-2:2)
u[u > n] <- Inf
l[l < 0] <- -Inf
coverage <- outer(l, u, function(a,b) pbinom(b-1,n,q) - pbinom(a-1,n,q))
if (max(coverage) < 1-alpha) i <- which(coverage==max(coverage)) else
i <- which(coverage == min(coverage[coverage >= 1-alpha]))
i <- i[1]
#
# Return the order statistics and the actual coverage.
#
u <- rep(u, each=5)[i]
l <- rep(l, 5)[i]
return(list(Interval=c(l,u), Coverage=coverage[i]))
}
#
# Example: test coverage via simulation.
#
n <- 100 # Sample size
q <- 0.90 # Percentile
#
# You only have to compute the order statistics once for any given (n,q).
#
lu <- quantile.CI(n, q)$Interval
#
# Generate many random samples from a known distribution and compute
# CIs from those samples.
#
set.seed(17)
n.sim <- 1e4
index <- function(x, i) ifelse(i==Inf, Inf, ifelse(i==-Inf, -Inf, x[i]))
sim <- replicate(n.sim, index(sort(rnorm(n)), lu))
#
# Compute the proportion of those intervals that cover the percentile.
#
F.q <- qnorm(q)
covers <- sim[1, ] <= F.q & F.q <= sim[2, ]
#
# Report the result.
#
message("Simulation mean coverage was ", signif(mean(covers), 4),
"; expected coverage is ", signif(quantile.CI(n,q)$Coverage, 4))
Виведення
По-перше, нам потрібен асимптотичний розподіл емпіричного cdf.
Тепер, оскільки інверс - це неперервна функція, ми можемо використовувати метод дельти.
Тепер застосуйте згаданий вище метод дельти.
Потім, щоб побудувати довірчий інтервал, нам потрібно обчислити стандартну помилку, підключивши примірники аналогів кожного з доданків у дисперсії вище:
Результат