ソートされたデータは、とする。経験的CDF Gを理解するために、x iの値の1つを考えてみましょう-γと呼びましょうx1≤x2≤⋯≤xnGxiγ -そして、いくつかの番号と仮定のは、xは、私がある未満γとT ≥ 1のは、xは、私が同じですγ。すべての可能なデータ値のうち、γのみの間隔[ α 、β ]を選択します。kxiγt≥1xiγ[α,β]γが表示されます。次に、定義により、この間隔内で、はγより小さい数については定数値k / nを持ち、γより大きい数については定数値(k + t )/ nにジャンプします。Gk/nγ(k+t)/nγ
寄与検討から間隔 [ α 、β ]を。が hは関数ではない-それは、サイズの点尺度である T / Nで γ --the積分され定義された正直ツー良積分に変換する部分積分によって。これを区間 [ α 、β ]で行いましょう:∫b0xh(x)dx[α,β]ht/nγ[α,β]
∫βαxh(x)dx=(xG(x))|βα−∫βαG(x)dx=(βG(β)−αG(α))−∫βαG(x)dx.
新しい被積分関数は、で不連続ですが、積分可能です。その値は、統合ドメインをGのジャンプの前後の部分に分割することで簡単に見つかります。γG
∫βαG(x)dx=∫γαG(α)dx+∫βγG(β)dx=(γ−α)G(α)+(β−γ)G(β).
これを前述のものに代入して、を思い出すと、G(α)=k/n,G(β)=(k+t)/n
∫βαxh(x)dx=(βG(β)−αG(α))−((γ−α)G(α)+(β−γ)G(β))=γtn.
つまり、この積分は、各ジャンプの位置(軸に沿った)にそのジャンプのサイズを掛けます。ジャンプのサイズはX
tn=1n+⋯+1n
等しいデータ値ごとに1つの項があります。すべてのそのようなジャンプからの寄与追加Gを示すことをγG
∫b0xh(x)dx=∑i:0≤xi≤b(xi1n)=1n∑xi≤bxi.
1/n[0,b]1/n1/mm[0,b]。)
kb1n∑xi≤bxi=k.kj
1n∑i=1j−1xi≤k<1n∑i=1jxi,
you will have narrowed b to the interval [xj−1,xj). You can do no better than that using the ECDF. (By fitting some continuous distribution to the ECDF you can interpolate to find an exact value of b, but its accuracy will depend on the accuracy of the fit.)
R
performs the partial sum calculation with cumsum
and finds where it crosses any specified value using the which
family of searches, as in:
set.seed(17)
k <- 0.1
var1 <- round(rgamma(10, 1), 2)
x <- sort(var1)
x.partial <- cumsum(x) / length(x)
i <- which.max(x.partial > k)
cat("Upper limit lies between", x[i-1], "and", x[i])
The output in this example of data drawn iid from an Exponential distribution is
Upper limit lies between 0.39 and 0.57
The true value, solving 0.1=∫b0xexp(−x)dx, is 0.531812. Its closeness to the reported results suggests this code is accurate and correct. (Simulations with much larger datasets continue to support this conclusion).
Here is a plot of the empirical CDF G for these data, with the estimated values of the upper limit shown as vertical dashed gray lines: