Answers:
这个涵盖了一般情况的问题,应该得到一个简单的,非近似的答案。幸运的是,有一个。
假设是来自未知分布的独立值,该分布的分位数I将写为。这意味着每个都有(至少)小于或等于。因此,小于或等于的数具有二项式分布。q th F − 1(q )X i q F − 1(q )X i F − 1(q )(n ,q )
由于这种简单的考虑,Gerald Hahn和William Meeker在他们的统计间隔手册(Wiley 1991)中写道
获得的两面无分布保守置信区间... ...F - 1(q )[ X (l ),X (u ) ]
其中是样本的顺序统计信息。他们继续说
可以选择一个整数围绕对称(或几乎对称),并根据的要求尽可能地靠近q (Ñ + 1 )乙(Û - 1 ; Ñ ,q )- 乙(升- 1 ; Ñ ,q )≥ 1 - α 。
左边的表达式是二项式变量具有值。显然,这是落入分布的较低内的数据值的数量既不会太小(小于)也不会太大(或更大)的机会。{ l ,l + 1 ,… ,u − 1 } X i 100 q %l u
汉恩(Hahn)和米克尔(Meeker)在其后发表一些有用的言论,我将引用这些言论。
前面的间隔是保守的,因为等式左侧给出的实际置信度大于指定值。...1 - α
有时不可能构造至少具有所需置信度的无分布统计间隔。当从小样本估计分布尾部的百分位数时,此问题尤其严重。...在某些情况下,分析人员可以通过非对称选择和解决此问题。另一种选择是使用降低的置信度。ü
让我们来看一个示例(也由Hahn&Meeker提供)。他们提供了一组有序的 “化学过程中的化合物测量值”,并要求百分位数的置信区间为。他们声称且将起作用。100 (1 - α )= 95 %q = 0.90 升= 85 û = 97
如图中蓝色条所示,此间隔的总概率为:通过选择两个截止点并消除所有机会,可以尽可能接近。左尾巴和右尾巴超出了这些界限。95 %
这是数据,按顺序显示,从中间遗漏了个值:
在最大的是和最大的是。因此,间隔为。 24.33 97 日 33.24 [ 24.33 ,33.24 ]
让我们重新解释一下。假定此过程至少有机会覆盖的。如果该百分位数实际上超过了,则意味着我们将在样本中个小于百分位数的值中观察到或更多。 太多了 如果该百分位数小于,则意味着我们将在样本中观察到或更少的低于%值的值。 太少了。90 次 33.24 97 100 90 次 24.33 84 90 第90 个 在这两种情况下(正好如图中的红色条所示),都将证明此间隔内的百分位数是正确的。
找到和最佳选择的一种方法是根据需要进行搜索。这是一种从对称近似间隔开始,然后通过将和最多变化进行搜索的方法,以找到具有良好覆盖率的间隔(如果可能)。用代码说明。它被设置为检查前面示例中的coverage是否为正态分布。它的输出是ü 升ù 2R
模拟平均覆盖率为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))
派生
F_X给出了随机变量的 -quantile(比百分位数更普遍的概念。样本对应物可以写为 -这只是样本分位数。我们对以下产品的分布感兴趣:
首先,我们需要经验CDF的渐近分布。
由于,因此可以使用中心极限定理。 是一个beronulli随机变量,因此均值是且方差是。
现在,由于逆函数是一个连续函数,因此我们可以使用delta方法。
[** delta方法表示,如果和是连续函数,则 **]
在(1)的左侧,取,然后
[**请注意,由于,但如果要显示**,则它们在渐近性上相等]
现在,应用上面提到的增量方法。
由于(反函数定理)
然后,要构建置信区间,我们需要通过在上述方差中插入每个术语的样本对应项来计算标准误:
结果
因此
并且
这将需要您估计的密度,但这应该非常简单。另外,您也可以很轻松地引导CI。